Google Maps API-GClientGeocoder 불일치가 사용하는 위치의 위도와 경도를 찾을 수 있습니까?

StackOverflow https://stackoverflow.com/questions/408444

  •  03-07-2019
  •  | 
  •  

문제

나는 나의 지오코더를 사용하여 일관성 코드에서는 아래와 같기 때문에"전에 위치의 위도와 경도를 찾을 수 있습니"방법이라고 저는 쇼 10 유효한 위치지만,후에 이 코드의 라인 수는 점이 실제로 표시는 매번 다른 내 검색(동일한 검색 기준을 참고)사이 5 및 10 에서 임의의..아주 이상한

사람과 유사한 문제를 이?그렇다면 어떻게 해결할까요?

geocoder = new GClientGeocoder();
geocoder.getLatLng(address, function(point) {
if (point) {
        var icon = new GIcon();
        var marker = new GMarker(point, { icon: icon });
        GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); });
        map.addOverlay(marker);
도움이 되었습니까?

해결책 4

실제로이 불일치를 일으키는 "주소 확인"코드가 아니라 대신 맵 API가 수많은 지오 코더 호출을 원하지 않았기 때문에 각 요청과 각 요청과 간단한 225ms 타임 아웃을 추가했습니다. 이것은 속임수를했다

function preGeoCodeLookup(_xaddr, _xid, _xindex, _xhtml, _xstatus) {
        addPreCount();

        //don't change this timeout as it was the lowest timeout that still worked w/ the api
        var timeout = parseInt(precount) * 225;

        window.setTimeout(function() { geoCodeLookup(_xaddr, _xid, _xindex, _xhtml, _xstatus); }, timeout);
    }

다른 팁

본 적이에서 나 ASP.NET app.나는 나의 유효성을 검사 주소를 표시하기 전에 그들고

  1. 일부의 주소가 잘못되었습니다.

  2. 자신의 주소를 검증할 수 있는 시스템만을 일정 금액을 처리한 요청의 모든 호출에 의해 클라이언트입니다.

그것이 더 좋을 제거한 주소기 전에 지오코딩(IMO).

도 확인하는 귀하의 주소 또는 제한 금액의 주소 보내는 테스트는 볼 경우에는 연속적인 모든 요청을 합니다.

는 희망 도움이 됩니다.

이렇게 시도해보십시오. 이와 같이 한 번의 달리기로 34 점 이상을 얻습니다.

function addAddress(address,runde) {
  geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
        //alert(address + " not found");
        if (runde<5) { // rekursiv, try adress 5 times to get
            window.setTimeout(function() {addAddress(address,runde+1);}, 1000); // wait 1 second bevor next try
            }
      } else {
        var marker_add = new GMarker(point);
        //alert(marker.getLatLng());
        leftClick(0, marker_add.getLatLng()); // function, add marker to map
      }
    }
  );
}  

나는 무엇을 확실하지 않습니다 addPreCount() 하다. 그러나 타임 아웃이 인덱스에 실제 시간 초과 상수를 곱한 것과 같은 것이 분명하다고 생각합니다.

따라서 정의 된 시간 초

var timeout = [index_of_each_xaddr] * 225;
window.setTimeout(function() { geoCodeLookup(_xaddr, _xid, _xindex, _xhtml, _xstatus); }, timeout);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top