日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:168日期: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 百度地圖方向箭頭折線內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 百度 地圖
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲三级av| 日本国产精品| 国产农村妇女精品一二区| 欧美私人啪啪vps| 日韩精品一区二区三区中文在线 | 新版的欧美在线视频| 亚洲精品**中文毛片| 日韩精品电影| 国产91精品对白在线播放| 天堂中文在线播放| 日本在线高清| 国产在线成人| 亚洲主播在线| 五月激激激综合网色播| 欧美片第1页综合| 91精品国产自产精品男人的天堂 | 亚洲免费观看高清完整版在线观| 日本不卡视频一二三区| 欧美极品中文字幕| 人人草在线视频| 成人av二区| 亚欧成人精品| 欧美aⅴ一区二区三区视频| 成人在线免费观看网站| 99久久99久久精品国产片果冰| 性感美女一区二区在线观看| 狠狠操综合网| 日韩精品欧美大片| 欧美精品不卡| 色吊丝一区二区| 美女网站久久| 国产精品日本一区二区三区在线| 高清不卡一区| 国产综合精品| 日本视频中文字幕一区二区三区| 久久女人天堂| 91九色精品| 日本亚洲最大的色成网站www| 卡一精品卡二卡三网站乱码| 久久久久一区| 蜜臀91精品国产高清在线观看| 成人av二区| 国产视频一区二区在线播放| 亚洲啊v在线| 久久最新视频| 精品国产亚洲一区二区在线观看| 亚洲二区免费| 五月激激激综合网色播 | 青青草91久久久久久久久| 水蜜桃久久夜色精品一区| 亚洲欧美日本国产专区一区| 国产精品xxxav免费视频| 婷婷综合激情| 国产精品视频首页| 91一区二区三区四区| av一区二区高清| 日韩av成人高清| 久久久久久美女精品| 日韩精品免费视频一区二区三区 | 91精品一区国产高清在线gif| 中文字幕亚洲影视| 欧美三区四区| 色婷婷成人网| 国产精品99一区二区三| 日韩制服丝袜先锋影音| 国产精品久久观看| 亚洲三级网址| 麻豆免费精品视频| 在线日韩成人| 久久国产中文字幕| 麻豆一区二区三| 蜜臀久久99精品久久久久宅男| 国产精品一级| 蜜臀久久99精品久久久画质超高清| 欧美xxxx中国| 欧美日韩视频免费看| japanese国产精品| 成人国产综合| 国产色噜噜噜91在线精品| 最新亚洲一区| 亚洲三级欧美| 你懂的国产精品| 99视频精品免费观看| 国产一区精品福利| 日本久久一区| 免费人成黄页网站在线一区二区| 国产综合色区在线观看| 欧美激情亚洲| 国产探花一区| 午夜亚洲福利| 久久福利精品| 香蕉国产精品| av在线日韩| 麻豆一区二区在线| 国产日韩1区| 日韩精品一区二区三区中文在线| 在线综合视频| 国产videos久久| 久久av中文| 日韩精品福利一区二区三区| 久热精品在线| 亚洲欧美日韩视频二区| 宅男在线一区| 丝袜美腿诱惑一区二区三区 | 精品伊人久久| 国产毛片精品| 99视频精品全部免费在线视频| 鲁大师成人一区二区三区| 国产麻豆久久| 国产资源在线观看入口av| 美女视频黄免费的久久| 国产精品视频一区二区三区四蜜臂 | 久久国产精品色av免费看| 日韩欧美一区二区三区在线观看| 国产精品久久久免费| 视频精品一区| 天堂精品久久久久| 综合国产在线| 亚洲1区在线观看| 免播放器亚洲一区| 日本大胆欧美人术艺术动态| 男女男精品视频网| 亚洲欧美网站在线观看| 亚洲欧美在线综合| 日韩高清国产一区在线| 日本h片久久| 日本aⅴ亚洲精品中文乱码| 亚洲精品免费观看| 亚洲欧美日韩专区| 视频一区在线视频| 日韩在线一二三区| 日韩精品一区二区三区中文| 日韩不卡一区二区| 国产剧情一区二区在线观看| 国产精品色婷婷在线观看| 免费在线日韩av| 电影91久久久| 在线一区视频观看| 婷婷中文字幕一区| 免费在线观看一区二区三区| 日韩在线一区二区| 日韩福利视频一区| 国产精品白丝一区二区三区| 精品理论电影在线| 欧美激情视频一区二区三区免费| 成人一区而且| 久久精品不卡| 亚洲深夜福利| 日韩在线黄色| 精品资源在线| 久久中文亚洲字幕| 亚洲涩涩av| 国产精品最新| 91综合视频| 国产亚洲综合精品| 日本免费在线视频不卡一不卡二| 国产精品mm| 91精品精品| 最近国产精品视频| 日韩欧美中文在线观看| 国产极品嫩模在线观看91精品| 国产一区2区在线观看| 欧美日韩尤物久久| 中文日韩在线| 国产一精品一av一免费爽爽| 久久精品九色| 尤物tv在线精品| 亚洲精品欧洲| 精品三级av| 激情久久中文字幕| 日本一区二区中文字幕| 国产成人精品999在线观看| 1024精品一区二区三区| 亚洲最大av| 美女性感视频久久| 国产高清久久| 国产精品中文| 性欧美videohd高精| 一区二区不卡| 精品国产欧美| 中文日韩欧美| 久久99精品久久久野外观看| 亚洲精品a级片| 国产精品黄色| 日韩一级网站| 国产精品亚洲欧美一级在线| 亚洲大片在线| 国产精品1区在线| 国产一级久久| 国产精品一区二区三区av| 欧美三级网址| 婷婷亚洲精品| 久久久人人人| 欧美另类中文字幕| 亚洲二区在线| 国产精品theporn| 香蕉精品视频在线观看| 精品国产一区二| 亚洲精品国产精品粉嫩| 99久久久久国产精品|