如何使用纬度和经度在具有多个地方的记录的位置附近进行搜索

时间:2016-12-01 13:59:46

标签: php mysql

例如,有一个像chennai和bangalore这样的地方的单曲。因此,该记录存储在数据库中,具有2个纬度和2个经度,如钦奈的纬度和经度,存储在数据库中的班加罗尔的纬度和经度为latitude1,latitude2和longitude1,longitude2。 现在我想要检索此数据,如果用户搜索半径50公里或更远距离内的班加罗尔或钦奈。 现在我只使用以下查询单个地方。

SELECT *, (3959 * acos(cos(radians($Latitude)) * cos(radians(latitude)) 
          * cos(radians(longitude) - radians($Longitude)) 
          + sin(radians($Latitude)) * sin(radians(latitude )))) 
          AS distance 
    FROM MyTableName HAVING distance < $Distance ORDER BY distance

表格结构

    name       |   latitude1   |    latitude2  |   longitude1   | longitude2
    -----------|---------------|---------------|----------------|--------------
   record1     |    13.0827    |   none        |  80.2707       |  none
    -----------|---------------|---------------|----------------|---------------
   record2     |   12.9716     |   13.0827     |  77.5946       |  80.2707

0 个答案:

没有答案