用于场地的谷歌地图地理编码器

Posted

技术标签:

【中文标题】用于场地的谷歌地图地理编码器【英文标题】:Google Maps geocoder for venues 【发布时间】:2011-03-22 09:40:09 【问题描述】:

我正在寻找一种使用谷歌地图对场地进行地理编码的方法。 Geocoder API 仅提供使用地址进行地理编码的能力。但是,如果不知道地址,只知道城市和餐厅名称怎么办?或者我想检索“Mc Donalds Berlin”或“Bar Berlin”的结果?

我找到了这篇文章,他确切地问我需要什么:Suggest list in google maps search input

And at his blog I found a solution

这非常有效,而且速度惊人!我查看了源代码,发现他正在使用这个 URL:

http://maps-api-ssl.google.com/maps/suggest?hl=en&gl=us&v=2&json=b&auth=4c8b041euWw4-3h2-Ty2fD3D1BKVQqJCEcU&src=1,2&num=5&numps=5&callback=handleResponse&q=........

顺便说一句,这与maps.google.com 用于获取 ajax 自动补全的 URL 相同。

我现在的问题是:

我自己的网站可以使用这个网址吗? 我需要特殊的 API 密钥吗? (因为上面 URL 中的 auth= var) 还是像付费服务一样? 还有其他方法可以解决问题吗?例如使用来自 google 的标准 Geocoder API?

【问题讨论】:

【参考方案1】:

您可能想查看 Google Places API for Venues:

Google Places API

另一种方法是通过 YQL,但我不能 100% 确定它的准确性。转到YQL Console 并尝试以下查询:

select * from local.search where query="outback steakhouse" and location="atlanta, ga"

这将为您提供乔治亚州亚特兰大 Outback 牛排馆的位置。您还可以查询邮政编码附近的餐厅:

select * from local.search where zip='30045' and query='restaurant'

我确信有一些方法可以使用 YQL 查询给定点周围的场地。

【讨论】:

感谢您的回答。但是您需要一个 Adsense 发布者 ID 才能访问 Google 地方。我没有,所以我尝试注册 adsense 服务。在公式中他们需要我的全名,包括地址、电话等。但我不想向 google 提供这些信息(他们已经对我了解太多了;)还有其他方法可以让我在不注册 adsense 的情况下测试 google 地方吗? @23tux 现在您需要 Adsense 帐户。另一种方法是使用 YQL @23tux 我也相信你展示的例子只是使用谷歌实例来做谷歌地图的地理编码。它并没有真正找到该地区周围的场地。 你的意思是雅虎查询语言吗?有没有对地址和地点进行地理编码的方法?我已经问过上面例子的作者。他说,他使用了与谷歌地图本身相同的api,并询问了谷歌的一些开发人员。他们说这不是非法的,但 API 没有记录,并且可以在没有任何通知的情况下更改。另一个问题是,他不确定当您使用此 API 进行多次调用的生产时,谷歌会如何反应。也许他们可以阻止您的应用程序。另一个问题:“使用谷歌实例做谷歌地图地理编码”是什么意思?谢谢! @23tux 您在上面给出的示例使用地理编码,没有特定于场地。它只是根据与谷歌即时配对的地址猜测工作(不是我的坏事)。 Google Place API 仍处于测试版 AFAIK。在 YQL 上查看查询结果。谷歌地图也是如此,如果您提出太多请求,他们可能会阻止您的应用查询他们的数据库,但您可以每年支付许可提要以将其删除。

以上是关于用于场地的谷歌地图地理编码器的主要内容,如果未能解决你的问题,请参考以下文章

如何在信息窗口中显示我的地理编码地址?谷歌地图 API

Google Maps API 重绘地理编码界限

Ruby 地理编码库与最新的 Google 地图、Yahoo 地图、Bing API 兼容

谷歌地图 SDK 地理编码

Angular 谷歌地图地理编码回调

谷歌地图地理编码器返回相同的结果