如何使用自己的位置数据库在Web应用程序中进行基于位置的搜索

时间:2013-03-10 08:05:39

标签: database google-places-api

我想在我的网站上实现基于位置的搜索(即位置+半径)。这些位置将添加到我的数据库中。我以为我会使用Google Places API,但我找不到如何使用自己的位置数据库。有可能吗?我会感谢一些示例或一些教程的链接。如果没有,是否有任何其他解决方案可以做到这一点?请记住,我无法在服务器上安装任何东西,因此无法为DB添加一些地理扩展。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Google Geocoding服务查找您所在位置的坐标。然后,您可以使用这些坐标在数据库中查找位置。 如果您的服务器上有PHP / MySQL,则下面的代码使用Haversine formaula使用PDO

$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);

如果使用kms为6372,则为英里为3959

此查询用于此DEMO