내 Google지도를 초기화하는 함수가 있으며 해당 함수 내에서 일부 마커를 설정하기 위해 지오 코더와 함께 작동하는 다른 함수를 호출합니다. 두 번째 함수에서 마커를 만듭니다.
두 번째 함수 내에서 경고 (marker.getPosition ())하고 latlng 값을 얻을 수있는 이유는 무엇입니까? 그러나 marker.getPosition ()을 반환하면 해당 함수의 반환 값이 정의되지 않은 것으로 표시됩니까?
예제 코드 :
function initMap() {
//Defined Map/Geocoder
//Defined Array of addresses
for (var i = 0; i < address.length; i++) {
alert(geocodeAddress(address[i], geocoder, map)); //Alert shows undefined
}
}
function geocodeAddress(address, geocoder, resultsMap) {
geocoder.geocode({'address': address}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: resultsMap,
position: results[0].geometry.location
});
alert(maker.getPosition()); //Displays latlng data
return marker.getPosition();
}
});
}
익명의 콜백에서 돌아오고 있습니다. 변수 또는 다른 것에 할당하지 않고 geocodeAddress
함수가 initMap 함수에 아무것도 반환하지 않습니다. 시험:
function geocodeAddress(address, geocoder, resultsMap) {
return geocoder.geocode({'address': address}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: resultsMap,
position: results[0].geometry.location
});
return marker.getPosition();
}
});
}
성공적인 지오 코더 응답을 얻지 못한 경우에도 처리해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다