La cartographie de multiples endroits avec Google Maps JavaScript API v3 et de l'API de Géocodage
Je suis en utilisant Google Maps JavaScript API v3 pour générer une carte avec plusieurs sites/marqueurs. Je n'ai que l'adresse de ces endroits, et non pas les coordonnées, je suis donc en utilisant l'API de Géocodage pour obtenir les coordonnées.
J'ai finalement obtenu de Google geocoding de travail, de sorte que l'emplacement des marqueurs montrent jusqu'où ils sont censés être. Cependant, la même contenu est à montrer dans toutes les InfoWindow. Il me semble être incapable de passer à l'emplacement des baies dans la fonction de géocodage. (Soit dit en passant, j'ai aussi essayé de créer une variable pour le géocodage résultats et le déplacement de l'infoWindow fonction à l'extérieur de la fonction de géocodage, mais je ne pouvais pas faire ce travail soit.)
J'ai essayé une centaine de façons différentes déjà. J'espère que quelqu'un d'autre voir ce que je n'ai pas pu voir.
var locations = [
['Location 1 Name', 'Location 1 Address', 'Location 1 URL'],
['Location 2 Name', 'Location 2 Address', 'Location 2 URL'],
['Location 3 Name', 'Location 3 Address', 'Location 3 URL']
];
geocoder = new google.maps.Geocoder();
for (i = 0; i < locations.length; i++) {
title = locations[i][0];
address = locations[i][1];
url = locations[i][2];
geocoder.geocode({ 'address' : locations[i][1] }, function(results, status) {
marker = new google.maps.Marker({
icon: 'marker_blue.png',
map: map,
position: results[0].geometry.location,
title: title,
animation: google.maps.Animation.DROP,
address: address,
url: url
})
infoWindow(marker, map, title, address, url);
})
}
function infoWindow(marker, map, title, address, url) {
google.maps.event.addListener(marker, 'click', function() {
var html = "<div><h3>" + title + "</h3><p>" + address + "<br></div><a href='" + url + "'>View location</a></p></div>";
iw = new google.maps.InfoWindow({ content : html, maxWidth : 350});
iw.open(map,marker);
});
}
Vous devez vous connecter pour publier un commentaire.
C'est un doublon de google map info fenêtre plusieurs adresses via xml, tout simplement pas une copie exacte. Le geocoder est asynchrone, donc quand le geocoder de rappel fonctionne, la valeur de l'adresse est qu'à partir de la fin de la boucle pour tous les appels.
La réponse est la même: la solution La plus simple est d'utiliser la fonction de fermeture à associer l'appel à la geocoder avec le résultat renvoyé:
Travail de violon
extrait de code:
JS:
CSS:
HTML:
Étape 1
Vous devez d'abord créer l'emplacement de carte pour que, comme, où voulez-vous pour ajouter cette carte à votre application web. Donc tout d'abord créer JSP/HTML/page ASP dans lequel vous devrez créer emplacement où vous souhaitez afficher la carte.
Étape 2
Ci-dessous j'écris le script à l'aide de laquelle vous pouvez voir la carte sur votre application web.