Google Maps - Fixation InfoWindows de polygones dans la gamme
J'ai été frapper ma tête contre le mur toute la matinée avec celui-ci. J'ai une création d'un tableau de polygones, et que vous voulez associer des données à chaque celui qui apparaîtra dans une bulle informative. Je peux voir tous les polygones de la carte. - Je ajouter de l'auditeur, et il se déclenche (le changement de couleur se produit), mais je n'ai pas l'infoWindow. Toute aide serait grandement appréciés!
Cheers!
C...
tmppoly = new google.maps.Polygon({
map: map,
paths: polypath,
strokeColor: scolor,
strokeOpacity: 0.5,
strokeWeight: 2,
fillColor: fcolor,
fillOpacity: 0.5
});
addPolygonClick(tmppoly,mdata);
plot_polygons.push(tmppoly);
...
function addPolygonClick(poly,html) {
infowindow = new google.maps.InfoWindow(
{
content: html
});
google.maps.event.addListener(poly,'click', function(event) {
this.setOptions({fillColor: "#000000"});
infowindow.open(map);
});
}
Je crois qu'une position de l'option, ou d'un marqueur de paramètre, qui est nécessaire pour l'infowindow, sauf s'ils ont changé.
OriginalL'auteur Cris McCarthy | 2011-08-18
Vous devez vous connecter pour publier un commentaire.
Je peux vous donner des suggestions utiles à propos de votre question.
Tout d'abord, vous devez savoir l'expression à propos de la méthode de " infowindow.ouvert(carte, ancre?:MVCObject)'. Comme l'api google v3 dit: Dans l'API de base, le seul point d'ancrage est le Marqueur de classe. Polygone de classe ne correspond pas à la condition, toutefois, nous pouvons atteindre d'une autre manière.
Le code ci-dessus a passé le test, vous pouvez l'utiliser directement. Ensuite, si vous cliquez sur un polygone, l'infoWindow apparaît au-dessus de la carte.
OriginalL'auteur Gallery
Il ya quelques problèmes qui pourraient être à la prévention de ce travail:
1:
Vous avez besoin d'un var en face de l'infowindow, pour en faire une variable locale:
Comme il est, vous êtes en remplacement de la bulle informative variable à chaque fois que vous ajoutez un écouteur de clics.
2:
Vous devez spécifier une position ou un point d'ancrage pour l'infowindow (voir: http://code.google.com/apis/maps/documentation/javascript/reference.html#InfoWindowOptions).
La seule valable ancrage est un Marqueur, de sorte que vous aurez probablement envie de spécifier la "position" de la propriété. 'position' doit être valide google.cartes.LatLng objet. Je soupçonne que vous voulez calculer le centre de votre polygone à utiliser pour la position.
Vous devez également vous assurer que la carte est une variable globale, même si c'est probablement le cas en regardant le reste de votre code.
OriginalL'auteur plexer
Veuillez jeter un oeil à ce https://developers.google.com/maps/documentation/javascript/examples/event-closure et de le combiner avec la réponse ci-dessus pour affecter un message unique pour chaque polygone dans votre tableau de polygones.
Je travaille aussi dans le fait d'avoir plusieurs polygones dans une couche avec un message unique pour chaque polygone. Je n'ai pas encore réussi. Avec la réponse ci-dessus, j'ai eu l'info de la fenêtre, mais je reçois le même message pour tous les polygones.
Une fois que j'ai régler mon problème, je vais poster la solution.
OriginalL'auteur Gowri Abhaya