按邮政编码“查找最近的位置”?

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 的原因。

以上是关于按邮政编码“查找最近的位置”?的主要内容,如果未能解决你的问题,请参考以下文章

按邮政编码距离升序计算和排序用户的最快方式(也是最优化的)

json 马来西亚邮政编码按州(JSON)

C# - 英国邮政编码正则表达式没有按预期工作?

Python Pandas 按邮政编码堆叠并按月/年分组

将完整地址转换为按城市、地区、邮政编码等分隔的地址

需要按顺序对数据库表中的邮政地址进行排序