J'ai besoin d'afficher plusieurs marqueurs sur une carte, chacun avec sa propre infowindow . J'ai créé les marqueurs individuels sans problème, mais je ne sais pas comment créer les infowindows pour chacun.Afficher plusieurs marqueurs sur une carte avec leurs propres fenêtres d'informations
Je génère une carte en utilisant l'API V3 dans un site Web ASP, avec des marqueurs créés à partir d'un ensemble d'enregistrements DB. Les marqueurs sont créé par une boucle à travers rs et définissant un marqueur() avec les variables pertinentes:
var myLatlng = new google.maps.LatLng(lat,long);
var marker = new google.maps.Marker({
map: map,
position: myLatlng,
title: 'locationname',
icon: 'http://google-maps-icons.googlecode.com/files/park.png'
});
Cela crée tous les marqueurs pertinents dans leurs emplacements corrects. Ce que je dois faire maintenant, et je ne suis pas sûr de la façon de réaliser, est de donner à chaque leur propre infowindow unique que je peux utiliser pour afficher des informations et des liens relatifs à ce marqueur.
Source
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script language="javascript">
$(document).ready(function() {
//Google Maps
var myOptions = {
zoom: 5,
center: new google.maps.LatLng(-26.66, 122.25),
mapTypeControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP,
navigationControl: true,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.SMALL
}
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
<!-- While locations_haslatlong not BOF.EOF -->
<% While ((Repeat1__numRows <> 0) AND (NOT locations_haslatlong.EOF)) %>
var myLatlng = new google.maps.LatLng(<%=(locations_haslatlong.Fields.Item("llat").Value)%>,<%=(locations_haslatlong.Fields.Item("llong").Value)%>);
var marker = new google.maps.Marker({
map: map,
position: myLatlng,
title: '<%=(locations_haslatlong.Fields.Item("ldescription").Value)%>',
icon: 'http://google-maps-icons.googlecode.com/files/park.png',
clickable: true,
});
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
locations_haslatlong.MoveNext()
Wend
%>
<!-- End While locations_haslatlong not BOF.EOF -->
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
google.maps.event.addListener(marker, 'dblclick', function() {
map.setZoom(14);
});
});
Merci, cela m'a mis sur le chemin de l'illumination (et une meilleure compréhension de l'utilisation trop tableaux). Il semblerait que la sortie JS que je reçois soit un peu boguée, ce qui fait que la carte ne se charge pas. Firebug signale le problème suivant: manquant} après la liste des biens, Ligne 85 J'ai lançai une copie du code source résultante à: http://sites.google.com/site/forestproductswa/ Le seule différence à propos de cette ligne est que le résultat du champ utilisé pour renseigner infoWindowContent à cette ligne a un espace dedans. Tout semble parfait sinon, et tout est équilibré. – thewinchester
@ thewinchester, excuses, j'ai eu une faute de frappe dans la partie de génération de tableau. (Lorsque nous remplissons 'title' et' infoWindowContent', nous attendons des chaînes, et nous devrions donc mettre des guillemets autour des données, je les ai laissées hors de ma réponse originale.) J'ai édité ma réponse. –
Merci, ont enfin compris. – thewinchester