Je mappe certains lieux de concert sur Google Maps, en utilisant des données de l’API de Songkick.com. J’appelle les données à l’aide de jQuery. Lors de la cartographie d’un concert, si un même lieu a plusieurs concerts programmés, tous les marqueurs sont placés exactement au même endroit. Cela signifie que seul le marqueur du concert le plus récent est visible, et que Google Maps infoWindow affiche uniquement les données du concert le plus récent.
Je voudrais faire en sorte que tous les concerts ayant lieu exactement à cette même latitude affichent leurs informations dans la fenêtre d’information. Ainsi, lorsque vous cliquez sur le marqueur, tous les spectacles programmés sont affichés dans infoWindow, pas seulement le plus récent.
Voici une partie de mon javascript:
function doSearch(locations) { deleteOverlays(); jQuery.getJSON("http://api.songkick.com/api/3.0/search/locations.json?query=" + locations + "&apikey=XXXXXXXX&jsoncallback=?", function(data){ var id = data.resultsPage.results.location[0].metroArea.id; jQuery.getJSON("http://api.songkick.com/api/3.0/metro_areas/" + id + "/calendar.json?apikey=XXXXXXXX&jsoncallback=?", function(data){ var bounds = new google.maps.LatLngBounds(); var point; $.each(data.resultsPage.results.event, function(i, item) { var event = item; point = new google.maps.LatLng( parseFloat(item.location.lat), parseFloat(item.location.lng)); var marker = new google.maps.Marker({ map : map, animation: google.maps.Animation.DROP, position : point }); markersArray.push(marker); var contentSsortingng = '' + item.displayName + '
- Google Map Limite de l’emplacement recherché
- Google Maps est-il assez intelligent pour s’abstenir d’append des marqueurs aux positions qui ne sont pas affichées actuellement?
- Jquery 1.9.1, CSS & Google Maps: numéro «Affichage: aucun»
- afficher les données jSON dans google maps
- JavaScript – Pourquoi mon téléchargement asynchrone ne se télécharge-t-il pas de manière asynchrone?
' + '' + item.location.city + '
'; var infowindow = new google.maps.InfoWindow({ content: contentSsortingng }); google.maps.event.addListener(marker, 'click', function() { if (currentInfoWindow != null) { currentInfoWindow.close(); } infowindow.open(map, marker); currentInfoWindow = infowindow; });
Pour voir cette application en action, j’ai mis en place un site web temporaire.
http://129.219.78.186/~masgis/tward/songkick/Metro.html
Pour voir de quoi je parle, tapez le nom d’une grande ville, puis cliquez sur un marqueur qui tombe. Seul le concert le plus récent apparaîtra.
Merci d’avance, toute aide est très appréciée.
Il semble que l’appel de l’API SongKick renvoie un ID unique pour chaque site. Alors voici ce que vous pouvez faire:
Il s’agit d’un peu de code JavaScript, de boucles nestedes et d’un peu de performance, mais cela devrait suffire.