Songkick.comのAPIのデータを使用して、Googleマップ上のコンサートの場所をマッピングしています。私はjQueryを使ってデータを呼び出しています。コンサートをマッピングするとき、1つの会場に複数のコンサートがスケジュールされていると、すべてのマーカーがまったく同じ場所に配置されます。つまり、最新のコンサートのマーカーだけが表示され、GoogleマップのinfoWindowはその最新のコンサートのデータのみを表示します。Google Maps API - 同じ緯度/経度のすべてのマーカーの情報を表示
私は、まったく同じ緯度/経度で行われるすべてのコンサートがinfoWindowに情報を表示するようにしたいと考えています。したがって、マーカをクリックすると、最新のショーだけでなく、すべてのスケジュールされたショーがインフォウィンドウに表示されます。ここで
が私の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 contentString = '<p><b>' + item.displayName + '</b></p>' + '<p>' + item.location.city + '</p>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListener(marker, 'click', function() {
if (currentInfoWindow != null) {
currentInfoWindow.close();
}
infowindow.open(map, marker);
currentInfoWindow = infowindow;
});
アクションで、このアプリケーションを表示するには、私は一時的なウェブサイトを設定しています。
http://129.219.78.186/~masgis/tward/songkick/Metro.html
、私が何を言っているか見るの主要都市の名前を入力し、ドロップしたマーカーをクリックします。最新のコンサートだけが表示されます。
ご協力いただきありがとうございました。