Je travaille actuellement sur un projet ASP.NET où j'utilise l'API Google Maps pour afficher un marqueur pour chaque entreprise enregistrée dans la base de données.JavaScript Bogue marqueur de carte Google
Tout fonctionne très bien, mais lorsque je clique sur un marqueur, l'info-bulle/boîte de dialogue de la dernière société de ma liste d'entreprises s'affiche toujours et non la marque de société sur laquelle j'ai cliqué.
Je n'arrive pas vraiment à comprendre pourquoi c'est toujours le dernier marqueur qui apparaît. Voici mon mis à jour Code:
JavaScript.Text = @"<script type='text/javascript'>
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById('map'));
map.setCenter(new GLatLng(56.4, 10.57983), 9);
map.enableScrollWheelZoom();
}
}
</script> ";
foreach (MemberProfile m in relatedMembers)
{
XmlDocument doc = new XmlDocument();
string address = m.Address;
string zip = m.Zip;
string city = m.City;
string navn = m.Name;
string tlf = m.Phone;
doc.Load("http://maps.googleapis.com/maps/api/geocode/xml?address=" + zip + "+" + city + "+" + address + "+DK&sensor=true&key=ABQIAAAAEaY4JLb9fZFGMlDKuMUlWBRSvyGIkBO7X03pzlT7Z30EPXHR8BS0rXL_ShFm2gc79lZTw2Zak88wng");
XmlNode latNode = doc.SelectSingleNode("GeocodeResponse/result/geometry/location/lat/text()");
XmlNode lonNode = doc.SelectSingleNode("GeocodeResponse/result/geometry/location/lng/text()");
if (latNode != null && lonNode != null)
{
JSAddMarkers.Text += @"<script type='text/javascript'>
var marker = new GMarker(new GLatLng(" + latNode.Value + "," + lonNode.Value + ")); "
+ "var html = '<b>" + navn + "</b><br />" + address + "<br /> " + zip + " " + city + "<br />" + tlf + "'; " + "GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); });"
+ "map.addOverlay(marker);"
+ "</script>";
}
Si l'un de vous là-bas peut repérer la raison pour laquelle, je serais heureux de vous entendre! Toute aide/indice est apprécié :-)
Tous les meilleurs,
Bo
Je suppose que le pépin est dans l'ordre de création objet de la carte et l'ajout de marqueurs sur il. Vous devez d'abord créer l'objet map, puis exécuter la boucle pour y ajouter des marqueurs. –
Hmm, je suppose que vous avez raison sur celui-ci! Je vais mettre à jour mon premier message avec mon nouveau code où j'ai déplacé la création de la carte au-dessus de la boucle foreach. Il n'y a pas de marqueur visible sur la carte:/Peut-être que j'ai manqué quelque chose le long de la route .. – bomortensen
Je n'ai toujours pas trouvé de solution :(J'ai essayé de refactoriser mon code beaucoup de sorte qu'il en sort un snippet avec tout – bomortensen