谷歌地图半径搜索

时间:2011-06-20 09:31:17

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

我有一个有地址的酒店数据库,也有经纬度的POI。

我想在半径(5公里10公里......)的酒店周围搜索这些POI。怎么做?

由于

2 个答案:

答案 0 :(得分:2)

有一个(相当广泛的)教程,用于在JavaScript中创建“商店定位器”类型页面,MySQL PHP可从Google Geo API团队获得:

http://code.google.com/apis/maps/articles/phpsqlsearch.html

如果您看到“在地理编码附近搜索”部分,则可以将其修改为酒店的设置地理代码。或者,您可以为它提供一个酒店名称的字符串。这实际上取决于您希望搜索功能的运行方式。

这对你有帮助吗?

P.S。如果您想优化自己的版本,我还在此处发布了有关创建超高效版本的信息Mysql Haversine Procedure (radius)using a center point

答案 1 :(得分:0)

SELECT
*,
ACOS( SIN( RADIANS( `lat` ) ) * SIN( RADIANS( $lat ) ) + COS( RADIANS( `lat` ) )
* COS( RADIANS( $lat )) * COS( RADIANS( `lon` ) - RADIANS( $long )) ) * 6380 AS `distance`
FROM `places`
WHERE
ACOS( SIN( RADIANS( `lat` ) ) * SIN( RADIANS( $lat ) ) + COS( RADIANS( `lat` ) )
* COS( RADIANS( $lat )) * COS( RADIANS( `lon` ) - RADIANS( $long )) ) * 6380 < 10
ORDER BY `distance`

10是以公里为单位的半径 $lat$long是中心或圆圈 如果您的表

,则latlon是属性