【发布时间】:2013-10-08 20:46:26
【问题描述】:
我有一个 MySQL 表,里面有纬度/经度的地方。另一方面,我有一个客户端 javascript/html5 页面,可以将坐标发送到服务器。
使用客户的坐标,我希望能够找到最近的位置。实现这一目标的最简单方法是什么?
像SELECT * FROM places AS p WHERE p.latitude NEAR '49.8330001' AND p.longitude NEAR '-119.45600'; 这样的东西会非常好。
我在这里遇到了一些问题,但他们没有给我正确的答案。我阅读了有关 MySQL 的空间扩展和一些其他 SQL 查询的信息,这些查询可能会起到作用,但似乎没有什么是真正“直截了当”的,所以我认为可以通过一些我可以查看的示例来实现更标准化的方式。
有人有这方面的经验吗?
【问题讨论】:
-
“接近”应该有多准确?准系统最简单的方法是从数据库位置中减去当前位置并按最小差异排序,例如
select abs(latitude - $lat) AS lat, abs(longitude - $lon) AS $log ... order by lat desc, lon desc输入东西。不涉及花哨的数学,只是一些减法。
标签: php mysql geolocation