获取两点的偏移量(角度)

来源:互联网 发布:博士申请 知乎 编辑:程序博客网 时间:2024/04/29 20:09

主要功能: arcgis地图上,添加动态轨迹效果,运动时,小车的头部根据方向不同而变化


首先,轨迹其实是 一些点数据 画出的线

获得这些点数据,两两比较获得偏移角度,然后设置小车等图片的旋转角度

function setAnimationRotation(curPoint,prePoint){ //该方法获得两点的偏移角度            var deg = 0;            if(prePoint.lon != curPoint.lon){                var tan = (prePoint.lat - curPoint.lat)/(prePoint.lon - curPoint.lon),
                    atan  = Math.atan(tan);                deg = atan*360/(2*Math.PI);                //degree  correction;                if(prePoint.lon < curPoint.lon){                    deg = -deg;                } else {                    deg = 180-deg;                }                return deg;            }else {                var sign = prePoint.lat- curPoint.lat ;                var ang= 0;                if(sign> 0){ ang=-1}else{ang = 1}                return -ang* 90;            }            return;        }


通过上面方法,获得偏转角度后,同时还要根据小车图片初始的小车头部方向进行调整,这个就很简单了,自己测试下,加减一个固定角度就好
var angle = setAnimationRotation(point1,point2);//参数是 经纬度坐标点
然后调用arcgis的symbol.setAngle(angle);设置图片的角度


原创粉丝点击