2012-11-18 196 views
8

我想知道某個特定地理座標距城市列表有多遠(「遠」表示座標與城市之間的歐式距離,不考慮道路)。爲此,我需要爲每個城市找到一個邊界框 - 全部位於以色列。獲取城市邊界框

This post討論國家邊界框,但我需要他們在城市層面。

除了在地圖上用手繪製矩形並提取座標之外,是否有任何方法可以獲取長長的城市列表信息?

回答

1

我覺得,你不需要邊界框,而是邊界。因爲使用包圍盒,你的分析將非常粗糙,並且無論如何要得到一個包圍盒首先需要一個邊界。

如果您現在只是城市列表,您需要獲取空間數據,所有城市的邊界。要查找此數據,您可以嘗試this links。我會建議檢查開放街道地圖。然後,您可以使用任何GIS軟件(例如,開源Quantum GIS),並計算您的點與城市邊界之間的歐式距離。

希望這會有所幫助。

3

對於一長串城市,請使用Google Geocoding service。完成設置後,您可以使用任何語言訪問REST API。例如,您可以使用Python的流行標準requests庫。或者,您可以使用Google自己的Google地圖Java API,Python APIJavaScript 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 
      } 
     }