我正在使用 python,我需要将“布卢明顿,印第安纳州”等位置映射到 GPS 坐标,以便我可以测量它们之间的距离。您推荐哪些地理编码库/API?也欢迎使用其他语言的解决方案。

有帮助吗?

解决方案

在谷歌地图API 支持地理编码和所述蟒食谱具有简单示例(尽管配方不使用的API直接,只是简单的maps.google.com网址)。

其他提示

Geopy 让您从几个地理编码器(包括谷歌,雅虎,虚拟地球)选择。

在谷歌的Web服务是非常容易使用。只要把查询的URL。为了使其更容易/懒惰,我会恬不知耻地宣传 pygeocoder ,一个Python包装的谷歌地理编码。然后,你可以做这样的事情。

print Geocoder.geocode("Montreal, Canada")[0].coordinates

得到一个元组具有坐标。你也可以做的东西一样。

Geocoder.geocode("sushi, San Francisco").count

Geocoder.geocode("sushi, San Francisco")[0].postal_code

谷歌和微软有API的是非常容易钩到。有一定的局限性,但他们很慷慨。你可能也想看看 http://geocoder.us/ 。我不知道那是什么好任何免费的地理编码服务(和我花时间寻找!)

您可以看看 GEOLITE上城。它是免费的(GPL),但他们说这不是最准确的。

  

在一个国家水平为99.5%和25英里半径内的城市级别为美国79%

这可能仍适合你,取决于你的需求。

您可以使用Web API像谷歌地图找到坐标。然后,如果你只需要计算距离(在一条直线上),存在公式你可以申请得到相当准确的结果。

USC WebGIS 地理编码器 (https://webgis.usc.edu) 免费。它具有 API,您可以从脚本调用,也可以上传和处理数据库(mdb、csv 等)。准确度级别取决于您的地址所在的位置。例如,在洛杉矶县,可以使用宗地质心,而在美国其他地区,则只能使用 TIGER/Lines。目前还没有参考数据源的覆盖图,但正在开发中。一旦更多的开发完成,底层工具也计划在未来开源。

我碰到 http://www.geonames.org/ 另一天。您实际上可以下载邮政​​编码的所有数据,包括纬度/经度等,甚至可以用于商业用途,从而无需连接到外部源。我认为您可以对城市名称执行相同的操作(邮政编码数据已具有与其关联的子区域名称)。

一些关于“乌鸦飞翔”距离的数学计算 - 直接从一点到另一点可以找到 这里这里(.NET 示例).

您可以有更好看的Geopy module.And很值得够使用,因为它包含了谷歌地图,雅虎地图地理编码器,使用它可以实现geocodings。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top