- Google지도 API에서 주소를 가져 와서이 주소를 함수에 반환하려고합니다. 이러한 표시를 변경하려면 어떻게해야합니까?
한 번에 값이 존재하기 전에 함수가 반환으로, 불가능 http://jsfiddle.net/mapsaceclouds/o1fa91tv/2/$(document).ready(function() { var lat = 17.4807865; var lng = 78.4921649; var returnAddress = getAddressFromlatlng(function(backaddr,lat,lng){ alert(" Inside : "+backaddr) }); alert(returnAddress+" returned address ") }); function getAddressFromlatlng(callback,lat,lng){ alert(lat+" : "+lng) var geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(lat,lng); geocoder.geocode({'latLng': latlng}, function(results, status){ alert(results[0].formatted_address) callback(results[0].formatted_address); }); }
답변
찾아보세요.
geocode
호출은 비동기식이므로 비동기 적으로 결과를 처리해야합니다. 이미 값을 콜백 함수에 성공적으로 표시합니다. 즉, 결과를 처리하는 방법입니다.
getAddressFromlatlng
함수에서 약속을 반환 할 수는 있지만 실제로 변경되지는 않습니다. 이것은 콜백 함수를 객체에 랩핑하기 때문에 호출과 별도로 비동기 처리를 할 수 있습니다.
감사합니다 @ Guffa, 당신은 solution [] (http://jsfiddle.net/mapsaceclouds/brnecrfw/) 또는 []에 대해이 코드를 볼 수 있습니까? http://stackoverflow.com/questions/27873908/update-jquery-jqgrid-column-with-google-api-address) – Hydrogen
@acecloudsmaps : 해결책은 함수에서 값을 반환하려고하지 않는 것입니다. 문제는 루프가 끝난 후에 데이터가 도착할 때 루프 변수를 사용하여 배열에 데이터를 넣을 수 없다는 것입니다. – Guffa
콜백 결과에서 주소를 가져와야합니다. 좌표가 결정되면 리턴 값을 계속 처리하는 함수를 호출해야만 리턴 값을 얻을 수 있기 때문입니다. 이 경우 배열을 통해 배열 인덱스를 사용하고 필요한 데이터가 있으면 주소 필드를 업데이트하십시오. 개별적으로 처리하십시오. 배열을 통해 모든 항목에 대해 Google에 요청합니다. 일단 응답이 Google에서 돌아 오면 배열의 다음 항목으로 이동하십시오. 응답을받을 때 알 수 있도록 인덱스를 저장할 수 있으면 여러 요청을 기다리는 것이 가능합니다.
var currentIndex = null;
function notifyAddressResolved (address) {
yourArray[currentIndex].address = address;
resolveNextAddress();
}
function getAddressFromlatlng(callback, lat, lng){
var geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(lat, lng);
geocoder.geocode({'latLng': latlng}, function (results, status) {
callback(results[0].formatted_address);
});
}
function resolveNextAddress() {
if (currentIndex == null) {
currentIndex = 0;
} else {
currentIndex++;
}
getAddressFromlatlng(notifyAddressResolved, yourArray[currentIndex].lat, yourArray[currentIndex].lng);
}
감사합니다. @vbms ... – Hydrogen
- 1. jquery 함수에서 반환 값을 얻으십시오.
- 2. 자바 스크립트 함수에서 변수 반환
- 3. 함수에서 반환 값으로 데이터를로드합니다.
- 4. 값을 얻으십시오. 반환 방법
- 5. 자바 스크립트 : ID없이 값을 얻으십시오
- 6. 자바 스크립트 함수에서 div의 마지막 자식을 얻으십시오.
- 7. 자바 스크립트 변수 : 함수에서 반환 한 값을 더한 다음 다른 함수에서 반환 한 값을 곱합니다.
- 8. 함수에서 값을 변경하고 값을 얻으십시오.
- 9. 자바 스크립트 함수에서 반환 값 표시
- 10. 자바 스크립트 데이터베이스 API 반환 결과
- 11. 자바 스크립트 함수에서 반환 값을 가져올 수 없습니다.
- 12. 자바 스크립트 함수에서 JSON 객체 반환
- 13. 자바 스크립트 함수에서 값을 가져올 수 없습니다.
- 14. 어떻게 자바 스크립트 함수에서 값을 반환합니까
- 15. Google 어스 API 자바 스크립트
- 16. 자바 스크립트 함수에서 자바 스크립트
- 17. 자바 스크립트 반환 값
- 18. 자바 스크립트에서 값을 얻으십시오.
- 19. JQuery와 함수에서 값을 반환
- 20. jQuery의 함수에서 값을 반환
- 21. 함수에서 여러 값을 반환
- 22. 자바 스크립트 함수에서 변수로 반환되는 값을 지정하십시오.
- 23. 자바 스크립트 함수에서 값을 전달하는 방법은 무엇입니까?
- 24. 자바 스크립트 함수에서 'this'에 값을 전달하십시오.
- 25. 자바 스크립트 함수에서 값을 전달할 수 있습니까?
- 26. 자바 스크립트 함수에서 컨트롤러로 값을 전달 하시겠습니까?
- 27. Javascript에서 객체 속성의 값을 값으로 반환 하시겠습니까?
- 28. Google 스프레드 시트 API (자바 스크립트)
- 29. 비동기 델리게이트 함수에서 값을 반환
- 30. 반사, 메서드에서 반환 값을 얻으십시오
[왜 함수의 내부를 수정 한 후 내 변수 변경되지?]의 중복 가능성 (http://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after- (function-async)) – geocodezip