高德地图--轨迹回放(一)

高德地图实现轨迹回放的方式之一:使用高德地图官方api中UI组件库中的轨迹展示。通过轨迹展示创建巡航器,实现轨迹回放。创建巡航器实现轨迹回放的好处就是回放速度随时控制随时变化,不好的浏览器必须支持canvas(IE8及以下不支持)。效果图如下:

看主要的代码

  1 AMapUI.load(['ui/misc/PathSimplifier'], function    (PathSimplifier) {
  2 
  3         if (!PathSimplifier.supportCanvas) {
  4          alert('当前环境不支持 Canvas!');
  5          return;
  6      }
  7     //回放路径等配置项,参考官方api
  8     var defaultRenderOptions = {
  9             pathNavigatorStyle: {
 10                 width:16,
 11                 height:16,
 12                 autoRotate:true,
 13                 lineJoin:'round',
 14                 content:'defaultPathNavigtor',
 15                 fillStyle:'#087EC4',
 16                 strokeStyle:'#116394',
 17                 lineWidth:1,
 18                 pathLinePassedStyle: {
 19                     lineWidth:2,
 20                     strokeStyle:'rgba(0, 160, 220, 0.8)',
 21                     borderWidth:1,
 22                     borderStyle:'#eee',
 23                     dirArrowStyle:false
 24                 }
 25             }
 26         };
 27 
 28     var pathSimplifierIns = new PathSimplifier({
 29         zIndex: 100,
 30         map: map, 
 31         getPath: function(pathData, pathIndex) {
 32             return pathData.path;
 33         },
 34         getHoverTitle: function(pathData, pathIndex, pointIndex) {
 35             //返回鼠标悬停时显示的信息
 36             if (pointIndex >= 0) {
 37                 //鼠标悬停在某个轨迹节点上
 38                 return pathData.name + ',点:' + pointIndex + '/' + pathData.path.length;
 39             }
 40             //鼠标悬停在节点之间的连线上
 41             return pathData.name + ',点数量' + pathData.path.length;
 42         },
 43         renderOptions: defaultRenderOptions
 44     });
 45 
 46     window.pathSimplifierIns = pathSimplifierIns;
 47     //根据数据来绘制路线
 48     pathSimplifierIns.setData([{
 49         name: '轨迹',
 50         path: lineArr
 51     }]);
 52     //创建巡航器
 53     var navg = pathSimplifierIns.createPathNavigator(0,{
 54             loop: true,//是否循环播放
 55             speed: parseInt(speed.value),//回放速度控制,这里使用的是select下拉列表value值控制
 56             pathNavigatorStyle: {
 57                 width:24,
 58                 height:24,
 59                 content: PathSimplifier.Render.Canvas.getImageContent('image/plane.png'),//自定义巡航器样式
 60                 strokeStyle:null,
 61                 fillStyle:null
 62             }
 63         });
 64     //控制播放按钮
 65        start.onclick =    function  (){
 66             navg.start();
 67         }
 68         
 69     pause.onclick =    function  (){
 70             navg.pause();
 71             
 72             alert('当前为止走过的距离'+parseInt(navg.getMovedDistance()/1000)+'KM,回放速度为:'+parseInt(navg.getSpeed())+'Km/h');
 73             
 74         }
 75 
 76     resume.onclick =    function (){
 77             navg.resume();
 78 
 79         }
 80     stop.onclick =    function (){
 81             navg.stop();
 82         
 83         }
 84     
 85     
 86         //下拉列表value值改变速度改变
 87         speed.οnchange=function(){
 88             var spe = speed.value;
 89             navg.setSpeed(spe);
 90             
 91         };
 92 
 93     //起点终点标记
 94     var startPot = lineArr[0];
 95         
 96       var endPot = lineArr[lineArr.length-1];
 97           
 98       var stmarker = new AMap.Marker({
 99             map: map,
100             position: [startPot[0], startPot[1]], //基点位置
101             icon: "https://webapi.amap.com/theme/v1.3/markers/n/start.png",
102             zIndex: 10
103         });
104         var endmarker = new AMap.Marker({
105             map: map,
106             position: [endPot[0], endPot[1]], //基点位置
107             icon: "https://webapi.amap.com/theme/v1.3/markers/n/end.png",
108             zIndex: 10
109         });
110 
111 });

以上就是高德地图实现轨迹回放方法之一。此高德地图UI组件需要在服务器环境下运行,详细代码地址github,仅作学习总结只用!

转载于:https://www.cnblogs.com/xiaoshudian/p/7545844.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Vue 3和高德地图轨迹回放,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Vue 3和高德地图的相关依赖。你可以使用npm或yarn来安装这些依赖。例如,在你的Vue项目中,可以运行以下命令来安装高德地图的依赖: ``` npm install vue-amap ``` 2. 在你的Vue组件中,引入Vue AMap库并注册该组件: ```javascript import VueAMap from 'vue-amap'; export default { ... mounted() { Vue.use(VueAMap); VueAMap.initAMapApiLoader({ key: 'your_amap_key', plugin: ['AMap.Polyline'] }); }, ... } ``` 在上述代码中,你需要将`your_amap_key`替换成你自己的高德地图API密钥。 3. 在模板中添加地图容器和控件: ```html <template> <div> <amap :zoom="13" :center="[lng, lat]"> <amap-polyline :path="path" :visible="true" :style="{ strokeColor: 'red', strokeWeight: 6 }"></amap-polyline> </amap> </div> </template> ``` 在上述代码中,`amap`是地图容器组件,`amap-polyline`是轨迹回放的折线组件。你可以根据需要调整地图的缩放级别和中心点位置,以及折线的样式。 4. 在组件的`data`属性中定义轨迹回放的经纬度数据: ```javascript data() { return { lng: 116.397428, lat: 39.90923, path: [ [116.405289, 39.904987], [116.406089, 39.904987], [116.406289, 39.905087], // 更多经纬度数据... ] }; } ``` 你需要根据实际情况提供正确的经纬度数据。 5. 最后,你可以根据需求实现轨迹回放的逻辑。例如,你可以使用定时器来逐步显示折线上的点,实现轨迹的动态回放效果。 这样,你就可以在Vue 3中使用高德地图实现轨迹回放了。记得根据你的实际需求进行相应的调整和扩展。希望这能帮到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值