【问题标题】:google maps radius search谷歌地图半径搜索
【发布时间】:2011-09-18 13:14:19
【问题描述】:

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

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

谢谢

【问题讨论】:

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


【解决方案1】:

Google Geo APIs 团队提供了一个(相当广泛的)使用 JavaScript、MySQL PHP 创建“Store Locator”类型页面的教程:

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

如果您看到“在地理代码附近搜索”下的部分,您可以将其修改为酒店的设置地理代码。或者,您可以只为其提供酒店名称的字符串。这实际上取决于您希望搜索如何发挥作用。

这对你有帮助吗?

附:如果您想优化自己的版本,我还在这里发布了有关创建此版本的超高效版本Mysql Haversine Procedure (radius)using a center point

【讨论】:

    【解决方案2】:
    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 是表格的属性

    【讨论】:

      猜你喜欢
      • 2020-10-11
      • 1970-01-01
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-24
      • 2011-09-07
      • 2014-04-04
      相关资源
      最近更新 更多