地理编码库

时间:2008-12-17 01:19:28

标签: python api rest geocoding

我正在使用python,我需要将“Bloomington,IN”等位置映射到GPS坐标,这样我就可以测量它们之间的距离。 您推荐哪些Geocoding库/ API?也欢迎其他语言的解决方案。

9 个答案:

答案 0 :(得分:24)

Geopy可让您从多个地理编码器(包括Google,Yahoo,Virtual Earth)中进行选择。

答案 1 :(得分:9)

Google的网络服务非常易于使用。只需将查询放入URL即可。为了让它更容易/更懒惰,我将无耻地宣传pygeocoder,一个用于Google地理编码的Python包装器。然后你可以做一些像

这样的事情
print Geocoder.geocode("Montreal, Canada")[0].coordinates

获取带坐标的元组。你也可以做像

这样的事情
Geocoder.geocode("sushi, San Francisco").count

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

答案 2 :(得分:8)

Google Maps API supports geocoding和Python Cookbook有一个简单的example从Python访问它(虽然配方不直接使用API​​,只是简单的maps.google.com网址)。

答案 3 :(得分:3)

谷歌和微软都拥有非常容易吸引的API。有一些限制,但它们非常慷慨。您可能还想查看http://geocoder.us/。我不知道有任何好的免费地理编码服务(我花时间看!)

答案 4 :(得分:2)

您可以查看GeoLite City。这是免费的(GPL),但他们说这不是最准确的。

  

半径25英里范围内,美国国家级别超过99.5%,城市级别为79%

根据您的需要,这仍然适合您。

答案 5 :(得分:0)

您可以使用Google地图等网络API查找坐标。然后,如果您只需要计算距离(直线),there is a formula就可以申请获得非常准确的结果。

答案 6 :(得分:0)

USC WebGIS Geocoderhttps://webgis.usc.edu)是免费的。它有API,你可以从脚本调用,或者你可以上传和处理数据库(mdb,csv等)。准确度取决于您的地址所在。例如,在洛杉矶县,可以使用宗地质心,而在该国的其他地区只有TIGER / Lines。目前还没有参考数据源的覆盖图,但是正在开发中。计划在未来一旦开发完成后开放源代码工具。

答案 7 :(得分:0)

前几天我遇到了http://www.geonames.org/。您实际上可以下载邮政​​编码的所有数据,包括纬度/经度等,即使是商业用途,也可以保存连接到外部源的数据。我认为你可以对城市名称做同样的事情(邮政编码数据已经有了与之关联的子填充名称)。

有关找到距离“如同乌鸦飞行”的一些数学 - 直接从一个点到另一个点可以找到herehere (.NET example)

答案 8 :(得分:0)

您可以更好地查看Geopy模块。它非常值得使用,因为它包含Google地图,yahoo地图地理编码器,您可以使用它来实现地理编码。