C#获取地图数组坐标集合中多个点位数据的中心坐标

14 篇文章 0 订阅

1、定义点位数组;

 var newpoints = [];

2、在加载地图点位数据循环中给newpoints数组赋值;

newpoints.push([x坐标, y坐标]);

3、调用获取中心点方法;

if (newpoints.length >0) { //当点集合不为空,获取点位数据集合中心点坐标
    var xy = calculateCenter(newpoints);
    map.setCenter(xy);//重新给地图初始化显示中心的位置
}
//获取数组坐标集合中点位的中心坐标
function calculateCenter(lnglatarr) {
    var total = lnglatarr.length;
    var X = 0,
        Y = 0,
        Z = 0;
    lnglatarr.map((item) => {
        var lng = (item[0] * Math.PI) / 180;
        var lat = (item[1] * Math.PI) / 180;
        var x, y, z;
        x = Math.cos(lat) * Math.cos(lng);
        y = Math.cos(lat) * Math.sin(lng);
        z = Math.sin(lat);
        X += x;
        Y += y;
        Z += z;
    });
    X = X / total;
    Y = Y / total;
    Z = Z / total;
    var Lng = Math.atan2(Y, X);
    var Hyp = Math.sqrt(X * X + Y * Y);
    var Lat = Math.atan2(Z, Hyp);
    return new AMap.LngLat((Lng * 180) / Math.PI, (Lat * 180) / Math.PI);
}

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雷东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值