C# 模仿小黄车在地图上的显示

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);


        }
    }
}

  

posted @ 2018-03-08 13:22  邓振振  阅读(398)  评论(0编辑  收藏