2009-04-27 3 views
2

Google지도로 처음으로 놀고 있습니다. 그리고 마커가있는 위치에 대한 정보를 얻으려고 애 쓰고 있습니다.Google지도 지오 코딩 문제

본인이 볼 수 있도록 예제를 설정했습니다. A 노드를 드래그하면 getGeocode()가 undefined를 반환 할 때 문제가 발생합니다.

노드를 드래그 할 때 노드에서 우편 번호, 도시 및 주소를 추출해야합니다.

사전에 http://dev.korebogen.dk/gmap/

감사를 참조하십시오!

업데이트

나는 응답에서 내 코드를 편집 - 지금은 모두 주소 아웃 (아직도 내가 별도의 변수에있는 정보를 얻을 그것을 제거해야 할) 수 있지만 어떤 이유로 내 방향 출력은 밝혀 "0"과 "1"(배열)이 될 필요가 정말로 그 지오 코드를 반대로해야합니까?

지도에 클릭 이벤트를 만들어 A 및 B 마커를 추가 할 수 있습니까? (로드 할 때 방향이 없으면?) http://dev.korebogen.dk/gmap/이 업데이트되었습니다. 당신은 일반적으로 "역 지오 코딩"라는 주소로 위치를 변환하려는

GEvent.addListener(newMarkers[i], "dragend", function() { 
      var points = []; 
      for (var i = 0; i < newMarkers.length; i++) { 
       var param = i + "@" + newMarkers[i].getLatLng().y + "," + newMarkers[i].getLatLng().x; 
       //points[i] = newMarkers[i].getLatLng(); 
       points.push(param); 
       if (!i) { 
        var x = new GClientGeocoder(); 

        x.getLocations(newMarkers[0].getLatLng(), function(addresses) { 
         if (addresses.Status.code == 200) { 
          var address = addresses.Placemark[0].address; 
          document.getElementById("start").innerHTML = address; 
         } 
        }); 

        x.getLocations(newMarkers[1].getLatLng(), function(addresses) { 
         if (addresses.Status.code == 200) { 
          var address = addresses.Placemark[0].address; 
          document.getElementById("end").innerHTML = address; 
         } 
        }); 
       } 
      } 
      gdir.loadFromWaypoints(points); 

     }); 
+0

loadFromWaypoints (name @ latitude, longitude)에 전달할 문자열 배열의 형식으로 인해 방향 이름이 0과 1이됩니다. 이름이 배열의 인덱스를 가져옵니다. 주석 처리 된 행으로 돌아가서 제대로 작동합니다. – RedBlueThing

답변

1

문제를 호출해야한다 한마디로

이며, 당신이 요청하면 onGDirectionsLoad에서 요구하는 모든 회원들과 함께 채워지지 않습니다 귀하의 loadFromWaypoints에서 다시 점점 객체(). 당신이 당신의 자바 스크립트 오류보고가 로그인하는 경우 당신은 볼 수 있습니다 :

오류 :. gdir.getRoute (0) .getStartGeocode() AddressDetails.Country은 정의되지 않습니다

좋아, 구글 Documention,의 응답에 따라 loadFromWaypoints와 GClientGeodcoder는 동일해야합니다.

저는 testing with your sample의 자유를 취했고 응답이 동일하지 않다는 것이 갑자기 나타납니다. http://www.cannonade.net/geo.js을 보면 GClientGeocoder 요청과 첫 번째 마커에 대한 응답이 뚜렷한 것을 볼 수 있으며 매우 다릅니다. 당신이 채워지지 않은 결과를 자바 스크립트 에러가 발생하지 않도록 응답을 확인

  • : 그래서 당신은 몇 가지 작업을 수행해야

    경우 (RESP에 'AddressDetails')

  • 전체 주소 정보를 얻기 위해 각 마커 점에 대한 GClientGeocoder 요청을 수행하십시오. 내 표본이 첫 번째 표식에 대해이 작업을 수행합니다.

+0

죄송합니다. loadFromWaypoints가 GClientGeocoder와 일치하는 결과를 반환하는 doco에 대한 링크를 잊어 버렸습니다. http://code.google.com/apis/maps/documentation/reference.html#GDirections.getGeocode – RedBlueThing

+0

대단합니다! 몇 가지 코드를 게시해야하므로 상단의 업데이트 된 게시물을 참조하십시오 :) –

1

:이 업데이트 된 부분

var param = i + "@" + newMarkers[i].getLatLng().y + "," + newMarkers[i].getLatLng().x; 

:에서

그것은 온다.

예제 코드 here을 참조하십시오. 대신 getGeocode를 호출, 당신이 여기 GClientGeocoder.getLocations

+0

슈퍼! 올바른 방향으로 나를 잡았어! :-D –