注册

根据经纬度计算两地距离

木一番 2023/02/08 1665 1

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【问题描述】*:
mysql是可以通过经纬度算出两地距离,方法参考如下:

ROUND( 6371.393 * 2 * ASIN( SQRT( POW( SIN( ( 23.096783458623 * PI() / 180 - ra.latitude * PI() / 180 ) / 2 ), 2 ) + COS( 23.096783458623 * PI() / 180 ) * COS( ra.latitude * PI() / 180 ) * POW( SIN( ( 113.27660228564 * PI() / 180 - ra.longitude * PI() / 180 ) / 2 ), 2 ) ) )* 1000 < 3000 )

达梦也可以
1.先创建rad函数

CREATE OR REPLACE FUNCTION RAD(d number) RETURN NUMBER is PI number :=3.141592625; begin return d* PI/180.0; end ;

2.再创建GetDistance函数

CREATE OR REPLACE FUNCTION GetDistance ( lat1 number, lng1 number, lat2 number, lng2 number) RETURN NUMBER is earth_padius number := 6378.393; radLat1 number := rad(lat1); radLat2 number := rad(lat2); a number := radLat1 - radLat2; b number := rad(lng1) - rad(lng2); s number := 0; begin s := 2 * Asin(Sqrt(power(sin(a / 2), 2) + cos(radLat1) * cos(radLat2) * power(sin(b / 2), 2))); s := s * earth_padius; s := Round(s * 10000) / 10000; return s; end;
回答 0
暂无回答
扫一扫
联系客服