记录一个百度地图的矩形区域搜索算法

本文介绍了一种用于遍历特定地理区域内的所有坐标点的算法。该算法通过设定经纬度范围,逐步增加精度来覆盖整个区域,适用于调用地图API进行大规模数据查询,如查找写字楼、餐厅等地点。

矩形区域其实就是x、y左右每次加一定数值,矩形有四个坐标。

例如深圳地区的矩形区域是:22.449954,22.866712,113.757547,114.640617
然后每次从22.449954增加0.01一直到22.866712
113.757547增加0.01一直到114.640617,
两个循环组合出来的集合的所有坐标都遍历一遍。

List<string> urls = new List<string>()
{
   "深圳:22.449954,22.866712,113.757547,114.640617", "上海:30.653783,31.464508,122.028092,120.800073",
   "广州:13.164045,23.637493,114.012045,122.615464", "北京:39.42608,41.100304,115.344699,117.525929",
   "珠海+中山:21.940065,22.615464,113.092827,113.706837", "莞惠:22.615464,23.656991,114.012045,114.89145",
   "佛山:22.587604,23.637493,112.396029,113.164045", "长三角:29.591461,32.917728,118.26412,122.265533",
   "环渤海区域:38.676867,40.153807,116.777389,118.906876"
};              
for (int k = 0; k < urls.Count; k++)
{
    string query = urls[k].Split(':').First().Trim();
    string[] jweidus = urls[k].Split(':').Last().Split(',');
    if (jweidus.Length ==4)
    {
        for (double i = double.Parse(jweidus[0]); i <= double.Parse(jweidus[1]); i += 0.01)
        {
           for (double j = double.Parse(jweidus[2]); j <= double.Parse(jweidus[3]); j += 0.01)
           {
              string JWD = i.ToString().Replace("000001", "").Replace("9999999", "") + "," +
              j.ToString().Replace("000001", "").Replace("9999999", "");
              string JWD1 = (i + 0.01).ToString().Replace("000001", "").Replace("9999999", "") + "," +
              (j + 0.01).ToString().Replace("000001", "").Replace("9999999", "");
              string LatLongitude = JWD + "," + JWD1;
          }
       }
    }
}

通过这种算法我们可以做很多事情,调用对方的地图接口查询写字楼、餐厅、企业、园区等。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值