根据经纬度查询附近企业 | SQL
Posted 窗边冷月光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据经纬度查询附近企业 | SQL相关的知识,希望对你有一定的参考价值。
--第一种
SELECT ent_id, ent_name, longitude, latitude, ROUND( 6378.138 * 2 * ASIN( SQRT( POW( SIN( ( 40.042307 * PI() / 180 - latitude * PI() / 180 ) / 2 ), 2 ) + COS(40.042307 * PI() / 180) * COS(latitude * PI() / 180) * POW( SIN( ( 116.317205 * PI() / 180 - longitude * PI() / 180 ) / 2 ), 2 ) ) ) * 1000 ) AS juli FROM ent ORDER BY juli DESC limit 0,100;
--第二种
SELECT ent_id, ent_name, longitude, latitude FROM ent ORDER BY POWER(MOD(ABS(longitude-116.317205),360),2) + POWER(ABS(latitude-40.042307),2) DESC limit 0,100;
--根据右上角经纬度和左下角经纬度查询范围内企业
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的主要内容,如果未能解决你的问题,请参考以下文章
基于纬度/经度查询附近兴趣点的 SQL 查询 - SQLite
Java,Mysql-根据一个给定经纬度的点,进行附近500米地点查询–合理利用算法