java用百度地图API在指定范围的区域内生成均分分布的点

最近有个需求就是做用百度地图API,做范围内可达性路径分析,也可以叫做交通时空圈,于是我需要在地图上的指定范围内生成均匀分布的点,百度了一会无果于是自己随便写了一个,其实也非常简单,自己记录下

首先上效果图

在这里插入图片描述

然后直接上后端代码

 public static void main(String[] args) {
        //中心点的经度 纬度 半径经度浮动值 半径纬度浮动值 ,
        double jd =112.988054; double wd=28.193687; double jdfd=0.002956; double wdfd=0.002253;
       //先生成一个最左上角的点位
        double leftjd=jd-jdfd;
        double leftwd=wd+wdfd;
        //经度坐标集合
        List<String> jdbuffer =new ArrayList<>();
        //先添加左上角第一个点
        jdbuffer.add(leftjd+"");
        //纬度坐标集合
        List<String> wdbuffer =new ArrayList<>();
        wdbuffer.add(leftwd+"");
        //在浮动范围内生成,横向和纵向的等距离的10个点
        for (int i = 0; i < 11; i++) {
            leftjd+=((jd+jdfd)-(jd-jdfd))/10;
           leftwd-=((wd+wdfd)-(wd-wdfd))/10;
            jdbuffer.add(leftjd+"");
            wdbuffer.add(leftwd+"");
        }
        //然后拼接成指定想要的格式返回到前端
        StringBuffer stringBuffer =new StringBuffer("[[");
        for (int i = 0; i < 11; i++) {
            StringBuffer buffer0=new StringBuffer();
            for (int j = 0; j < 11; j++) {
                if(i==10 && j==10){
                    buffer0.append(jdbuffer.get(j)).append(",").append(wdbuffer.get(i)).append("]");
                }else{
                    buffer0.append(jdbuffer.get(j)).append(",").append(wdbuffer.get(i)).append("],[");
                }
            }
            stringBuffer.append(buffer0);
        }
        stringBuffer.append("]");
        System.out.println(stringBuffer);
    }
//输出后结果格式,直接返回到前端批量生成点位即可
[[112.98509800000001,28.19594],[112.98568920000001,28.19594],[112.98628040000001,28.19594],[112.98687160000001,28.19594],[112.98746280000002,28.19594],[112.98805400000002,28.19594],[112.98864520000002,28.19594],[112.98923640000002,28.19594],[112.98982760000003,28.19594],[112.99041880000003,28.19594],[112.99101000000003,28.19594],[112.98509800000001,28.1954894],[112.98568920000001,28.1954894],[112.98628040000001,28.1954894],[112.98687160000001,28.1954894],[112.98746280000002,28.1954894],[112.98805400000002,28.1954894],[112.98864520000002,28.1954894],[112.98923640000002,28.1954894],[112.98982760000003,28.1954894],[112.99041880000003,28.1954894],[112.99101000000003,28.1954894],[112.98509800000001,28.1950388],[112.98568920000001,28.1950388],[112.98628040000001,28.1950388],[112.98687160000001,28.1950388],[112.98746280000002,28.1950388],[112.98805400000002,28.1950388],[112.98864520000002,28.1950388],[112.98923640000002,28.1950388],[112.98982760000003,28.1950388],[112.99041880000003,28.1950388],[112.99101000000003,28.1950388],[112.98509800000001,28.1945882],[112.98568920000001,28.1945882],[112.98628040000001,28.1945882],[112.98687160000001,28.1945882],[112.98746280000002,28.1945882],[112.98805400000002,28.1945882],[112.98864520000002,28.1945882],[112.98923640000002,28.1945882],[112.98982760000003,28.1945882],[112.99041880000003,28.1945882],[112.99101000000003,28.1945882],[112.98509800000001,28.194137599999998],[112.98568920000001,28.194137599999998],[112.98628040000001,28.194137599999998],[112.98687160000001,28.194137599999998],[112.98746280000002,28.194137599999998],[112.98805400000002,28.194137599999998],[112.98864520000002,28.194137599999998],[112.98923640000002,28.194137599999998],[112.98982760000003,28.194137599999998],[112.99041880000003,28.194137599999998],[112.99101000000003,28.194137599999998],[112.98509800000001,28.193686999999997],[112.98568920000001,28.193686999999997],[112.98628040000001,28.193686999999997],[112.98687160000001,28.193686999999997],[112.98746280000002,28.193686999999997],[112.98805400000002,28.193686999999997],[112.98864520000002,28.193686999999997],[112.98923640000002,28.193686999999997],[112.98982760000003,28.193686999999997],[112.99041880000003,28.193686999999997],[112.99101000000003,28.193686999999997],[112.98509800000001,28.193236399999996],[112.98568920000001,28.193236399999996],[112.98628040000001,28.193236399999996],[112.98687160000001,28.193236399999996],[112.98746280000002,28.193236399999996],[112.98805400000002,28.193236399999996],[112.98864520000002,28.193236399999996],[112.98923640000002,28.193236399999996],[112.98982760000003,28.193236399999996],[112.99041880000003,28.193236399999996],[112.99101000000003,28.193236399999996],[112.98509800000001,28.192785799999996],[112.98568920000001,28.192785799999996],[112.98628040000001,28.192785799999996],[112.98687160000001,28.192785799999996],[112.98746280000002,28.192785799999996],[112.98805400000002,28.192785799999996],[112.98864520000002,28.192785799999996],[112.98923640000002,28.192785799999996],[112.98982760000003,28.192785799999996],[112.99041880000003,28.192785799999996],[112.99101000000003,28.192785799999996],[112.98509800000001,28.192335199999995],[112.98568920000001,28.192335199999995],[112.98628040000001,28.192335199999995],[112.98687160000001,28.192335199999995],[112.98746280000002,28.192335199999995],[112.98805400000002,28.192335199999995],[112.98864520000002,28.192335199999995],[112.98923640000002,28.192335199999995],[112.98982760000003,28.192335199999995],[112.99041880000003,28.192335199999995],[112.99101000000003,28.192335199999995],[112.98509800000001,28.191884599999995],[112.98568920000001,28.191884599999995],[112.98628040000001,28.191884599999995],[112.98687160000001,28.191884599999995],[112.98746280000002,28.191884599999995],[112.98805400000002,28.191884599999995],[112.98864520000002,28.191884599999995],[112.98923640000002,28.191884599999995],[112.98982760000003,28.191884599999995],[112.99041880000003,28.191884599999995],[112.99101000000003,28.191884599999995],[112.98509800000001,28.191433999999994],[112.98568920000001,28.191433999999994],[112.98628040000001,28.191433999999994],[112.98687160000001,28.191433999999994],[112.98746280000002,28.191433999999994],[112.98805400000002,28.191433999999994],[112.98864520000002,28.191433999999994],[112.98923640000002,28.191433999999994],[112.98982760000003,28.191433999999994],[112.99041880000003,28.191433999999994],[112.99101000000003,28.191433999999994]]


大概意思就是现在最左上角生成第一个点,然后等距离依次横向,纵向递增生成对应点位的经纬度即可,非常简单

前端代码

//第一组数据
        let ManyMarker0=[[112.98509800000001,28.19594],[112.98568920000001,28.19594],[112.98628040000001,28.19594],[112.98687160000001,28.19594],[112.98746280000002,28.19594],[112.98805400000002,28.19594],[112.98864520000002,28.19594],[112.98923640000002,28.19594],[112.98982760000003,28.19594],[112.99041880000003,28.19594],[112.99101000000003,28.19594]];

 ManyMarker0.forEach(function (x,y,z){
            map.addOverlay(new BMap.Marker(new BMap.Point(x[0],x[1])));
        })

直接把后台数据拿过来 然后批量生成对应的点位即刻。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值