Songkick.com의 API 데이터를 사용하여 Google지도에서 일부 콘서트 위치를 매핑 중입니다. jQuery를 사용하여 데이터를 호출하고 있습니다. 콘서트를 매핑 할 때 단일 장소에 여러 콘서트가 예약되어 있으면 모든 마커가 정확히 동일한 위치에 배치됩니다. 즉, 가장 최근의 콘서트의 마커 만 표시되며 Google지도의 infoWindow는 가장 최근의 콘서트의 데이터 만 표시합니다.Google지도 API - 위도/경도가 동일한 모든 마커에 대한 정보 표시
위도/경도가 정확히 일치하는 모든 콘서트가 infoWindow에 정보를 표시하도록 만들고 싶습니다. 따라서 마커를 클릭하면 모든 최신 쇼가 최신 쇼뿐만 아니라 infoWindow에 표시됩니다. 여기
내 자바 스크립트의 일부입니다
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
내가 주요 도시의 이름을 입력에 대해 이야기하고있는 것을보고, 떨어지는 마커를 클릭합니다. 가장 최근의 콘서트 만 표시됩니다.미리 감사드립니다. 도움을 주시면 감사하겠습니다.