在系统中,搜索附近餐馆的时候,要根据当前的经纬度去获取附近指定距离的餐馆信息。在这个需求中就必须要根据经纬度去计算餐馆和当前经纬度的距离。之前的做法是因为用sybase数据库,所以计算距离都是获取完数据之后进行两点之间的计算。但是目前已经弃用sybase数据库,所以我想着在sql里面之间作为条件去查询符合条件的餐馆。
在sql中的语句如下
select * from mer where sqrt( ( ((113.60189578775-mer_gps_longitude)*PI()*12656*cos(((24.80864699442+mer_gps_latitude)/2)*PI()/180)/180) * ((113.60189578775-mer_gps_longitude)*PI()*12656*cos (((24.80864699442+mer_gps_latitude)/2)*PI()/180)/180) ) + ( ((24.80864699442-mer_gps_latitude)*PI()*12656/180) * ((24.80864699442-mer_gps_latitude)*PI()*12656/180) ) )<5
查询出来的数据就是小于5km距离的餐馆
点餐系统(五)——获取附近餐馆
时间: 2024-10-07 01:26:59