我想在我的网站上实现基于位置的搜索(即位置 + 半径)。这些位置将添加到我的数据库中。我以为我会使用 Google Places API,但我找不到如何使它与自己的位置数据库一起使用。有可能吗?我会很感激一个例子或一些教程的链接。如果没有,还有其他解决方案可以解决问题吗?请记住,我无法在服务器上安装任何东西,因此无法向 DB 添加一些地理扩展。
提前致谢。
我想在我的网站上实现基于位置的搜索(即位置 + 半径)。这些位置将添加到我的数据库中。我以为我会使用 Google Places API,但我找不到如何使它与自己的位置数据库一起使用。有可能吗?我会很感激一个例子或一些教程的链接。如果没有,还有其他解决方案可以解决问题吗?请记住,我无法在服务器上安装任何东西,因此无法向 DB 添加一些地理扩展。
提前致谢。
您可以使用 Google地理编码服务来查找您所在位置的坐标。然后,您可以使用这些坐标在数据库中查找位置。如果您的服务器上有 PHP/MySQL,则下面的代码使用使用PDO的Haversine 公式。
$stmt = $dbh->prepare("SELECT name, lat, lng, (6372 * acos( cos( radians(?) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(?) ) + sin( radians(?) ) * sin( radians( lat ) ) ) ) AS distance FROM mytable HAVING distance < 1 ORDER BY distance ASC LIMIT 0 , 20");
// Assign parameters
$stmt->bindParam(1,$center_lat);//Coordinates of location
$stmt->bindParam(2,$center_lng);//Coordinates of location
$stmt->bindParam(3,$center_lat);
如果使用公里数,则为 6372,英里数为 3959
在这个DEMO中使用了这个查询