按邮政编码“查找最近的位置”?
Posted
技术标签:
【中文标题】按邮政编码“查找最近的位置”?【英文标题】:"Find nearest location" by Zip/Postal Code? 【发布时间】:2010-03-24 18:45:35 【问题描述】:我需要在我们的网站上“查找最近的位置”。
访问者输入他们的邮政编码,然后他们被重定向到我们最近位置的特定网页。我们在美国和加拿大有四十个地点。
我怎样才能构建这样的东西?我可以用 Google Maps API 做到这一点吗?我已经在谷歌地图上有了一张自定义地图。它与我们的位置一起绘制。最好向 Google 地图发送一个命令,说“我们在 ________ 邮政编码处最近的位置是什么”。
有什么建议吗?
【问题讨论】:
【参考方案1】:如果您有每个邮政编码的经度和纬度(搜索 google),您可以使用 Haversine 公式来计算最近的邻居。
http://www.codecodex.com/wiki/Calculate_Distance_Between_Two_Points_on_a_Globe
【讨论】:
这需要我找到美国/加拿大的邮政编码数据库。这将是超过 80,000 条记录;它必须是最新的。对于这样一个简单的应用程序来说,这似乎有点矫枉过正。所以我希望我可以使用 Google Maps API 做到这一点。 所以用户输入邮政编码,您选择所有 40 多个位置,因为您不知道哪个最近。您循环应用程序层中的位置并为每个位置调用 googlemaps api 以计算其相对于用户输入的 zip 的距离。 40 多个 ajax 调用之后,您拥有所有 40 多个位置的所有距离,因此您可以相应地过滤列表并显示给用户。嗯,这需要如何响应? 这更像是:用户输入邮政编码,Google Maps API 返回该邮政编码的经纬度。我已经有了我们 40 多个地点的经纬度,使用 Haversine 公式计算最近的。【参考方案2】:您需要database 的邮政编码以及经度和纬度,您可以从中计算距离。
【讨论】:
链接数据库使用 10 年前的数据。新的邮政编码添加非常频繁。 天哪,这太棒了!谢谢【参考方案3】:Google 地图在出于商业目的使用方面存在限制,因此您可能需要提前考虑这些(限制)。 根据我以前的经验,我建议使用 MapQuest API。您可以在此处找到详细信息: http://developer.mapquest.com/ 和一些快速入门指南http://www.mapquest.com/features/developer_tools_oapi_quickstart
MapQuest 在商业交易方面做得更好。无论如何,在您将其实施到生产中之前,请检查他们的 T&C。
他们有 JavaScriopt 和我认为常规的 WS 用于地理位置解码。
问候 康拉德
【讨论】:
@Konrad 我总是建议替代谷歌地图,但谷歌的服务条款对于在商业网站中的使用也非常宽松。这只是收取访问费用或以其他方式对公众关闭的网站,禁止使用 Google Maps AFAIK。 感谢分享这个链接,他们的服务看起来很有趣。 @Pekka 我同意你的观点,但我仍然有一些疑问,他们的 T&C 到底允许或不允许什么,这就是我建议 MapQuest 的原因。以上是关于按邮政编码“查找最近的位置”?的主要内容,如果未能解决你的问题,请参考以下文章