日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > vue >内容正文

vue

Vue+Openlayers+Draw实现画笔切换功能,切换画笔为点、线、面

發(fā)布時(shí)間:2025/3/19 vue 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue+Openlayers+Draw实现画笔切换功能,切换画笔为点、线、面 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

場(chǎng)景

Vue+Openlayer使用Draw實(shí)現(xiàn)交互式繪制線段:

Vue+Openlayer使用Draw實(shí)現(xiàn)交互式繪制線段_霸道流氓氣質(zhì)的博客-CSDN博客

Vue+Openlayer使用Draw實(shí)現(xiàn)交互式繪制多邊形并獲取面積:

Vue+Openlayer使用Draw實(shí)現(xiàn)交互式繪制多邊形并獲取面積_霸道流氓氣質(zhì)的博客-CSDN博客

如果需要將繪制點(diǎn)、線、面集成在一個(gè)頁(yè)面中并且可以實(shí)現(xiàn)切換畫筆樣式。

?

注:

博客:
霸道流氓氣質(zhì)的博客_CSDN博客-C#,架構(gòu)之路,SpringBoot領(lǐng)域博主
關(guān)注公眾號(hào)
霸道的程序猿
獲取編程相關(guān)電子書、教程推送與免費(fèi)下載。

實(shí)現(xiàn)

1、頁(yè)面上添加el-radio-group用來(lái)選擇切換畫筆

??????????? <el-radio-group v-model="radio" @change="toolChange"><el-radio? label="1">普通鼠標(biāo)</el-radio><el-radio? label="2">繪制線</el-radio><el-radio? label="3">繪制區(qū)域</el-radio>?????<el-radio? label="4">繪制點(diǎn)</el-radio>?????</el-radio-group>

2、綁定的model值聲明

??????? data() {return {?????????radio: '1',selectedStyle:null,//畫筆stylecurrentTool:null,};

3、頁(yè)面mounted中初始化地圖時(shí)設(shè)置坐標(biāo)的選中樣式等。

??????? methods: {????//初始化地圖init() {let self = this;// 獲取點(diǎn)擊地圖的坐標(biāo)(選中樣式)self.selectedStyle = new Style({fill: new Fill({color: 'rgba(1, 210, 241, 0.2)'}),stroke: new Stroke({color: 'yellow',width: 4})});// 選擇線的工具類this.selectTool = new Select({multi: true,hitTolerance: 10, // 誤差style: this.selectedStyle // 選中要素的樣式})

4、改變畫筆的change事件

??????????? //改變畫筆toolChange(val){let self = this;//移除交互self.map.removeInteraction(self.selectTool);self.coordinate = []//清空交互的圖層self.drawLineLayer.getSource().clear()self.removeDraw();//添加交互self.map.addInteraction(self.selectTool)switch(val){????????????case '2'://調(diào)用繪圖工具并傳遞類型為線,其他類型有Point,LineString,Polygon,Circleself.onAddInteraction('LineString')self.currentTool = "LineString";break;case '3'://調(diào)用繪圖工具并傳遞類型為線,其他類型有Point,LineString,Polygon,Circleself.onAddInteraction('Polygon')self.currentTool = "Polygon";break;case '4'://調(diào)用繪圖工具并傳遞類型為線,其他類型有Point,LineString,Polygon,Circleself.onAddInteraction('Point')self.currentTool = "Point";break;}},

重新移除交互并清空?qǐng)D層與點(diǎn)位數(shù)據(jù)存儲(chǔ)點(diǎn),然后調(diào)用添加繪圖工具的方法并傳遞不同的參數(shù)類型,并將選中的畫筆類型記錄下來(lái)。

添加繪圖工具的方法實(shí)現(xiàn)

??????????? // 繪圖工具onAddInteraction(type) {let self = this//勾繪矢量圖形的類this.draw = new Draw({//source代表勾繪的要素屬于的數(shù)據(jù)集source: self.drawLineSource,//type 表示勾繪的要素包含的 geometry 類型type: type})//繪制結(jié)束時(shí)觸發(fā)的事件this.draw.on('drawend', function(e) {?????????????const geometry = e.feature.getGeometry()let pointArr = geometry.getCoordinates()debugger//限制只繪制一個(gè)多邊形self.removeDraw()switch(self.currentTool){????????????case 'LineString':self.pointArr = pointArr;//調(diào)用接口保存線let param = {pointList:self.pointArr}insertLineRequest(param).then((response) => {self.msgSuccess("新增成功");//刷新監(jiān)測(cè)點(diǎn)數(shù)據(jù)self.getPointList();//成功之后刪除線self.drawLineLayer.getSource().clear()});break;case 'Polygon'://只獲取第一個(gè)多邊形的坐標(biāo)???self.pointArr = pointArr[0];self.dialogVisible = true;break;case 'Point'://調(diào)用新增點(diǎn)的接口self.pointArr = pointArr;break;}????????????????????????????})self.map.addInteraction(this.draw)},

這樣就可以根據(jù)不同的畫筆類型在繪制結(jié)束時(shí)進(jìn)行不同的業(yè)務(wù)處理

其中刪除draw的方法

??????????? //刪除交互removeDraw() {this.map.removeInteraction(this.draw)},

5、頁(yè)面上添加重新繪制按鈕,其點(diǎn)擊事件中

??????????? //重新繪制clear() {this.coordinate = []this.drawLineLayer.getSource().clear()//添加交互this.map.addInteraction(this.selectTool)switch(this.currentTool){????????????case 'LineString':this.onAddInteraction('LineString')break;case 'Polygon':this.onAddInteraction('Polygon')break;case 'Point':this.onAddInteraction('Point')break;}??????????????????????????},

根據(jù)當(dāng)前選中的畫筆類型,初始化畫筆為對(duì)應(yīng)的類型。

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Vue+Openlayers+Draw实现画笔切换功能,切换画笔为点、线、面的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美精品一二三区 | 9色av | 一区二区三区日韩在线 | 黄色免费av网站 | 性感美女被草 | 精品韩国一区二区三区 | 日本特级毛片 | 在线天堂www在线国语对白 | 波多野结衣中文字幕在线 | 乳揉みま痴汉4在线播放 | 欧美日韩xxx | 精品一区二区视频在线观看 | 中国黄色a级片 | 日韩色视频在线观看 | 成人片黄网站色大片免费毛片 | 香蕉网在线播放 | 欧美日韩中字 | 美女毛片网站 | 国产aⅴ爽av久久久久成人 | 水蜜桃亚洲精品 | 中文在线国产 | 免费不卡av在线 | 久久久久久五月天 | 性生交大片免费看 | 夜色视频在线观看 | 国产一二三在线观看 | 插插网站| 日本特级片 | 男女av | 国产精品电影在线观看 | 欧美性猛交xxxx偷拍洗澡 | 黄色一级视频网站 | 尤物精品视频 | 久久久久久久影院 | 欧美日韩国产精品一区二区三区 | 免费一级特黄毛大片 | 伊人称影院| 99热精品在线观看 | 中国亚洲女人69内射少妇 | 深夜免费福利视频 | 日本三级中文字幕 | 一级特黄免费视频 | 性爽爽 | 久久久久久久久久久久久久av | 亚洲AV无码成人精品区麻豆 | 91色啪| 91久久伊人 | 国产精品人人人人 | 久久精品视 | 香蕉视频免费看 | 天天综合网在线观看 | 久久久电影 | 色四虎 | 极品女神无套呻吟啪啪 | a一级黄色 | 久久国产a | 操模特 | 国产偷拍一区二区三区 | 久久人体视频 | 欧美一二三 | 亚洲天天影视 | 性色浪潮av | 国产区一区二区三区 | 国产激情综合 | 亚洲视频在线免费看 | 可以直接看的毛片 | 一级久久久 | 亚洲AV无码成人国产精品色 | 国产精品一区二区三区四区在线观看 | 国产精品综合在线 | 免费日皮视频 | 91精品国产乱码久久 | 色交视频 | 五月天激情电影 | 日韩亚洲视频 | 日本视频一区二区 | www黄色av | 亚洲少妇30p | www.在线观看视频 | 毛片1000部免费看 | 免费视频污 | 日本熟女一区二区 | 狠狠干狠狠干狠狠干 | 苍井空张开腿实干12次 | 色呦呦 | 永久免费看片在线播放 | 欧美老女人视频 | 日韩亚洲欧美一区二区三区 | 国产精品伦理一区 | 色老头综合 | 日日夜夜天天操 | 久操视频在线观看免费 | 深夜国产福利 | 奇米影视77777 | 国产乱视频 | 国产无遮挡又黄又爽又色视频 | 免费欧美在线 | 亚洲综合套图 | 少妇一级淫片免费看 |