Google지도 v3에서 작업 중입니다. 이지도에서 Infowindow를 사용하여 여러 마커를 표시하려는 경우 해당 지점에 대한 정보가 표시됩니다. 정보 소스는 각 포인트에 대한 데이터가있는 자바 스크립트 배열이며 모든 것이 정상적으로 작동합니다. 배열에 (때때로) 주소 (간혹 null)와 항상 lat-long 좌표가 포함되어 있으므로 주소가 없으면 역 지오 코딩을해야합니다. 여기에 내 코드 :Google Maps v3, 역 지오 코딩 및 다중 Infowindow
var geocoder = new google.maps.Geocoder();
for(var i=0;i<markersArray.length;i++){
var la=markersArray[i][0]);
var lo=markersArray[i][1]);
gpoint=new google.maps.LatLng(la,lo);
var aMarker = new MarkerWithLabel({ //part of Google Maps Utility Lib
position: gpoint,
map: map,
labelContent: deviceID,
labelAnchor: new google.maps.Point(22, 0),
labelClass: "labelStyle",
html: "<ul><li>Speed: "+markersArray[i][3]+"</li></ul>",
address: markersArray[i][4]
});
if (aMarker.address<="" || aMarker.address==null) {
geocoder.geocode({'latLng': gpoint}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
aMarker.address=results[1].formatted_address;
}
}
});
}
google.maps.event.addListener(aMarker, 'click', function() {
infowindow.setContent(this.html+" "+this.address);
infowindow.open(map, this);
});
....
}
거의 모든 괜찮 : 마커 위치에 있고 그들 모두가 주소가 비어 있었고, 역 지오 코딩 어디 제외한 올바른 주소로 바로 정보창을 보여줍니다. 이 마지막 세트의 경우 마지막 마커 정보 창만 올바른 주소를 표시하고 다른 모든 정보 창 주소는 비어 있습니다. 아이디어가 있으십니까? 매우 감사합니다!
몇 줄의 코드를 알려주시겠습니까? 매우 thx! – user1569385
당신이 쉽게 할 수 있도록 충분한 코드를 제공하지 않았습니다. 작동하는 맵에 대한 링크를 게시하고 코드 제안을 원하면 문제 (또는 jsfiddle)를 보여줍니다. – geocodezip