【发布时间】:2013-05-04 20:17:51
【问题描述】:
我想查询给定点半径 500 米范围内所有可能的街道名称。 多个帖子使用 Haversine 公式 或它的某个版本引用了 google 商店定位器示例。 但我也遇到了一些具有更简化的解决方案的帖子。
他们只是将点视为 x,y 坐标,方法是添加到 lat 和 long 变量,如下所示。
如果这将是 查询 mysql 的最快方法,而不会变得非常复杂并且仍然可以获得良好的结果,我正在徘徊。我还没有很多数据,所以我想知道我是否走在正确的轨道上。 使用这种方法是否有任何缺点或不准确?
我不明白这怎么可能是一个半径范围,它看起来更像是一个方向 查询?
Distance = 0.1; // Range in degrees (0.1 degrees is close to 11km)
LatN = lat + Distance;
LatS = lat - Distance;
LonE = lon + Distance;
LonW = lon - Distance;
...Query DB with something like the following:
SELECT *
FROM table_name
WHERE
(store_lat BETWEEN LatN AND LatS) AND
(store_lon BETWEEN LonE AND LonW)
【问题讨论】:
标签: mysql geolocation range latitude-longitude