首页 > 编程知识 正文

怎么计算经纬度的距离,根据经纬度求球面距离

时间:2023-05-05 17:05:28 阅读:130273 作者:3904

今天,要实现使用PostgreSQL的PostGIS功能根据经纬度计算距离,并计算某个经纬度附近x米以内的地点,请访问发现了一些错误,实现SQL语句和更正的语句如下

计算纬度和经度之间的距离:

selectst _ distance (ST _ geomfromewkt (srid=4326; point(LNG1laT1) )、ST _ sets rid (ST _ point ) LNG 23360:双精度处理、lat 2:双精度处理)、4326

selectst _ d within (ST _ sets rid (ST _ point (LNG 13360:双精度处理,lat 13360:双精度处理(,4326 ) ) point(LNG2lat2)、x )示例:

(116.45815259398,39.938559769396 )北京三里屯Chao ) 117.26089170529,40.644852995474 )古北水镇(117.266608,40.647293 )北京好梦居民

于是我打开了ST_Distance函数

createfunctionst _ distance (地理, 地理位置) returnsdoubleprecisionimmutablestrictparallelsafelanguagesqlas $ (selection ) parallelsafelanguagesqlas $ (sele ction ) phy,Geography ) is 'args: gg1,G2-forgeometrytypereturnsthe2dcartesiandistancebetweentwogeometriesinprojectedunits () . forgeographytypedefaultstoreturnminimumgeodesicdistancebetweentwogeographiesinmeters.'; alterfunctionst _ distance (geography,geography ) owner to postgres; 评论写得很清楚。距离算出来的是相差度数,附近的点直接将X米当作度数处理

计算纬度和经度之间的距离:

selectst _ distance (ST _ geomfromewkt (srid=4326; point(LNG1lat1() ) 3360:geography,ST_setsrid ) ST_point ) lat2:double precision,lat 2: double

selectst _ d within (ST _ sets rid (ST _ point (LNG 13360:双精度处理,lat 13360:双精度处理) 4326 ) 326 PPT

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。