1.数据库中有如下两列字段 (纬度,经度)
LocationLat decimal(18, 6)
LocationLng decimal(18, 6)
以下代码可根据当前所在经纬度获取附近多少米的数量
配合高德API即可实现小黄车在地图上显示的效果。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CalcDealerOf5km { class Program { static void Main(string[] args) { double recLng = 113.692100;//用户实时地址经度 double recLat = 34.752853;//用户实时地址维度 double earthR = 6371;//地球半径千米 double dis = 0.5;//0.5千米距离 double dlng = 2 * Math.Asin(Math.Sin(dis / (2 * earthR)) / Math.Cos(recLat * Math.PI / 180)); dlng = dlng * 180 / Math.PI;//角度转为弧度 double dlat = dis / earthR; dlat = dlat * 180 / Math.PI; double minlat = recLat - dlat;//最小维度 double maxlat = recLat + dlat; double minlng = recLng - dlng;//最小经度 double maxlng = recLng + dlng; string sql = $@"SELECT * FROM Base_DealerInfo WHERE locationlng is not null AND LocationLat >= {minlat} AND LocationLat<={maxlat} AND LocationLng >= {minlng} AND LocationLng<={maxlng} "; List<Base_DealerInfo> lstDealer = Base_DealerInfo.Fetch(sql); } } }