15

我想知道特定地理坐标与城市列表的距离(“远”表示坐标与城市之间的欧几里德距离,不考虑道路)。为此,我需要为每个位于以色列的城市找到一个边界框。

这篇文章讨论了国家边界框,但我在城市级别需要它们。

除了在地图上手动绘制矩形并提取坐标之外,还有什么方法可以获取一长串城市的这些信息?

4

4 回答 4

14

您可以在www.mapdevelopers.com/geocode_bounding_box.php找到这些城市的边界框。进入城市会在地图上显示一个方框,并给出每一边的纬度和经度。希望这将为您提供所需的信息。

于 2014-09-12T05:02:15.100 回答
6

对于很长的城市列表,请使用Google 地理编码服务。设置完成后,您可以使用任何语言访问 REST API。例如,您可以使用流行的 Python 标准请求库。

或者,您可以使用 Google 自己的 Google Maps Java APIPython 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
           }
        }
于 2015-07-08T23:02:04.383 回答
2

您可以在http://boundingbox.klokantech.com/找到这些城市的边界框。 输入城市/国家将在地图上显示一个框,并给出每一边的纬度和经度。但准确性高于http://www.mapdevelopers.com/geocode_bounding_box.php(感谢@Fred 的回答)

于 2015-06-24T19:41:55.043 回答
1

我认为,您不需要边界框,而是城市边界。因为使用边界框,您的分析将非常粗糙,并且要获得边界框,您首先需要一个边界。

如果您现在只有城市列表,则需要获取空间数据,即所有城市的边界。要查找此数据,您可以尝试此链接。我建议检查 Open Street Maps。然后,您可以使用任何 GIS 软件(例如,开源 Quantum GIS)并在那里计算您的点与城市边界之间的欧几里德距离。

希望这可以帮助。

于 2012-11-22T06:38:31.737 回答