您的位置:首页 > 数据库

根据经纬度查询附近企业 | SQL

2017-08-18 20:41 239 查看
--第一种

SELECT
ent_id, ent_name, longitude, latitude,
ROUND(
[b]6378.138[/b] * [b]2[/b] * ASIN(
SQRT(
POW(
SIN(
(
[b]40.042307[/b] * PI() / [b]180[/b] - latitude * PI() / [b]180[/b]
) / [b]2[/b]
),
[b]2[/b]
) + COS([b]40.042307[/b] * PI() / [b]180[/b]) * COS(latitude * PI() / [b]180[/b]) * POW(
SIN(
(
[b]116.317205[/b] * PI() / [b]180[/b] -   longitude * PI() / [b]180[/b]
) / [b]2[/b]
),
[b]2[/b]
)
)
) * [b]1000[/b]
) AS juli
FROM
ent
ORDER BY
juli DESC
limit [b]0[/b],[b]100[/b];


 

 

--第二种

SELECT
ent_id, ent_name, longitude, latitude
FROM
ent
ORDER BY   POWER(MOD(ABS(longitude-[b]116.317205[/b]),[b]360[/b]),[b]2[/b]) + POWER(ABS(latitude-[b]40.042307[/b]),[b]2[/b]) DESC
limit [b]0[/b],[b]100[/b];


 

 

--根据右上角经纬度和左下角经纬度查询范围内企业

select ent_id, ent_name, longitude, latitude
from ent
where #{topRightLatitude,jdbcType=DECIMAL}>latitude and latitude>#{leftLowerLatitude,jdbcType=DECIMAL}
and #{topRightLongitude,jdbcType=DECIMAL}>longitude and longitude>#{leftLowerLongitude,jdbcType=DECIMAL}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  经纬度 附近商家 sql
相关文章推荐