2014-12-16 2 views
-1

"Středočeský kraj"라는 지형 중심을 JSON 형식 http://maps.googleapis.com/maps/api/geocode/json?address=St%C5%99edo%C4%8Desk%C3%BD%20kraj&sensor=false으로 가져 오려고하는데 잘못된 결과가 나타납니다. 49.8782223, "lng": 14.9362955이지만 올바른 것은 https://www.google.cz/maps/place/St%C5%99edo%C4%8Desk%C3%BD+kraj/@50.060218,14.4659312,9z/data=!3m1!4b1!4m2!3m1!1s0x470b939c0e8ff2a3:0x100af0f6614a830 (50.060218,14.4659312) 어떻게 가능합니까? JSON이 잘못된 데이터를 반환하는 이유는 무엇입니까?Google지도 API의 지리적 중심 지역

감사합니다.

답변

2

API에서 반환 한 데이터가 잘못되지 않았으므로 반환 된 위치가 해당 영역의 가운데에 있음을 알 수 없습니다.

http://gmaps-samples-v3.googlecode.com/svn/trunk/geocoder/v3-geocoder-tool.html#q%3DSt%u0159edo%u010Desk%FD%20kraj을 살펴보십시오. 이 영역의 경계를 나타내는 파란색 직사각형이 보입니다.

그것은 경계를 기반으로 계산 대신 마커 위치의 경계의 중심 얻으려면 : 당신이 서버 측의 주소를 요청할 것으로

new google.maps.LatLngBounds(new google.maps.LatLng(49.501336,13.397336), 
          new google.maps.LatLng(50.619099,15.534525)) 
           .getCenter();//returns 50.060217, 14.465930(Prague) 

을, 당신은 단순히를 사용하지 않고 중심을 계산할 수있다 자바 스크립트 API :

lat:(bounds.southwest.lat+bounds.northeast.lat)/2 
lng:(bounds.southwest.lng+bounds.northeast.lng)/2 

참고 : 결과는 수학 중심이 아닌 지역 센터 (반환 된 위도가 다릅니다)입니다,하지만 사용 사례에 대한 충분한해야합니다. 지리적 중심을 계산하려면 haversine-formula

+0

대단히 감사합니다. 이것이 내가 필요한 것입니다. 이제는 잘 작동합니다! –

+0

@DavidHolada 필요한 경우 대답을 올바른 것으로 표시합니다. – sabotero