成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

vue 百度地圖(vue-baidu-map)繪制方向箭頭折線實例代碼詳解

瀏覽:147日期:2022-06-12 10:45:27

在開發過程中發現 vue-baidu-map 封裝的 BmPolyline 折線組件不能順利繪制出帶箭頭的紋理。

原因是 BmPolyline 文檔中雖然有 icons 屬性,但是對應的源文件中并沒有props接收 icons

最初的開發思路:

根據 vue-baidu-map 折線組件的官方文檔,在vue中通過Prop,為 BmPolyline 組件傳遞一個 icons 數組,數組的元素必須為 IconSequence 類的實例對象。

vue 百度地圖(vue-baidu-map)繪制方向箭頭折線實例代碼詳解

而 IconSequence 類的實例對象則是在 BaiduMap 組件的 ready 事件中拿到 BMap 類和 map 地圖實例對象,然后依次調用 BMap 基類的 Symbol , IconSequence 子類,完成 IconSequence 對象的初始化。具體參數含義及代碼實現見上文發的官方案例地址。

按照上述思路完成代碼編寫后并不能得到預期中的結果。因為 BmPolyline 對應的源文件中并沒有props接收 icons 。

解決方案

將 /node_modules/vue-baidu-map/components/overlays 目錄下的 BmPolyline 源文件復制,粘貼到另一個vue文件中,然后手動為折線組件配置 icons

詳細解決方案見下方代碼:

new_polyline.vue新的折線組件文件

<script>/** * 注意此處三個引入路徑 * 在源文件中使用的是相對路徑 * 但是因為現在是自定義組件,所以要重新調整路徑 */import commonMixin from 'vue-baidu-map/components/base/mixins/common.js';import bindEvents from 'vue-baidu-map/components/base/bindEvent.js';import { createPoint } from 'vue-baidu-map/components/base/factory.js';export default { // 起一個新名字 name: 'new-polyline', render() {}, mixins: [commonMixin('overlay')], props: { path: { type: Array }, // 新聲明一個icons icons: { type: Array }, strokeColor: { type: String }, strokeWeight: { type: Number }, strokeOpacity: { type: Number }, strokeStyle: { type: String }, massClear: { type: Boolean, default: true }, clicking: { type: Boolean, default: true }, editing: { type: Boolean, default: false } }, watch: { path: { handler(val, oldVal) { this.reload(); }, deep: true }, strokeColor(val) { this.originInstance.setStrokeColor(val); }, strokeOpacity(val) { this.originInstance.setStrokeOpacity(val); }, strokeWeight(val) { this.originInstance.setStrokeWeight(val); }, strokeStyle(val) { this.originInstance.setStrokeStyle(val); }, editing(val) { val ? this.originInstance.enableEditing() : this.originInstance.disableEditing(); }, massClear(val) { val ? this.originInstance.enableMassClear() : this.originInstance.disableMassClear(); }, clicking(val) { this.reload(); } }, methods: { load() { const { BMap, map, path, // 參數解構 加入icons icons, strokeColor, strokeWeight, strokeOpacity, strokeStyle, editing, massClear, clicking } = this; const overlay = new BMap.Polyline( path.map(item => createPoint(BMap, { lng: parseFloat(item.lng), lat: parseFloat(item.lat) }) ), { strokeColor, strokeWeight, strokeOpacity, strokeStyle, // 配置icons icons, enableEditing: editing, enableMassClear: massClear, enableClicking: clicking } ); this.originInstance = overlay; map.addOverlay(overlay); bindEvents.call(this, overlay); } }};</script>

地圖文件

<template> <div class='container'> <baidu-map :scroll-wheel-zoom='true' :center='center' :zoom='zoom' @ready='ready'> <new-polyline v-if='points && points.length >= 2 && checkPoints({ points })' :path='points' :icons='icons' stroke-color='#0091ea' :stroke-opacity='0.8' :stroke-weight='10' ></new-polyline> </baidu-map> </div></template><script>import newPolyline from './new_polyline';export default { components: { newPolyline }, data() { return { center: { lng: 116.404, lat: 39.915 }, zoom: 5, points: [], icons: [] }; }, methods: { ready({ BMap, map }) { this.points = this.getPointsSomehow(); var sy = new BMap.Symbol(BMap_Symbol_SHAPE_FORWARD_OPEN_ARROW, { scale: 0.5, // 圖標縮放大小 strokeColor: '#fff', // 設置矢量圖標的線填充顏色 strokeWeight: '3' // 設置線寬 }); var icons = new BMap.IconSequence(sy, '5%', '15%'); this.icons.push(icons) }, getPointsSomehow() { // 116.324356,39.980648 // 118.532031,32.010158 // 121.475599,31.380939 var arr = [ { lng: 116.324356, lat: 39.980648 }, { lng: 118.532031, lat: 32.010158 }, { lng: 121.475599, lat: 31.380939 } ]; return arr; }, // 查重 如果數組中只有一組有意義的坐標,繪制折線時可能會報錯,因為繪制一條折線需要兩組不同的坐標點 checkPoints({ points }) { // 拿到第一組點 var originPoint = points[0]; // 將第一組點與后續點進行對比 如果坐標集合中只有一組實際坐標點則return false // 只要坐標集合中有兩組不同的實際坐標點,則return true for (var i = 1; i < points.length; i++) { if ( points[i].lat !== originPoint.lat || points[i].lng !== originPoint.lng ) { return true; } } return false; } }};</script><style>.map { width: 100%; height: 300px;}</style>

到此這篇關于vue 百度地圖(vue-baidu-map)繪制方向箭頭折線實例代碼詳解的文章就介紹到這了,更多相關vue 百度地圖方向箭頭折線內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 百度 地圖
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
天天色综合成人网| 精品视频在线看| 成人av高清在线| 亚洲国产高清一区二区三区| 欧洲一区二区三区在线| 精品成a人在线观看| 一区二区三区91| 国产精品伊人色| 亚洲国产日韩在线| 久久精品电影| 日韩精品中文字幕在线不卡尤物| 亚洲欧美日韩久久| 国产九九视频一区二区三区| 欧美视频导航| 欧美色图在线观看| 国产精品国产三级国产专播品爱网| 蜜臀久久99精品久久久画质超高清| 97成人超碰视| 欧美亚洲自拍偷拍| 国产精品丝袜在线| 黄网站免费久久| 亚洲日本精品国产第一区| 欧美伦理影视网| 亚洲免费观看高清完整 | 狠狠色伊人亚洲综合成人| 91久久极品少妇xxxxⅹ软件| 欧美人狂配大交3d怪物一区| 亚洲国产精品一区二区久久恐怖片| jizz一区二区| 色诱亚洲精品久久久久久| 国产偷国产偷精品高清尤物| 捆绑紧缚一区二区三区视频| 亚洲看片一区| 久久午夜羞羞影院免费观看| 日韩成人免费在线| 亚洲美女色禁图| 91久久线看在观草草青青| 最新日韩在线视频| 国产一区二区精品久久91| 国产精品视频免费观看| 欧美精品一区二区久久婷婷| 日韩高清在线不卡| 亚洲激情网址| 精品人伦一区二区色婷婷| 免费在线成人网| 亚洲精品久久| 久久久久久久久久久久久久久99| 美女视频黄a大片欧美| 99国产成+人+综合+亚洲欧美| 久久精品亚洲一区二区三区浴池| 紧缚奴在线一区二区三区| 国产精品久久久免费| 国产亚洲成av人在线观看导航| 国产麻豆精品theporn| 久久午夜视频| 亚洲综合精品久久| 亚洲国产午夜| 国产精品国产三级国产有无不卡 | 国产三级精品在线不卡| 久久影音资源网| 国产一区二区剧情av在线| 色综合激情五月| 亚洲欧美国产高清| 91在线看国产| 日韩一区二区影院| 麻豆成人91精品二区三区| 国产伦精品一区二区三区四区免费| 精品国产不卡一区二区三区| 极品美女销魂一区二区三区| 色悠久久久久综合欧美99| 一级做a爱片久久| 国内一区二区三区在线视频| 国产亚洲1区2区3区| 成人免费视频视频在线观看免费 | 欧美精品日韩精品| 日韩av午夜在线观看| 国产伦精品一区二区三区四区免费 | 欧美日本在线| 久久久午夜精品| av亚洲精华国产精华| 精品少妇一区二区三区免费观看| 国产美女在线精品| 欧美人牲a欧美精品| 狠狠色丁香婷婷综合| 欧美精品色一区二区三区| 激情欧美一区二区三区在线观看| 在线观看欧美精品| 久久国产视频网| 精品视频色一区| 久久电影国产免费久久电影| 在线视频亚洲一区| 免费av成人在线| 欧美日韩在线观看一区二区| 日韩av成人高清| 91国内精品野花午夜精品 | 久久精品人人做人人爽97| 91香蕉视频在线| 日本一区二区电影| 国内精品亚洲| 亚洲精品中文在线影院| 中文精品在线| 一区二区三区在线免费播放| 国产精品永久| 午夜精品123| 欧美日韩精品一区二区三区蜜桃| 狠狠狠色丁香婷婷综合久久五月| 日韩一区二区在线观看视频播放| 成人高清视频免费观看| 国产日韩高清在线| 亚洲欧洲三级| 污片在线观看一区二区| 欧洲国产伦久久久久久久| 国产精品亚洲成人| 久久综合九色综合欧美98| 91毛片在线观看| 中文字幕永久在线不卡| 亚洲免费在线| 麻豆精品新av中文字幕| 91精品国产综合久久小美女| 97国产一区二区| 中文字幕一区二区三区不卡| 在线一区日本视频| 天天影视涩香欲综合网| 欧美精品久久久久久久久老牛影院| 国产经典欧美精品| 久久蜜桃av一区二区天堂| 亚洲午夜91| 日韩中文字幕1| 日韩一区二区精品在线观看| 欧美另类综合| 丝袜a∨在线一区二区三区不卡| 在线观看日韩精品| 丰满少妇久久久久久久| 国产精品女同一区二区三区| 新狼窝色av性久久久久久| 精品制服美女丁香| 久久精品一区二区三区不卡 | av成人激情| 久久国产精品99久久久久久老狼 | 色素色在线综合| 丁香婷婷综合网| 国产精品理论片在线观看| 亚洲专区在线| 国产又粗又猛又爽又黄91精品| 精品国产1区2区3区| 亚洲精品日韩精品| 精品一区二区在线视频| 国产欧美日韩亚州综合| 亚洲欧美日韩国产综合精品二区| 国产一区二区三区国产| 国产精品色眯眯| 欧美在线色视频| 91麻豆精品一区二区三区| 一二三区精品福利视频| 欧美日韩aaa| 一区免费视频| 国产一区二区三区免费观看| 国产欧美日韩不卡免费| 91久久香蕉国产日韩欧美9色| 91麻豆文化传媒在线观看| 天天色天天操综合| 国产偷国产偷精品高清尤物| 91国偷自产一区二区三区成为亚洲经典 | 亚洲天堂免费看| 91黄视频在线| 欧美三区不卡| 蜜桃免费网站一区二区三区| 久久精品综合网| 91成人在线精品| 欧美a级在线| 免费久久精品视频| 国产精品视频看| 欧美精品v国产精品v日韩精品| 国产精品v欧美精品v日本精品动漫 | 国产精品水嫩水嫩| 欧美日韩三级一区二区| 欧美视频一区| 国产精品中文欧美| 亚洲国产欧美日韩另类综合 | 国产成人精品网址| 午夜免费欧美电影| 欧美激情一区不卡| 欧美日韩国产一二三| 国产欧美激情| 91免费版在线| 精品在线观看免费| 亚洲激情综合网| 久久青草国产手机看片福利盒子| 欧美在线三级电影| 国产一区二区精品| 99久久久久久| 麻豆精品一区二区三区| 亚洲嫩草精品久久| 精品久久久久香蕉网| 91成人在线观看喷潮| 91久久精品www人人做人人爽| 成人午夜视频福利| 奇米影视在线99精品| 国产精品久久久久国产精品日日| 欧美高清视频在线高清观看mv色露露十八|