Kri*_*rki 37 php mysql google-maps
我想从下面的数据库表中找到最近的位置
Address Latitude longitude
Kathmandu 44600, Nepal 27.7 85.33333330000005
Los, Antoniterstraße 37.09024 -95.71289100000001
Sydney NSW, Australia 49.7480755 8.111794700000019
goa india 15.2993265 74.12399600000003
Run Code Online (Sandbox Code Playgroud)
我从谷歌地图中获取了所有这些数据.在这里,我必须找到一个地方最近的位置.假设我在Surkhet的地方,它的纬度是28.6,经度是81.6,我怎样才能找到距离Surkhet最近的地方.
Sco*_*ion 86
使用MySQL查找附近的位置
这是SQL语句,它将找到距离37,-122坐标25英里半径范围内最近的20个位置.它根据该行的纬度/经度和目标纬度/经度计算距离,然后仅询问距离值小于25的行,按距离对整个查询进行排序,并将其限制为20个结果.要以公里而不是里程搜索,请将3959替换为6371.
表结构:
id,name,address,lat,lng
Run Code Online (Sandbox Code Playgroud)
注 - 这里纬度= 37&经度= -122.所以你只需通过自己的.
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) *
sin( radians( lat ) ) ) ) AS distance FROM your_table_name HAVING
distance < 25 ORDER BY distance LIMIT 0 , 20;
Run Code Online (Sandbox Code Playgroud)
你可以在这里找到细节.
Kri*_*rki 22
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
这是最佳查询
归档时间: |
|
查看次数: |
62097 次 |
最近记录: |