谷歌地理编码API(城市=>经度,纬度)

22

谷歌是否提供RESTful API,可以传递城市名称(或邮政编码),并返回经度和纬度。

我知道如何使用Google Maps API来实现这一点,但是我真的不想让我的用户仅为了对位置进行地理编码而下载巨大的200k Google Maps API。

有人知道基于URL的(REST)城市/邮政编码到经度和纬度API吗?

由于对这些信息进行地理编码会触发多个其他进程,因此首先执行此步骤非常重要,以便快速执行,因为目前使用Google Maps API由于巨大的下载和JavaScript加载而成为瓶颈。


只要我今天已经指出了这一点-请注意,除非您将在Google地图上显示数据,否则从技术上讲,您不被允许使用Google的地理编码器。Yahoo也是如此。不过我不知道他们是否会真的检查你。 - Chris B
@ChrisB:这对雅虎来说不再是事实。 - Nathan Osman
实际上,雅虎的PlaceFinder许可证规定您不能存储API的地理编码或其他数据以供将来使用。 - LachoTomov
4个回答

5

Yahoo PlaceFinder是雅虎提供的新服务,可将地址(包括城市名称)转换为纬度/经度对,并能将坐标转换为地址。与谷歌的Geocoding API不同,Yahoo PlaceFinder的条款并不禁止在其地图API之外使用数据。


1
目前,雅虎要求如果您每天进行超过10K次的请求,请与他们联系。 - mooreds
这个服务已经被关闭了,现在叫做Geoboss。不确定是否可以免费使用此服务。 - Jesse
Geoboss存储规则:b:您不得:vi. 存储服务中的任何结果(例如地图图像、地图数据或地理编码位置信息),除非(a)为了临时缓存结果以提高您的产品性能,但仅在合理必要的时间内;或者(b)支持您的产品的核心业务功能。如果您存储或缓存结果的目的或效果是为了避免、减少或扭曲查询次数或欠Yahoo的查询费用,则不能使用这些例外情况。 - Sebastian Patten

5

0
请记住,如果您使用直接的HTTP调用方法进行大量流量传输,很可能会超过每天的配额限制。谷歌根据IP地址限制使用次数,因此使用客户端代码将大大增加每天可以进行的地理编码查询次数,因为它们将与用户的计算机关联,而不是您的服务器。

Premier API没有地理编码查找次数的限制。 - Luke Antins
2
@Luke:使用 Google Maps API Premier 的用户每天最多可执行 100,000 次请求。http://code.google.com/apis/maps/documentation/geocoding/#Limits - sv_in
@Shree - 我改正了 =) 不确定我看的时候是否有限制...(可能有,我只是没注意到) - Luke Antins

-3
$.get("http://ipinfo.io", function(response) {
    console.log(response.city, response.country);
}, "jsonp");

这里有一个更详细的JSFiddle示例,它还打印出完整的响应信息,因此您可以看到所有可用的细节:http://jsfiddle.net/zK5FN/2/


这似乎会返回IP地址,而不是经纬度。另外,fiddle好像出了问题? - mheavers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接