• 将在地图上画的折线等分,并得到等分点的坐标


    //首先将折线上的坐标点存入一个数组中
    var arr = [pt1,pt2,pt3],
        brr = [],
        i = 0;
    while(i < arr.length){
        //这样可以按照画线的顺序获取相邻的两个坐标点
        var p1 = arr[i+1],
            p2 = arr[i];
    
        //计算两点之间的实际距离,百度地图用map.getDistance(pointA,pointB)计算,其他地图可以用自定义函数distanceTo
        //然后除以一个整数M(M具体根据情况而定),得到等分点的个数N
        //计算两点的经纬度的偏移值
        var disX = p1.x - p2.x;
            disY = p1.y - p2.y;
        //disX和disy分别除以N,得到每个等分点的经纬度分别需要偏移的值
        var newdisX = disX/N,
            newdisY = disY/N;
        //得到新的经纬度坐标
        var newptX = arr[i].x + newdisX * i,
            newptY = arr[i].y + newdisY * i;
        //实例化一个新的坐标点
        var newpt = new Point(newptX,newptY);
        //将新的坐标点存到一个新的数组中,该数组即为我们需要的坐标点的集合
        brr.push(newpt);
        i ++;
    }
    
    //计算两点的实际距离
    distanceTo: function(pointA,pointB) {
        var distance = 0.0;
        if ((pointA.x != null) && (pointA.y != null) &&
        (pointB != null) && (pointB.x != null) && (pointB.y != null)) {
            var dx2 = Math.pow(pointA.x - pointB.x, 2);
            var dy2 = Math.pow(pointA.y - pointB.y, 2);
            distance = Math.sqrt(dx2 + dy2);
        }
        return distance;
    }
  • 相关阅读:
    【转】对象持久化与数据序列化的联系?
    【转】Linux安装方法一(U盘引导)
    bash中的"-n"、"-z" 以及“[]” 、“[[]]”判断
    mysql获取行号
    IP白名单
    复合赋值位运算符“&=、| =”
    Java匿名内部类访问外部
    mysql的orde by 按照指定状态顺序排序
    Spring声明式事务
    定时任务总结
  • 原文地址:https://www.cnblogs.com/liuswi/p/4539432.html
Copyright © 2020-2023  润新知