最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue接入高德地圖的完整實(shí)例

 更新時(shí)間:2022年06月14日 16:38:45   作者:王+V  
近期在用vue做一個(gè)環(huán)保類(lèi)的項(xiàng)目,要求使用高德地圖,下面這篇文章主要給大家介紹了關(guān)于Vue接入高德地圖的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

Vue 使用高德地圖,實(shí)現(xiàn)縮放,鼠標(biāo)繪制,測(cè)距、測(cè)面積、行政區(qū)域范圍繪制、關(guān)鍵詞查詢(xún)等操作。

參考資料

高德地圖API官網(wǎng):https://lbs.amap.com/

高德地圖2.0參考手冊(cè):https://lbs.amap.com/api/jsapi-v2/documentation#pixel

高德地圖2.0示例代碼:https://lbs.amap.com/demo/list/jsapi-v2

Vue接入高德地圖

引用

首相要在index.html文件中引入高德地圖。

<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=您申請(qǐng)的key值&plugin=AMap.ToolBar"></script>

使用

在需要寫(xiě)地圖的頁(yè)面中添加一個(gè)div用來(lái)展示地圖,記得為這個(gè)div設(shè)置高度和寬度,不然顯示不出來(lái)。

<div id="mapDiv"></div>

然后寫(xiě) TS 代碼把地圖顯示出來(lái)。

	  // 加載地圖
      initMap() {
        map = new AMap.Map('mapDiv', {
          zoom: 11,//級(jí)別
          center: [116.34703902, 40.48188],//中心點(diǎn)坐標(biāo)
          viewMode: '3D'//使用3D視圖
        });
      },

然后地圖就出現(xiàn)了。

實(shí)現(xiàn)點(diǎn)擊按鈕縮放功能

首先寫(xiě)兩個(gè)靜態(tài)按鈕,縮放也很簡(jiǎn)單,就兩行代碼就可以了。

地圖放大

map.zoomIn()

地圖縮小

map.zoomOut()

測(cè)量距離

測(cè)量距離稍微麻煩點(diǎn),但是也還好其實(shí)。

首先我們要在初始化地圖完成之后,創(chuàng)建一個(gè)鼠標(biāo)繪制工具。

    // 測(cè)距、測(cè)面積使用
    mouseTool = new AMap.MouseTool(map);

MouseTool 這個(gè)插件需要在index.html文件的script中引入一下,就是plugin參數(shù)后邊加就可以,用英文的逗號(hào)隔開(kāi)。

<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=您申請(qǐng)的key值&plugin=AMap.ToolBar,AMap.MouseTool"></script>

然后寫(xiě)一個(gè)按鈕“測(cè)距”,點(diǎn)擊的時(shí)候就執(zhí)行測(cè)距方法。

   // 開(kāi)始測(cè)距
   start() {
       mouseTool.rule({
            startMarkerOptions: {//可缺省
              icon: new AMap.Icon({
                size: new AMap.Size(19, 31),//圖標(biāo)大小
                imageSize: new AMap.Size(19, 31),
                image: "http://webapi.amap.com/theme/v1.3/markers/b/start.png"
              }),
              offset: new AMap.Pixel(-9, -31)
            },
            endMarkerOptions: {//可缺省
              icon: new AMap.Icon({
                size: new AMap.Size(19, 31),//圖標(biāo)大小
                imageSize: new AMap.Size(19, 31),
                image: "http://webapi.amap.com/theme/v1.3/markers/b/end.png"
              }),
              offset: new AMap.Pixel(-9, -31)
            },
            midMarkerOptions: {//可缺省
              icon: new AMap.Icon({
                size: new AMap.Size(19, 31),//圖標(biāo)大小
                imageSize: new AMap.Size(19, 31),
                image: "http://webapi.amap.com/theme/v1.3/markers/b/mid.png"
              }),
              offset: new AMap.Pixel(-9, -31)
            },
            lineOptions: {//可缺省
              strokeStyle: "solid",
              strokeColor: "#FF33FF",
              strokeOpacity: 1,
              strokeWeight: 2
            }
            //同 RangingTool 的 自定義 設(shè)置,缺省為默認(rèn)樣式
          });
    }

    //  停止測(cè)距
    stop() {
		mouseTool.close(true)//關(guān)閉,并清除覆蓋物
	}

測(cè)量面積

測(cè)量面積和測(cè)距類(lèi)似。

	// 開(kāi)始測(cè)面積
	start() {
		mouseTool.measureArea({
          strokeColor: '#80d8ff',
          fillColor: '#80d8ff',
          fillOpacity: 0.3
       });
	}

	// 停止測(cè)面積
	stop() {
		mouseTool.close(true)//關(guān)閉,并清除覆蓋物
	}

很簡(jiǎn)單吧!

行政區(qū)劃查詢(xún)渲染

這個(gè)也很簡(jiǎn)單哈寶寶們!

首先也是走接口去獲取行政區(qū)劃的范圍啊。

需要用到這個(gè)插件AMap.DistrictSearch,和測(cè)距一樣在index.html中引入一下。

然后在初始化地圖完成的時(shí)候?qū)嵗幌隆?/p>

   // 搜索行政區(qū)
   district = new AMap.DistrictSearch(opts);

首先寫(xiě)一個(gè)輸入框,用來(lái)輸入查詢(xún)的行政區(qū)劃的名稱(chēng),比如輸入“北京”,然后點(diǎn)擊按鈕走下面的方法來(lái)查詢(xún)北京行政區(qū)劃的范圍信息。

	  // 行政區(qū)劃搜索
      seachArea() {
        if (this.areaInput === "") {
          map.remove(areaPolygons)//清除上次結(jié)果
          return;
        }
        district.search(this.areaInput, (status, result) => {
          map.remove(areaPolygons)//清除上次結(jié)果
          areaPolygons = [];
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            for (var i = 0, l = bounds.length; i < l; i++) {
              //生成行政區(qū)劃polygon
              var polygon = new AMap.Polygon({
                strokeWeight: 3,
                path: bounds[i],
                fillOpacity: 0,
                fillColor: '#80d8ff',
                strokeColor: 'red'
              });
              areaPolygons.push(polygon);
            }
          }
          map.add(areaPolygons)
          map.setFitView(areaPolygons);//視口自適應(yīng)
        });
      },

關(guān)鍵字搜索

這個(gè)其實(shí)和行政區(qū)劃查詢(xún)差不多。

首先呢,需要在地圖初始化完成之后呢,創(chuàng)建一個(gè)關(guān)鍵字查詢(xún)的實(shí)例。

		// 關(guān)鍵字搜索
        AMap.plugin(["AMap.PlaceSearch"], () => {
          //構(gòu)造地點(diǎn)查詢(xún)類(lèi)
          placeSearch = new AMap.PlaceSearch({
            pageSize: 50, // 單頁(yè)顯示結(jié)果條數(shù)
            pageIndex: 1, // 頁(yè)碼
            autoFitView: false // 是否自動(dòng)調(diào)整地圖視野使繪制的 Marker點(diǎn)都處于視口的可見(jiàn)范圍
          });
        });

這個(gè)還有其他的參數(shù),可根據(jù)官方文檔自己判斷挑選使用呀!

有一個(gè)輸入框,輸入要查詢(xún)的關(guān)鍵字,然后一個(gè)按鈕來(lái)走接口查詢(xún)相關(guān)的關(guān)鍵字。然后會(huì)返回給你一個(gè)列表包含著關(guān)鍵字搜索回來(lái)的數(shù)據(jù)。

	searchKeyWord() {
	   placeSearch.search("北京", (state, data) => {
          this.total = 0
          let dataList = data
          switch (dataList.info) {
            case 'OK':
              console.log("-------->", dataList.poiList.pois)
              break;
            case 'TIP_CITIES':
              console.log("-------->", dataList.cityList)
              break;
          }
        });
	}

上邊 如果 info 為 OK,標(biāo)識(shí)返回的是地點(diǎn)列表,如果是 TIP_CITIES,標(biāo)識(shí)返回的是在下面這些城市里面有關(guān)于搜索關(guān)鍵字的相關(guān)數(shù)據(jù)。

比如搜索北京,返回地點(diǎn)列表。

比如搜索“動(dòng)物園”,返回相關(guān)城市列表。

鼠標(biāo)繪制區(qū)域

這個(gè)簡(jiǎn)單,就是點(diǎn)擊一個(gè)按鈕開(kāi)始繪制多邊形。

	  // 繪制區(qū)域
      startPolygon() {
        polyTool = new AMap.MouseTool(map);
        polyTool.polygon({
          strokeColor: "#1791fc",
          strokeOpacity: 1,
          strokeWeight: 1,
          fillColor: '#1791fc',
          fillOpacity: 0.4,
          strokeStyle: "solid",
          extData: {
            id: '123'
          }
        })
        polyTool.on('draw', (event) => {
          let poly = event.obj   // 繪制完多邊形實(shí)力對(duì)象
          console.log('繪制圖形頂點(diǎn)信息列表--------> ', poly.getOptions())
          console.log('繪制圖形的自定義屬性--------> ', poly.getOptions().path)
          polyTool.close()
          polyTool = null
        })
      },

完成了兄弟們!

總結(jié)

到此這篇關(guān)于Vue接入高德地圖的文章就介紹到這了,更多相關(guān)Vue接入高德地圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • maptalks+three.js+vue webpack實(shí)現(xiàn)二維地圖上貼三維模型操作

    maptalks+three.js+vue webpack實(shí)現(xiàn)二維地圖上貼三維模型操作

    這篇文章主要介紹了maptalks+three.js+vue webpack實(shí)現(xiàn)二維地圖上貼三維模型操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Vue Router根據(jù)后臺(tái)數(shù)據(jù)加載不同的組件實(shí)現(xiàn)

    Vue Router根據(jù)后臺(tái)數(shù)據(jù)加載不同的組件實(shí)現(xiàn)

    本文主要介紹了根據(jù)用戶(hù)所購(gòu)買(mǎi)服務(wù)的不同,有不同的頁(yè)面展現(xiàn)。文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Vue.js系列之項(xiàng)目搭建(1)

    Vue.js系列之項(xiàng)目搭建(1)

    今天要講講Vue2.0了。最近將公司App3.0用vue2.0構(gòu)建了一個(gè)web版,因?yàn)槭堑谝淮问褂胿ue,而且一開(kāi)始使用的時(shí)候2.0出來(lái)一個(gè)月不到,很多坑都是自己去踩的,現(xiàn)在項(xiàng)目要上線了,所以記錄一些過(guò)程
    2017-01-01
  • Vue手動(dòng)控制點(diǎn)擊事件Click觸發(fā)方式

    Vue手動(dòng)控制點(diǎn)擊事件Click觸發(fā)方式

    這篇文章主要介紹了Vue手動(dòng)控制點(diǎn)擊事件Click觸發(fā)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Vue.js特性Scoped Slots的淺析

    Vue.js特性Scoped Slots的淺析

    這篇文章主要介紹了Vue.js特性Scoped Slots的淺析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Vue項(xiàng)目?jī)?yōu)化打包之前端必備加分項(xiàng)

    Vue項(xiàng)目?jī)?yōu)化打包之前端必備加分項(xiàng)

    相信現(xiàn)在很多人都是用Vue做過(guò)了各種項(xiàng)目,但是項(xiàng)目代碼做完和上線并不代表這結(jié)束,還有上線以后的優(yōu)化也是很重要的一點(diǎn),這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目?jī)?yōu)化打包的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • vue如何對(duì)一個(gè)數(shù)據(jù)過(guò)濾出想要的item

    vue如何對(duì)一個(gè)數(shù)據(jù)過(guò)濾出想要的item

    這篇文章主要介紹了vue如何對(duì)一個(gè)數(shù)據(jù)過(guò)濾出想要的item問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 一文詳解Vue.js與TypeScript的生命周期

    一文詳解Vue.js與TypeScript的生命周期

    Vue與TypeScript的結(jié)合使得開(kāi)發(fā)大型應(yīng)用變得更加容易和高效,本文將詳細(xì)探討Vue.js組件中TypeScript的應(yīng)用,特別是它的生命周期鉤子函數(shù),并通過(guò)豐富的示例,為你提供一個(gè)實(shí)戰(zhàn)指南,需要的朋友可以參考下
    2023-11-11
  • VUE微信H5生成二維碼海報(bào)保存在本地相冊(cè)的實(shí)現(xiàn)

    VUE微信H5生成二維碼海報(bào)保存在本地相冊(cè)的實(shí)現(xiàn)

    本文主要介紹了VUE微信H5生成二維碼海報(bào)保存在本地相冊(cè)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • ejsExcel模板在Vue.js項(xiàng)目中的實(shí)際運(yùn)用

    ejsExcel模板在Vue.js項(xiàng)目中的實(shí)際運(yùn)用

    這篇文章主要介紹了ejsExcel模板在Vue.js項(xiàng)目中的實(shí)際運(yùn)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01

最新評(píng)論

昭平县| 兖州市| 福清市| 西盟| 科技| 许昌县| 四平市| 通州区| 大港区| 本溪| 永平县| 锦屏县| 密山市| 罗平县| 隆子县| 皮山县| 南阳市| 石门县| 宁远县| 镇雄县| 宜春市| 河西区| 车险| 德化县| 库伦旗| 垫江县| 舞阳县| 元谋县| 阿瓦提县| 旌德县| 且末县| 张家港市| 定州市| 台东县| 邹平县| 临西县| 翁牛特旗| 双鸭山市| 乌拉特中旗| 洪江市| 江达县|