2012-11-18 6 views
8

특정 지리적 좌표가 도시 목록에서 얼마나 멀리 있는지 알고 싶습니다 (거리를 고려하지 않고 좌표와 도시 사이의 유클리드 거리를 의미 함). 이를 위해 저는 각 도시마다 경계 상자를 찾아야합니다. 모두 이스라엘에 있습니다.도시 바운딩 박스 얻기

This post은 국가 테두리 상자에 대해 설명하지만 도시 수준에서 필요합니다.

지도에서 손으로 직사각형을 그리고 좌표를 추출하는 것보다 긴 도시 목록에 대해이 정보를 얻을 수있는 방법이 있습니까?

답변

10

해당 도시의 경계 상자는 www.mapdevelopers.com/geocode_bounding_box.php입니다. 도시에 들어가면지도에 상자가 표시되고 각면의 위도와 경도가 표시됩니다. 다행히도 필요한 정보를 얻을 수 있기를 바랍니다.

1

내 생각에, 경계 상자가 필요하지 않지만 도시 경계가 필요합니다. 경계 상자를 사용하면 분석이 매우 거칠 것이므로 경계 상자를 얻으려면 먼저 경계가 필요합니다.

이제 도시 목록 만 있으면 모든 도시의 경계 인 공간 데이터를 얻어야합니다. 이 데이터를 찾으려면 this links을 사용해보십시오. Open Street Maps를 확인하는 것이 좋습니다. 그런 다음 GIS 소프트웨어 (예 : 오픈 소스 Quantum GIS)를 사용하여 점과 도시 경계 사이의 유클리드 거리를 계산할 수 있습니다.

희망이 도움이됩니다.

3

도시의 긴 목록을 보려면 Google Geocoding service을 사용하십시오. 설정을 마치면 언어를 사용하여 REST API에 액세스 할 수 있습니다. 예를 들어 인기있는 표준 인 requests 라이브러리를 Python 용으로 사용할 수 있습니다.

Google지도 Java API, Python API 또는 JavaScript API을 사용할 수 있습니다. 여기에는 Google 지오 코딩 서비스가 포함되어 있습니다.

Python 및 Java 라이브러리의 간단한 예를 보려면 https://developers.google.com/maps/documentation/webservices/client-library을 참조하십시오. 여기

는 지오 코딩 결과에 대한 스키마입니다 :

results[]: { 
types[]: string, 
formatted_address: string, 
address_components[]: { 
    short_name: string, 
    long_name: string, 
    postcode_localities[]: string, 
    types[]: string 
}, 
partial_match: boolean, 
place_id: string, 
postcode_localities[]: string, 
geometry: { 
    location: LatLng, 
    location_type: GeocoderLocationType 
    viewport: LatLngBounds, 
    bounds: LatLngBounds 
} 
} 

경계 상자가 geometry>viewport 변수에 위치하고 있으며이

"viewport" : { 
      "northeast" : { 
       "lat" : 37.4238253802915, 
       "lng" : -122.0829009197085 
      }, 
      "southwest" : { 
       "lat" : 37.4211274197085, 
       "lng" : -122.0855988802915 
      } 
     } 
처럼 보인다
관련 문제