成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_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国内精品久久久久久久
国产一区二区三区黄| 激情五月婷婷综合网| 亚洲视频欧美在线| 99国产精品国产精品久久| 黑丝一区二区三区| 亚洲专区免费| 国产精品美日韩| 99视频有精品| 日韩亚洲欧美在线观看| 免费亚洲电影在线| 中文高清一区| 国产精品女同互慰在线看| 99久久婷婷国产| 91麻豆精品国产91久久久使用方法 | 欧美成人伊人久久综合网| 日韩电影在线观看电影| 国产模特精品视频久久久久| 成人欧美一区二区三区白人 | 欧美高清性hdvideosex| 日本成人在线看| 日韩视频在线观看国产| 中文字幕日韩av资源站| 欧美精品一区二区视频| 2021国产精品久久精品| 不卡av在线免费观看| 欧美一级日韩免费不卡| 国产综合成人久久大片91| 欧美亚洲图片小说| 久久午夜影视| 中文字幕一区二区三区在线不卡| 老司机精品视频在线| 欧美激情1区2区| 女同性一区二区三区人了人一| 在线观看欧美一区| 99久久精品免费看国产| 99人久久精品视频最新地址| 国产亚洲成人一区| 91久久精品网| 久久综合久久综合久久综合| 欧美国产在线观看| 日本在线不卡视频| 欧美激情性爽国产精品17p| 亚洲国产清纯| 久久本道综合色狠狠五月| 欧美电影在哪看比较好| 中文字幕av不卡| 欧美aa在线视频| 欧美91大片| 欧美性受xxxx| 欧美激情一区二区三区不卡 | 亚洲人妖在线| 91麻豆精品国产91久久久久久久久| 国产精品麻豆视频| 国产一区二区福利| 国产日韩欧美综合精品| 欧美电影免费观看高清完整版| 国产午夜精品理论片a级大结局| 一区二区视频在线看| 国产美女在线精品| 在线亚洲免费| 日韩美女一区二区三区| 亚洲精品少妇30p| 国产白丝精品91爽爽久久| 在线观看日韩av电影| 欧美色图天堂网| 亚洲三级在线免费| 成人久久18免费网站麻豆| 久久国产福利| 久久精品日韩一区二区三区| 免费成人你懂的| 亚洲福利av| 欧美一级高清片在线观看| 亚洲一区二区三区四区在线| 95精品视频在线| 欧美无人高清视频在线观看| 亚洲视频一区二区在线观看| 国产一区二区三区综合| 亚洲伦伦在线| 欧美极品少妇xxxxⅹ高跟鞋 | 日韩一区二区影院| 日本色综合中文字幕| 韩日欧美一区| 欧美不卡视频一区| 琪琪一区二区三区| 国产在线不卡| 久久婷婷国产综合国色天香| 国产一区二区影院| 欧美日韩国产首页| 午夜伊人狠狠久久| 一本色道久久综合亚洲精品高清| 国产午夜三级一区二区三| 高清国产午夜精品久久久久久| 色综合久久天天| 亚洲成精国产精品女| 99精品视频免费观看| 国产精品美女久久久久久久久久久 | 欧美亚洲专区| 亚洲影院理伦片| 国语对白精品一区二区| 国产精品网友自拍| 91视频在线观看| 精品国产免费人成电影在线观看四季 | 欧美日韩美少妇| 捆绑紧缚一区二区三区视频 | 女女同性精品视频| 26uuu国产在线精品一区二区| 韩国女主播一区| 欧美午夜片在线观看| 香蕉加勒比综合久久| 久久久久综合| 免费高清视频精品| 欧美丰满高潮xxxx喷水动漫| 精品午夜久久福利影院| 伊人久久亚洲影院| 国产精品欧美经典| 欧美精品久久99| 亚洲免费精品| 国产成人在线免费| 亚洲高清视频在线| 久久久午夜精品理论片中文字幕| 久久精品123| 91蜜桃在线免费视频| 日韩和欧美的一区| 久久网站最新地址| 久久综合精品一区| 欧美一区二区三区四区在线观看地址 | 在线播放精品| 亚洲国产欧美另类丝袜| 在线观看日韩精品| 国产传媒日韩欧美成人| 久久久亚洲高清| 亚洲激情国产| 三级欧美韩日大片在线看| 欧美揉bbbbb揉bbbbb| 成人免费视频一区| 中文字幕免费不卡在线| 欧美日韩在线观看一区二区三区| 综合色中文字幕| 久久三级福利| 国产黄色精品网站| 欧美国产日产图区| 国产视频久久| 国产麻豆欧美日韩一区| 精品日本一线二线三线不卡| 韩国久久久久| 奇米一区二区三区av| 日韩欧美美女一区二区三区| 一区福利视频| 免费观看一级特黄欧美大片| 久久免费美女视频| av不卡在线| 日产精品久久久久久久性色| 日韩一级完整毛片| 亚洲深爱激情| 岛国精品一区二区| 一个色在线综合| 欧美xxxxxxxx| 免费在线亚洲| 91麻豆精东视频| 七七婷婷婷婷精品国产| 国产三级欧美三级日产三级99| 欧美亚洲一级| 欧美激情第六页| 欧美a级理论片| 国产精品高潮久久久久无| 在线亚洲精品福利网址导航| 91在线看国产| 91在线小视频| 国产精品综合网| 日本成人在线电影网| 一区二区三区免费网站| 久久久精品日韩欧美| 91精品国产综合久久久久久久久久| 色噜噜狠狠色综合欧洲selulu| 香蕉国产精品偷在线观看不卡| 亚洲国内精品| 欧美精品免费观看二区| 成人a区在线观看| 国产伦精品一区二区三区免费迷| 日本三级韩国三级欧美三级| 亚洲永久免费av| 国产精品久久看| 国产欧美一区二区在线| 久久免费的精品国产v∧| 日韩精品一区在线| 日韩视频免费观看高清在线视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 成人免费视频国产在线观看| 久久成人av少妇免费| 日本女优在线视频一区二区| 日韩1区2区日韩1区2区| 日本成人在线视频网站| 午夜激情久久久| 午夜精品久久久久久久久| 亚洲一区二区三区中文字幕| 亚洲精品视频自拍| 亚洲男人的天堂在线aⅴ视频| 国产精品电影院| 国产精品美女一区二区在线观看| 久久久国产精华|