我从客户端的谷歌地图到xhr到我的php脚本的lat / lng界限。这是一个SQL查询来搜索该范围内的位置。我的表将lat, lng
存储为不同的列。现在我如何安排我的查询位置,以便只返回指定NE, SW
范围内的点。
在数据库中,它存储为number
,我不知道是否已经有任何postgresql特定的聚合函数来执行相同的操作。
答案 0 :(得分:2)
我错过了什么吗?这只是一个矩形边界检查。这不像你需要计算点之间的距离。
WHERE lat BETWEEN lat_of_corner_a AND lat_of_corner_b
AND lon BETWEEN lon_of_corner_a AND lon_of_corner_b
答案 1 :(得分:1)
我在这里发布了工作解决方案: Get all records from MySQL database that are within Google Maps .getBounds?
Alex的解决方案仅适用于美国,特别是在北半球,西部地区(正在减少的值符合Google提供bouds值的顺序。
这个适用于世界上其他3/4的人。
SELECT * FROM tilistings WHERE
(CASE WHEN a < c
THEN lat BETWEEN a AND c
ELSE lat BETWEEN c AND a
END)
AND
(CASE WHEN b < d
THEN lng BETWEEN b AND d
ELSE lng BETWEEN d AND b
END)
(有关更多详情,请参阅链接的帖子)