溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue如何接入高德地圖

發(fā)布時間:2022-06-15 09:14:26 來源:億速云 閱讀:531 作者:zzz 欄目:開發(fā)技術(shù)

這篇“Vue如何接入高德地圖”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Vue如何接入高德地圖”文章吧。

    Vue接入高德地圖

    引用

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

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

    使用

    在需要寫地圖的頁面中添加一個div用來展示地圖,記得為這個div設置高度和寬度,不然顯示不出來。

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

    然后寫 TS 代碼把地圖顯示出來。

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

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

    Vue如何接入高德地圖

    實現(xiàn)點擊按鈕縮放功能

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

    地圖放大

    map.zoomIn()

    地圖縮小

    map.zoomOut()

    Vue如何接入高德地圖

    測量距離

    測量距離稍微麻煩點,但是也還好其實。

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

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

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

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

    然后寫一個按鈕“測距”,點擊的時候就執(zhí)行測距方法。

       // 開始測距
       start() {
           mouseTool.rule({
                startMarkerOptions: {//可缺省
                  icon: new AMap.Icon({
                    size: new AMap.Size(19, 31),//圖標大小
                    imageSize: new AMap.Size(19, 31),
                    image: "//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),//圖標大小
                    imageSize: new AMap.Size(19, 31),
                    image: "//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),//圖標大小
                    imageSize: new AMap.Size(19, 31),
                    image: "//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 的 自定義 設置,缺省為默認樣式
              });
        }
    
        //  停止測距
        stop() {
    		mouseTool.close(true)//關(guān)閉,并清除覆蓋物
    	}

    Vue如何接入高德地圖

    測量面積

    測量面積和測距類似。

    	// 開始測面積
    	start() {
    		mouseTool.measureArea({
              strokeColor: '#80d8ff',
              fillColor: '#80d8ff',
              fillOpacity: 0.3
           });
    	}
    
    	// 停止測面積
    	stop() {
    		mouseTool.close(true)//關(guān)閉,并清除覆蓋物
    	}

    Vue如何接入高德地圖

    很簡單吧!

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

    這個也很簡單哈寶寶們!

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

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

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

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

    首先寫一個輸入框,用來輸入查詢的行政區(qū)劃的名稱,比如輸入“北京”,然后點擊按鈕走下面的方法來查詢北京行政區(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);//視口自適應
            });
          },

    Vue如何接入高德地圖

    關(guān)鍵字搜索

    這個其實和行政區(qū)劃查詢差不多。

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

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

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

    有一個輸入框,輸入要查詢的關(guān)鍵字,然后一個按鈕來走接口查詢相關(guān)的關(guān)鍵字。然后會返回給你一個列表包含著關(guān)鍵字搜索回來的數(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,標識返回的是地點列表,如果是 TIP_CITIES,標識返回的是在下面這些城市里面有關(guān)于搜索關(guān)鍵字的相關(guān)數(shù)據(jù)。

    比如搜索北京,返回地點列表。

    Vue如何接入高德地圖

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

    Vue如何接入高德地圖

    鼠標繪制區(qū)域

    這個簡單,就是點擊一個按鈕開始繪制多邊形。

    	  // 繪制區(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   // 繪制完多邊形實力對象
              console.log('繪制圖形頂點信息列表--------> ', poly.getOptions())
              console.log('繪制圖形的自定義屬性--------> ', poly.getOptions().path)
              polyTool.close()
              polyTool = null
            })
          },

    Vue如何接入高德地圖

    以上就是關(guān)于“Vue如何接入高德地圖”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    vue
    AI