/ / Polygon-Infofenster in Gmaps4Rails - Ruby-on-Rails, Ruby-on-Rails-3, Google Maps-API-3, gmaps4rails

Polygon-Infofenster in Gmaps4Rails - Ruby-on-Rails, Ruby-on-Rails-3, google-maps-api-3, gmaps4rails

Ich benutze gmap4rails, um ein paar ziemlich komplizierte Polygone zu zeichnen, die als Bezirksgrenzen dienen. Ich habe zwei Dinge, bei denen ich helfen möchte:

Zunächst möchte ich diesen Polygonen ein Informationsfenster beim Klicken zuordnen. Dies ist ein Beispiel für meinen Anwendungsfall: https://google-developers.appspot.com/maps/documentation/javascript/examples/polygon-arrays

Ich habe versucht, einen Klickereignishandler im Rückruf der gmap zu registrieren, aber er funktioniert nicht und ich denke nicht, dass er der richtige Ansatz ist.

Gmaps.map.callback = function()
{
console.log(""sup");
var infowindow = new google.maps.InfoWindow
({
content: "you clicked me!",
suppressMapPan:true
});
google.maps.event.addListener(Gmaps.map.polygons[0], "click", function()
{
console.log("the click event fired");
infowindow.open(map, Gmaps.map.polygons[0]);
});

}

Zweitens möchte ich in der Lage sein, die Füllfarbe dieser Polygone bei einigen Benutzerereignissen per JQuery zu ändern (Benutzer klickt beispielsweise auf ein Kontrollkästchen). Wie würde ich das mit dem Edelstein machen?

Antworten:

1 für die Antwort № 1

Ersetzen Sie Ihre Methode durch:

Gmaps.map.callback = function()
{
console.log(""sup");
Gmaps.map.polygons[0].infowindow = new google.maps.InfoWindow
({
content: "you clicked me!"
});

google.maps.event.addListener(Gmaps.map.polygons[0].serviceObject, "click", function(event)
{
console.log("the click event fired");
infowindow = Gmaps.map.polygons[0].infowindow;
infowindow.setPosition(event.latLng);
infowindow.open(Gmaps.map.map);
});

}

Und ändern diese edelsteinschnur wahr statt falsch setzen. Ich habe auf false gesetzt, da mir die Cursoränderung nicht gefallen hat. Es sollte auf jeden Fall in den Konfigurationsoptionen sein. Bitte erstelle ein Problem bei github, damit ich daran denke, es zu beheben.