Google maps 如何搜索存储在数据库中的附近位置?

Google maps 如何搜索存储在数据库中的附近位置?,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我正在开发一个web应用程序,用户在地图中设置一个位置(GoogleMapsAPI),我将坐标存储在数据库中 在另一个页面,我想做一个搜索,其中包括获取本地坐标,并根据半径检索以前存储在数据库中的附近位置 我该怎么做呢?听起来像是一个“商店定位器脚本”,谷歌在这里有一个介绍: 您需要做的是创建一个后端,允许用户将每个位置输入数据库。这是一个相当大的任务,如果我是你,我会选择一个开源脚本或类似的脚本,并根据你的需要进行调整 例如: 我会搜索“免费商店定位器脚本”,并尝试他们的演示,看看什么最吸

我正在开发一个web应用程序,用户在地图中设置一个位置(GoogleMapsAPI),我将坐标存储在数据库中

在另一个页面,我想做一个搜索,其中包括获取本地坐标,并根据半径检索以前存储在数据库中的附近位置

我该怎么做呢?

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

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

例如:


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

你可以使用所谓的

$sql=“选择*,(3959*acos(弧度(.$lat.))*cos(弧度(lat))*cos(弧度(lng)-弧度(.$lng.))+sin(弧度(.$lat.))*sin(弧度(lat)))作为与您的_表之间的距离,距离小于5”;

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

您可以使用此SQL select语句:根据您想要的半径,您可以将距离<25的直线更改为所需的数字。请您解释您的公式,因为我找不到您在上面给出的公式中使用的公式。干杯!:)这是维基百科链接中解释的公式。我不是数学家,所以很难给出比链接页面更多的见解。它只是为MySQL翻译的。它基本上允许在地球表面的某个半径内找到点,正如你可能知道的,地球表面不是平坦的;)
$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";