2016-05-16 95 views
-1

我一直在寻找一些我想达到的信息,但没有得到任何明确的答案。Google地图API for addesses搜索

我有一个数以千计的地址的数据库。我希望当用户通过输入邮编进行搜索时,搜索应该在地图中显示靠近邮编的所有可用地址。放大显然会显示更接近搜索邮政编码的地址(因此搜索结果更少),缩小也会包含更远的地址(因此更多的搜索结果)。然后点击位置图标将显示完整的地址。

我需要将地址存储为经度和纬度还是谷歌地图可以使用邮政编码搜索位置?如果我需要存储经度和纬度,那么将地址转换为long和lat的最佳方式是什么?

我真的很感激,如果你能指点我任何有用的链接或可重用的代码。

感谢

回答

0

据我了解,你要找到你的数据在一定的位置,这是通过邮政编码确定的所有最接近的位置。

首先,您必须将所有地址转换为坐标(经度和纬度)。你可以做到这一点使用谷歌的地理编码API,你必须创建为脚本,它调用谷歌的地理编码API在你的数据库的每一个地址:

https://maps.googleapis.com/maps/api/geocode/json?address=EXAMPLE_ADDRES&key=YOUR_API_KEY 

这个剧本带给你的是记录here的响应。您可以解析它以获取每个位置的经度和纬度,并将它们存储在数据库中。注意Google Geocode API的局限性。他们列出了here。您必须以不超过这些限制的方式创建脚本。还请阅读this article缓存地理编码结果,以确保您不违反服务条款。本文还包含一些最佳实践和服务器端地理编码的示例。

现在,当有人向您的应用程序输入邮编时,您可以使用地理编码API或Google maps Geocoding service来转换邮政编码以协调和使用海峡社区公式,您可以计算离您的数据库最近的位置到邮政编码位置的坐标。您可以在前端执行此操作,例如在此SO answer(而不是地址,您将在地址栏中输入邮编+州/国家)或在后端,如果您使用MySQL,请检查此SO question