如何搜索存储在我的数据库中的附近地点?

时间:2015-03-10 20:14:07

标签: google-maps google-maps-api-3

我正在开发一个网络应用,用户在地图中设置一个位置(Google Maps API),我将坐标存储在数据库中。 所以,在另一个页面,我想进行搜索,包括获取我的本地坐标,并根据半径检索先前存储在我的数据库中的附近地点。 我怎么能这样做?

2 个答案:

答案 0 :(得分:13)

您可以使用所谓的Haversine formula

$sql = "SELECT *, ( 3959 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5";

$lat$lng是您的点的坐标,而lat / lng是您的表格列。以上将列出5 nm范围内的位置。将3959替换为6371以更改为公里。

答案 1 :(得分:1)

听起来像是一个“商店定位器脚本”,谷歌在这里有一个介绍:

https://developers.google.com/maps/articles/phpsqlsearch_v3

您需要做的是创建一个后端,允许您的用户将每个位置输入数据库。这是一项相当大的任务,如果我是你,我会采用开源脚本或类似方法,并根据您的需要进行调整。

例如:

https://github.com/bjorn2404/jQuery-Store-Locator-Plugin

我会搜索“免费商店定位器脚本”并尝试他们的演示,看看最吸引你的是什么。