0

我有一个网站,用户首先输入他们的邮政编码。

我有一张不同商店的桌子,其中还包含属于商店的邮政编码。

是否可以在用户输入的邮政编码半径 5 公里范围内获取邮政编码?

所以我可以查询数据库并找到用户附近的所有商店。

我可以为此使用谷歌地图吗?我应该得到一份预先计算好的所有邮政编码(单个国家)及其坐标的列表吗?还有其他建议吗?

4

4 回答 4

2

谷歌有一个关于这方面的教程,它应该为你指明正确的方向。SQL 查询中的三角函数是唯一困难的部分。乍一看,基本上有两种方法可以解决这个问题:

  1. 获取每个商店的纬度/经度坐标。您可以通过提供商店的街道地址,使用 Google 地图的地理编码 API来执行此操作。您只需为每个位置执行一次。
  2. 只有每个商店的邮政编码,并使用一个邮政编码表,每个商店都有以几何为中心的纬度/经度坐标。查找范围内的邮政编码,然后显示具有这些邮政编码的商店。

第一个会更准确,但两者都有效。如果您计算的是与邮政编码而不是地址的距离,您仍然需要查找该邮政编码的纬度/经度坐标。

于 2011-07-30T18:15:48.740 回答
2

您可以存储每个邮政编码的经度/纬度。该数据可在网上免费获得,此处为http://www.boutell.com/zipcodes/。然后,您将使用此处讨论的大圆距离函数找到半径中的邮政编码MySQL Great Circle Distance (Haversine formula)

于 2011-07-30T18:25:09.717 回答
1

您将需要每个邮政编码的纬度和经度,然后使用Haversine 公式获得大致距离。

于 2011-07-30T18:24:22.583 回答
1

您需要从邮政编码中获取纬度/经度,然后您可以通过地图或 geoplaces api 找到附近的地方。前往 google maps api 或 YQL geo api。

于 2011-07-30T18:21:51.037 回答