zoukankan      html  css  js  c++  java
  • 高德地图-轨迹回放(二)

       利用高德地图作轨迹回放的另一种方法是利用官方api覆盖物中的AMap.Polyline来做,官方给出的例子中也是此原理实现的。
    实现地图轨迹的主要函数如下

    function track(){
            
             map.clearMap();//先清空地图
             $('.pos .posDesc').empty();
         
        $.getJSON('track.json',function(data){//这是获取数据
    
                    var arr1=[];
                    var arr=[];
                     var startPot = [];
                     var endPot = [];
                    for(var i=0;i<data.gps.length;i++){
                        var dt = data.gps[i].dTime;
                    
                        
                        if(diff(dt,$st.val())>=0&&diff(dt,$et.val())<=0){
                              
                             arr1 = GPS.gcj_encrypt(data.gps[i].latY,data.gps[i].lngX);//坐标转换,消除坐标误差
                        
                            arr.push([arr1.lon,arr1.lat]);
                             
                             }    
                        
                    }
                
                    startPot = arr[0];
                    endPot = arr[arr.length-1];
    
    
                    var  marker=  new AMap.Marker({
             map: map,
             position: startPot,
             icon: "http://webapi.amap.com/images/car.png",//代表人物的图标
             offset: new AMap.Pixel(-26,-13),
             autoRotation: true//自动转弯(ie8及以下不支持)
             
         });//添加起点标志
          
    
         //绘制路线(利用官方的api,根据坐标绘制路线)
        
         var polyline = new AMap.Polyline({
             map: map,
             path: arr,
             strokeColor: "#9F9F5F",
             strokeWeight:6,
             lineJoin:"round"
    
         });
        //走过路线的样式
         var passedPolyline = new AMap.Polyline({
             map:map,
             strokeColor:"#006BB1 ",
             strokeWeight:6,
             isOutline:true,
             outlineColor:'#fff',
             showDir:true,
             lineJoin:"round"
         });
        //设置移动过的路线
         marker.on('moving',function(e){
             passedPolyline.setPath(e.passedPath);
         });
        //视野居中
         map.setFitView();
        
         AMap.event.addDomListener(start,'click',function(){
             marker.moveAlong(arr,speed.value);//设置移动路线及速度
             
         },false);
    
         AMap.event.addDomListener(pause,'click',function(){
             marker.pauseMove();//暂停运动
         
         },false);
    
         AMap.event.addDomListener(resume,'click',function(){
             marker.resumeMove();//继续运动
         },false);
    
         AMap.event.addDomListener(stop,'click',function(){
             marker.stopMove();//停止运动
             map.clearMap();
         },false);
    
     
              
          var stmarker = new AMap.Marker({
                map: map,
                position: startPot, //基点位置(起点)
                icon: "https://webapi.amap.com/theme/v1.3/markers/n/start.png",
                zIndex: 10
            });
            var endmarker = new AMap.Marker({
                map: map,
                position: endPot, //基点位置(终点)
                icon: "https://webapi.amap.com/theme/v1.3/markers/n/end.png",
                zIndex: 10
            });
        
        });    
        
    }

    以上就是利用高德地图的AMap.Polyline绘制地图,并实现轨迹回放的主要方式,以此总结

  • 相关阅读:
    CentOS 7 设置iptables防火墙开放proftpd端口
    Android手机修改Hosts的方法
    Wireshark提示没有一个可以抓包的接口
    while read line无法循环read文件
    Nagios新添加的hosts和services有时显示,有时不显示问题解决
    Nginx配置http强制跳转到https
    xargs rm -rf 与 -exec rm
    解决vim不能使用方向键和退格键问题
    NRPE: Unable to read output 问题处理总结
    MySQL 5.6 解决InnoDB: Error: Table "mysql"."innodb_table_stats" not found.问题
  • 原文地址:https://www.cnblogs.com/xiaoshudian/p/7694084.html
Copyright © 2011-2022 走看看