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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue 高德地图多边形_Vue + 高德地图画矢量图

發布時間:2025/4/5 vue 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue 高德地图多边形_Vue + 高德地图画矢量图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

功能需求

引入并創建地圖

支持鼠標工具

鼠標畫矢量圖(線、圓、矩形、多邊形)

支持矢量圖編輯、獲取各點經緯度及求面積等操作

自定義鼠標右鍵事件

一圖勝千言,效果圖如下

創建地圖對象

//DOM加載后動態引入地圖腳本并map初始化

//template

//mounted

this.$nextTick(function() {

this.initMap();

});

initMap() {

var url = 'https://webapi.amap.com/maps?v=1.4.15&key=秘鑰;

var jsapi = document.createElement('script');

jsapi.charset = 'utf-8';

jsapi.src = url;

document.head.appendChild(jsapi);

setTimeout(() => {//一秒延遲,等待腳本加載

let that = this;

let map = new AMap.Map('map', {

zoom: 13, //級別

center: [117.226737, 31.820066], //中心點坐標

pitch: 30, // 地圖俯仰角度,有效范圍 0 度- 83 度

viewMode: '2D' // 地圖模式

});

this.MAP = map;//將map掛載到組件data,后續交互需要用到

}, 1000);

},

復制代碼

插件介紹(plugin)

map眾多功能需要插件的支持官方文檔

使用步奏

//1、引入插件,支持按需異步加載和同步加載,可同時引入多個插件

AMap.plugin(

[

'AMap.InfoWindow',

'AMap.ContextMenu',

'AMap.Heatmap',

'AMap.MouseTool',

'AMap.RangingTool',

'AMap.CircleEditor',

'AMap.PolyEditor',

'AMap.ToolBar',

'AMap.Scale',

'AMap.OverView',

'AMap.MapType',

'AMap.Geolocation'

],

function() {

//插件引入回調事件,可添加工具控件,也可創建插件實例

map.addControl(new AMap.ToolBar({ position: 'RT' }));// 在圖面添加比例尺控件,展示地圖在當前層級和緯度下的比例尺

map.addControl(new AMap.Scale());// 在圖面添加鷹眼控件,在地圖右下角顯示地圖的縮略圖

map.addControl(new AMap.OverView({ isOpen: true }));// 在圖面添加類別切換控件,實現默認圖層與衛星圖、實施交通圖層之間切換的控制

}

);

2、創建插件實例,非特殊情況需避免重復創建多個實例,復用同一個實例即可,vue中可將實例保存到data中;

//插件實例可在任何地方創建,例如鼠標工具實例創建如下:

//注意:實例的創建過程需要放到plugin的回調函數中執行,防止創建實例前沒有獲取到map實例

this.mouseTool = new AMap.MouseTool(map);

//this.mouseTool 實例掛載到data,方便全局使用

//AMap.MouseTool 插件名

//map 初始化的地圖對象

//監聽鼠標工具出發的事件

this.mouseTool.on('draw', function(e) {

//做些什么

});

//自定義交互事件,當事件被dom觸發后可以被mouseTool監聽到

畫圓

draw(type) {

switch (type) {

case 'polygon': {

......

break;

}

case 'circle': {

......

break;

}

}

},

3、調用實例的方法,使用相關功能。

this.ruler = new AMap.RangingTool(map); //創建測量工具實例

this.ruler.turnOn();

復制代碼

鼠標畫矢量圖

劃線畫圓矩形多邊形

draw(type) {

//mouseTool是鼠標工具實例

switch (type) {

case 'marker': {//畫點

mouseTool.marker({

//同Marker的Option設置

});

break;

}

case 'polyline': {//劃線

mouseTool.polyline({

strokeColor: '#80d8ff'

//同Polyline的Option設置

});

break;

}

case 'polygon': {//畫多邊形

mouseTool.polygon({

strokeColor: '#f7797d',

strokeOpacity: 1,

strokeWeight: 2,

strokeOpacity: 1,

strokeStyle: 'solid',

fillOpacity: 0.1,

fillColor: '#69AC8F',

zIndex: 100

});

break;

}

case 'rectangle': {//畫矩形

mouseTool.rectangle({

strokeColor: '#f7797d',

strokeOpacity: 1,

strokeWeight: 2,

strokeOpacity: 1,

strokeStyle: 'solid',

fillOpacity: 0.1,

fillColor: '#69AC8F',

zIndex: 100

});

break;

}

case 'circle': {//畫圓

mouseTool.circle({

strokeColor: '#f7797d',

strokeOpacity: 1,

strokeWeight: 2,

strokeOpacity: 1,

strokeStyle: 'solid',

fillOpacity: 0.1,

fillColor: '#69AC8F',

zIndex: 100

});

break;

}

}

}

復制代碼

支持矢量圖編輯、獲取各點經緯度及求面積等工具插件

//編輯各種矢量圖形需要對應的插件

1、引入

2、創建實例

3、使用:調用方法、監聽事件

let circleEditor = new AMap.CircleEditor(map, e.obj);//創建圓實例,e.obj是mouseTool事件回調函數返回的數據對象

circleEditor.open(); //打開編輯狀態

監聽圓編輯過程中的事件

circleEditor.on('move', function(event){

// event.target 即為編輯后的圖形對象,包含圖形的相關數據和方法

event.target.getCenter().lat.toFixed(7)//獲取圓心經度

});

circleEditor.on('adjust', function(event){

});

circleEditor.on('end', function(event){

});

復制代碼

自定義鼠標右鍵事件

//地圖綁定鼠標右擊事件——彈出右鍵菜單

//地圖對象監聽右鍵事件(這里監聽的是地圖上的右鍵事件,如果是監聽繪畫的矢量圖右鍵,

則把監聽對象改成繪畫的矢量圖)

map.on('rightclick', function(e){

that.rightclickObj(); //定義右鍵內容

that.contextMenu.open(map, e.lnglat);

that.contextMenuPositon = e.lnglat; //右鍵菜單位置

});

//定義右鍵內容

rightclickObj() {

let that = this;

//定義內容

let content = [];

content.push("

");

content.push(

"

"

);

content.push(

"

"

);

content.push(

"

"

);

content.push(

"

"

);

if (that.circleEditor) {

content.push(

"

"

);

}

content.push('

');

//創建右鍵實例并添加自定義的內容

that.contextMenu = new AMap.ContextMenu({

isCustom: true,

content: content.join('')

});

}

//強調說明:自定義的dom是基于地圖對象生成的,并不能像vue一樣綁定事件,這里采用jQuery的方式出發的事件。如下

mounted() {

this.$nextTick(function(){

this.initMap();

});

$('body').on('click', '.menu-list-edit-start', () => {//這里采用箭頭函數,為了this指向vue

//調用定義的dom交互

this.rightMenuu(0);

});

$('body').on('click', '.menu-list-edit-end', () => {

this.rightMenuu(1);

});

$('body').on('click', '.menu-list-get-area', () => {

this.rightMenuu(2);

});

$('body').on('click', '.menu-list-remove', () => {

this.rightMenuu(3);

});

$('body').on('click', '.menu-list-radius', () => {

this.rightMenuu(4);

});

}

復制代碼

總結

仔細對比會發現,地圖無非就是自身API和引入插件實現相應功能

事件監聽通過 .on(‘支持的事件名’,function)

事件插件需要引入并創建實例,實例也包含方法和事件,方法直接調用,事件用.on監聽,事件的回調函數會返回圖形的相關數據以及方法

最后,地圖的所有功能都是由一個或多個API或插件組合而成,好在官方文檔足夠詳細且每個功能點都有demo,所以當遇到一個功能不知如何下手時,試著把功能拆成更小的步奏或單元

初次使用地圖,以上所述如有不足之處或者你有更好的方法,歡迎留言指出

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的vue 高德地图多边形_Vue + 高德地图画矢量图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产色91| 1515hh成人免费看 | 日韩欧美国产精品 | 国产精品免费视频一区二区三区 | 97成人在线观看 | 中文字幕在线资源 | 红桃视频成人在线 | 国产丝袜视频在线 | 激情av| 黄色私人影院 | 波多野结衣乳巨码无在线观看 | 9999精品| 色呦呦视频在线观看 | www.在线观看视频 | 夜夜爽夜夜 | 男人干女人视频 | 欧美日韩中文一区 | 操模特 | 日韩黄色精品 | 久久久久亚洲av片无码 | 日韩在线不卡视频 | 日韩中文娱乐网 | 99精品视频99| 少妇人妻综合久久中文字幕 | 91久久影院| 浓精h攵女乱爱av | 女同性恋毛片 | 前任攻略在线观看免费完整版 | 欲色综合 | 国产又黄又嫩又滑又白 | 五月天婷婷激情视频 | 欧美日韩亚洲另类 | 久久r精品| 色批网站 | 欧美乱大交xxxxx春色视频 | 色八区 | 午夜激情免费 | 九九久久免费视频 | 六月丁香综合 | 国语对白做受xxxxx在线中国 | 色一情一乱一伦 | 精品国产乱码久久久久久免费 | 婷婷爱五月 | 色视频国产 | 欧美成人手机在线视频 | www.av视频在线观看 | 真实乱视频国产免费观看 | 超碰c | 亚洲乱色 | 免费污网站在线观看 | 水蜜桃色314在线观看 | 麻豆最新网址 | 国产高清精品在线 | 国产理论视频在线观看 | 激情草逼| 欧美美女性视频 | 亚洲一在线 | 久久久久久久久久久国产精品 | 天天爽夜夜爽人人爽 | 欧美视频在线观看免费 | h片大全| 涩涩的视频在线观看 | h网站在线播放 | 手机av在线免费 | 国产美女性生活 | 天天干天 | 亚洲一区免费 | 久久精品视频网站 | 女女h百合无遮羞羞漫画软件 | 欧美中文一区 | 日韩精品一线二线三线 | 韩国中文字幕在线观看 | 校园春色在线观看 | 久久久久9| 丁香久久| 国产三区在线观看 | 国产精品无码一区 | 久久久久久av无码免费网站下载 | 亚洲经典视频 | 婷婷综合影院 | 成人欧美精品一区二区 | 男人插入女人下面视频 | 九九热在线视频免费观看 | 国产精品夜夜爽张柏芝 | 91亚洲国产成人精品性色 | 秋霞午夜视频 | 亚洲av无码乱码国产精品久久 | 激情视频在线免费观看 | 67194av | 一区二区三区免费看 | 一级视频在线免费观看 | 成人午夜毛片 | 九九综合九九 | 国产美女91 | 国产又黄又猛视频 | 香港三级日本三级 | 调教91| 制服丝袜中文字幕在线 | 欧美丝袜脚交 |