【问题标题】:Calculating distance between two post codes计算两个邮政编码之间的距离
【发布时间】:2013-01-11 22:35:12
【问题描述】:

我想要一些关于如何计算两个邮政编码之间距离的帮助。这是我想要的设置,让我给你一个场景。

一个用户登录我的网站(他们提供了他们的详细信息,他们的邮政编码就是其中之一)。该数据存储在users 表中。

我有另一张桌子,上面有关于locations 的详细信息。我想显示离用户最近的位置(和距离)。

我知道有一些方法可以使用,例如:

将邮政编码转换为经纬度并使用内置方法计算距离,我认为 Google 提供了免费服务。但我不知道我将如何实现这样的事情。我看过的所有教程似乎都太复杂了,目前我想要一个非常粗略和简单的解决方案,我可以在此基础上进行构建,更重要的是学习!

在数据的基本输入/输出方面,我相当熟悉 PHP 和 MySQL。但我不确定处理有关用户数据和“企业”位置的信息的最佳方式。

任何建议,cmets 将不胜感激。

【问题讨论】:

  • 您的问题相当广泛。你试过什么?
  • 我知道是这样,我还没有真正尝试过任何事情,我知道如何从数据库中存储和检索项目,但我从未使用过与我查看过的地理编码相关的数据关于 Google 提供的服务。
  • 您通常可以通过地址使用 google 或foursquare 的api 获取经纬度信息,但对于foursquare 来说,即使只是场地名称也可能足够了。从中存储每个位置的 latlong,然后考虑 sammitch 的建议。
  • 我在这里检查过,但我不确定如何实现代码以仅返回 LAT/LONG。 developers.google.com/maps/documentation/geocoding/…

标签: php mysql geocoding distance


【解决方案1】:

如果您在美国,此 API 应该可以满足您的需求:https://www.zipcodeapi.com

它专门用于查找两个邮政编码之间的距离,告诉您邮政编码的经纬度,查找与某个位置相关的所有邮政编码,等等。

【讨论】:

    【解决方案2】:
    1. 从条例调查中免费获取邮政编码northings eastings 数据(在您的网页上注明免费)

    2 计算与相应 csv 平面文件的距离(M.csv 包含所有曼彻斯特邮政编码以及北方和东方)。

    1. 距离是 sqrt((n1-n2)**2 +(e1-e2)**2) - 请原谅我的 fortran

    2. 如果速度较慢,并且您想要大致距离,请创建一个包含上半年邮政编码平均值的小型数据库,以便查找 M20 而不是 M20 3nb。

    5 NB 谷歌不喜欢你在谷歌地图之外使用他们的邮政编码 API。

    1. 我想知道一种算法,这样对于短距离,如果您正在查看靠近邮政编码的地方,您只需在 M 个邮政编码中搜索 M 个邮政编码(如果您有相邻邮政编码区表)。

    7 有没有人更进一步?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-09
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 2011-04-28
      • 1970-01-01
      相关资源
      最近更新 更多