openlayers 3 实现车辆轨迹回放

先上效果:
这里写图片描述

利用 openlayers 3地图的 postcompose 事件监听地图的重绘

我的这篇文章没有说的清楚,以防我的这篇文章有误导的问题,建议结合参考官方示例,https://openlayers.org/en/latest/examples/feature-move-animation.html

注意:此代码是我在Vue 的methods 里面写的测试方法,并不能直接运行,请在理解的基础上测试。
vm 为vue的this对象

实现代码:
html:

	<div id="menu">
            <label for="speed" style="font-weight: bold;">
                运动速度:&nbsp;
                <input id="speed" type="range" min="1" max="20" step="1" value="10" />
            </label>
            <button id="start-animation">
                开始运动
            </button>
     </div>
     <!-- 注:此代码仅为上面速度条和按钮-->

核心代码:

startMove:function () {
   
                var vm=this;
                var map=vm.map;
                vm.clearOverlayers("beijing_sq");

                //中间站
                var stops=[
                    [12909554.6597,4933234.84552],   //14
                    [12909824.6852,4931594.7854],    //43
                    [12910026.8837,4930523.89946],   //63
                    [12910870.563,4929357.26511]     //85
                ];

                var stopMakers = new Array();

                for(var i=0;i<4;i++){
   
                    var s = new ol.Feature({
   
                        type: 'stop',
                        geometry: new ol.geom.Point(stops[i])
                    });
                    stopMakers.push(s);
                }


                var Coordinates=vm.path;

                //将离散点构建成一条折线
                var route = new ol.geom.LineString(Coordinates);
                //获取直线的坐标
                var routeCoords = route.getCoordinates();
                var routeLength = routeCoords.length;

                var routeFeature = new ol.Feature({
   
                    type: 'route',
                    geometry: route
                });
                var geoMarker = new ol.Feature({
   
                    type: 'geoMarker',
                    geometry: new ol.geom.Point(routeCoords[0])
                });
                var startMarker = new ol.Feature({
   
                    type: 'icon',
                    geometry: new ol.geom.Point(routeCoords[0])
                });
                var endMarker = new ol.Feature({
   
                    type: 'icon',
                    geometry: new ol.geom.Point(routeCoords[routeLength - 
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

带着天使反上帝 - Kaybee

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

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

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

打赏作者

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

抵扣说明:

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

余额充值