다음 문제가 발생하면 정보 창에 다른 마커에서 같은 결과가 나타납니다. 외부에서 디버깅 할 때 geocoder.geocode 함수는 올바른 정보를 표시하지만 항상 항상 같은 정보를 표시합니다. suppid 부분은 내가 올바른 변수 값을 보여주는 내부 변수를 디버깅 할 때입니다.Google지도 정보창에서 다른 마커에서 같은 결과가 나타납니다
var optionMap = {
zoom: 16,
MapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: false,
zoomControl: false,
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
overviewMapControl: false
};
var map = new google.maps.Map(document.getElementById('map'), optionMap);
var geocoder = new google.maps.Geocoder();
var latlngbounds = new google.maps.LatLngBounds();
var icon = new google.maps.MarkerImage('images/gm_pin.png',
new google.maps.Size(20, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));
for(var i = 0; i < arrAddress.length; i++) {
var address = arrAddress[i];
var html_title = "<div class='info'><h4>" + address + "</h4></div>";
geocoder.geocode({
'address': address
}, function (results, status) {
if(status == google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: map,
icon: icon,
html: html_title,
position: results[0].geometry.location
});
var contentString = '';
var infoWindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListener(marker, 'mouseover', function() {
infoWindow.setContent(this.html);
infoWindow.open(map, this);
});
google.maps.event.addListener(marker, 'mouseout', function() {
infoWindow.close(map, this);
});
latlngbounds.extend(results[0].geometry.location);
if(i == arrAddress.length) {
map.fitBounds(latlngbounds);
}
google.maps.event.trigger(map, 'resize')
}
});
}
, 하나 개의 질문을 :
코드에서, 폐쇄 루프시에 주소를 캡처해야합니다 나는 그것도 별도의 기능에 넣을 수 있습니까? – mebots
기술적으로 그것은 이미 별도의 기능입니다. 그래서 네, 명명 된 함수로 이동하고 루프 내부에서 해당 함수를 호출 할 수 있습니다. –