【发布时间】:2011-06-01 22:32:00
【问题描述】:
我有一个如下所示的 MySQL 数据库:
Postcode int(4),
City varchar,
State varchar,
Latitude decimal(7,4),
Longitude decimal(7,4)
我希望用户输入他们的邮政编码(例如1660)和 x 半径(比如说10)英里或公里。当他们点击搜索时,我想返回该半径内所有城市的列表。我有一个数据库,其中包含澳大利亚所有地区的所有邮政编码、城市、纬度、经度等。
【问题讨论】:
-
密切相关(如果不重复):Formulas to Calculate Geo Proximity
-
一个类似的问题,不特定于 SQL 中的实现:stackoverflow.com/q/27928/238688
-
是的,仍然很困惑。 Forumla 仍然没有任何意义,因为它没有具体告诉我在 a 点 10 公里内返回的是什么。只有点 a 和 b 相距 x 公里。为了给伤口加盐,他们这样说“正如你所看到的,Haversine 公式和余弦球定律之间没有明显的区别,但是与 Vincenty 公式相比,两者的距离偏移量高达 22 公里,因为它使用地球的近似椭球体,而不是球体。” 22公里偏移?好吧,这似乎一点也不准确!!????
-
22 公里对于愿意旅行 1000 公里以上的客户来说可以忽略不计。使用 Google Maps API 从邮政编码中获取纬度和经度。
-
如果 r 大于“相距 x 公里”,则“相距 x 公里”在 r 内!!