vue利用openlayers实现动态轨迹
实现效果
今天介绍一个有趣的gis小功能:动态轨迹播放!效果就像这样:
这效果看着还很丝滑!别急,接下来教你怎么实现。代码示例基于parcel打包工具和es6语法,本文假设你已经掌握相关知识和技巧。
gis初学者可能对openlayers(后面简称ol)不熟悉,这里暂时不介绍ol了,直接上代码,先体验下感觉。
创建一个地图容器
引入地图相关对象
1 2 3 4 |
|
创建地图对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
创建一条线路
画一条线路
可以用这个geojson网站随意画一条线,然后把数据内容复制下来,保存为json文件格式,作为图层数据添加到地图容器中。
你可以用异步加载的方式,也可以用require方式,这里都介绍下吧:
1 2 3 4 5 6 7 8 |
|
后面基本一样了,就以fetch为准,现在把线路加载的剩余部分补充完整:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
|
以上代码很完整,我加了注释,整体思路总结如下:
- 先加载路线数据
- 构造路线、起始点及游标对应图层要素对象
- 构造图层并把要素添加进去
- 在地图容器中添加图层
添加起、终点
这个上面的代码已经包括了,我这里列出来是为了让你更清晰,就是startMarker
和endMarker
对应的代码。
添加小车
同样的,这里的代码在上面也写过了,就是geoMarker
所对应的代码。
准备开车
线路有了,车也有了,现在就到了激动人心的开车时刻了,接下来才是本文最核心的代码!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
|
简单说下它的原理就是利用postrender
事件触发一个函数,这个事件本来是地图渲染结束事件,但是它的回调函数中,小车的坐标位置一直在变,那就会不停地触发地图渲染,当然最终也会触发postrender
。这样就实现的小车沿着轨迹的动画效果了。这段代码有点难理解,最好自己尝试体验下,比较难理解部分我都加上了注释。
好了,ol动态巡查已经介绍完了,动手试下吧!看你的车能否开起来?
完整代码
index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
main.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
|
package.json
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
更多推荐
所有评论(0)