vue 中繪制多個(gè)區(qū)域(vue-baidu-map)以及點(diǎn)擊其中某個(gè)區(qū)域做的操作

首頁引入地圖組件 BmPolygon

<!--(stroke-color="#057af3"赂苗,線條顏色 )院水,(:stroke-weight="2" 可缚,線條寬度) (:fill-color,區(qū)域內(nèi)的填充顏色),(:stroke-opacity="1",填充的透明度)    -->
  <bm-polygon v-for="(p,index) in PolygonPath" @mousedown="mousedownPoly(p,index,p[index])"
                  @mouseover="PolyHover(p,index,p[index])" @mouseout="mouseoutPoly(p,index,p[index])"
                  :fill-opacity="p.fillOpacity" :key="'p'+index" :path='p' stroke-color="#057af3" :stroke-opacity="1"
                  :stroke-weight="2" :fill-color="PolygonParam.fillColor"></bm-polygon>
<script>
 import BmPolygon from 'vue-baidu-map/components/overlays/Polygon'
 export default {
    name: '',
    components: {
      BmPolygon,
    },methods:{
         mousedownPoly (data, index, key) {        // 鼠標(biāo)點(diǎn)擊區(qū)域時(shí)觸發(fā)
        this.plyData = data;

        this.plyIndex = index;

        this.$set(this.PolygonPath[index], `fillOpacity`, 0.7)

        this.$message(this.allNameData[index].name)

        this.$forceUpdate()

      },
 mouseoutPoly (data, index, key) { // 鼠標(biāo)離開區(qū)域操作

        this.$set(this.PolygonPath[index], `fillOpacity`, 0.1)

        this.$forceUpdate()

      },
}
</script>
(注意事項(xiàng)) PolygonPath 數(shù)組 單個(gè)區(qū)域數(shù)據(jù)格式一維數(shù)組,多個(gè)區(qū)域的話需要二維數(shù)組才行 不然不識(shí)別(下面方法是獲取后端數(shù)據(jù)來顯示多個(gè)區(qū)域的數(shù)據(jù)做的處理歪泳,后端格式根據(jù)具體業(yè)務(wù)來處理,這里只做參考)
getMarkerScope () {  // 獲取坐標(biāo)范圍
        let _this = this
        this.$http.get('./static/json/area.json',
          {
            headers: this.COMMON.headerJson
          }).then(function (response) {

          let res = response.data.result

          if (response.data.status == 1) {

            _this.areaIndex(res);

            let pointArray = [],splitArr = [],allAreaData = [];

            for (let p = 0; p < res.length; p++) {

              if(p==0){

                allAreaData.push(res[0].shapePgis.split('@'))   //  默認(rèn)第一條數(shù)據(jù)是顯示 所有范圍

              }

                splitArr.push(res[p].shapePgis.split('@'))      // 把有@符號(hào)的數(shù)據(jù) 拆分出來

            }

            _this.allArea(allAreaData);

            let newarr = [],newArr2=[],newArr3 =[],newArr4 =[],newArr5 = [];


            for (let i = 0; i < splitArr.length; i++) {

              for (let j = 0, l = splitArr[i].length; j < l; j++) {

                if(splitArr[i].length>1){

                  newarr.push(splitArr[i][j])

                }else{

                  newarr.push(splitArr[i][j])

                }
              }
            }




            for (let i = 0; i < newarr.length; i++) {

                 newArr2.push(newarr[i].split(','))
            }


            for (let i = 0; i <  newArr2.length; i++) {  // 去除最左邊的空格

              newArr3[i] = new Array();

              for (let j = 0, l = newArr2[i].length; j < l; j++) {

                newArr3[i].push(newArr2[i][j].replace(/(^\s*)/g, ''))

              }

            }


            for (let i = 0; i < newArr3.length; i++) {  // 匹配到空格 替換成逗號(hào)

              newArr4[i] = new Array();

              for (let j = 0, l = newArr3[i].length; j < l; j++) {

                newArr4[i].push(newArr3[i][j].replace(/\s/, ','))

              }
            }


            // 組裝數(shù)據(jù)
            for (let i = 0; i < newArr4.length; i++) {
              newArr5[i] = new Array();
              for (let j = 0, l = newArr4[i].length; j < l; j++) {

                if (newArr4[i][j].length > 0) {

                  newArr5[i].push({lng: newArr4[i][j].split(',')[0], lat:newArr4[i][j].split(',')[1]})

                }

              }
            }


            for (let i = 0; i < newArr5.length; i++) {

              newArr5[i]['fillOpacity'] = 0.1   // 默認(rèn)區(qū)域背景透明度

            }

            _this.PolygonPath = newArr5

            var point = new BMap.Point(_this.PolygonPath[0][1].lng, _this.PolygonPath[0][2].lat)

            _this.map.centerAndZoom(point, 14)

            _this.map.enableAutoResize()




          } else {
            _this.$message({
              type: 'error',
              message: response.data.msg
            })
          }
        }).catch(function (error) {

          console.log(error)

        })
          },

最終的效果圖

QQ截圖20210119111335.png

點(diǎn)擊某個(gè)區(qū)域顯示深色

1611026156(1).jpg

具體不懂的 可以聯(lián)系我 565598946@qq.com

有什么不對(duì)的地方 還請(qǐng)大家指點(diǎn)指點(diǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末露筒,一起剝皮案震驚了整個(gè)濱河市呐伞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慎式,老刑警劉巖伶氢,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異瘪吏,居然都是意外死亡癣防,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門掌眠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蕾盯,“玉大人,你說我怎么就攤上這事蓝丙〖对猓” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵迅腔,是天一觀的道長(zhǎng)装畅。 經(jīng)常有香客問我,道長(zhǎng)沧烈,這世上最難降的妖魔是什么掠兄? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮锌雀,結(jié)果婚禮上蚂夕,老公的妹妹穿的比我還像新娘。我一直安慰自己腋逆,他們只是感情好婿牍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惩歉,像睡著了一般等脂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上撑蚌,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天上遥,我揣著相機(jī)與錄音,去河邊找鬼争涌。 笑死粉楚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播模软,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼伟骨,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了燃异?” 一聲冷哼從身側(cè)響起携狭,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎回俐,沒想到半個(gè)月后暑中,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鲫剿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稻轨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灵莲。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖殴俱,靈堂內(nèi)的尸體忽然破棺而出政冻,到底是詐尸還是另有隱情,我是刑警寧澤线欲,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布明场,位于F島的核電站,受9級(jí)特大地震影響李丰,放射性物質(zhì)發(fā)生泄漏苦锨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一趴泌、第九天 我趴在偏房一處隱蔽的房頂上張望舟舒。 院中可真熱鬧,春花似錦嗜憔、人聲如沸秃励。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夺鲜。三九已至,卻和暖如春呐舔,著一層夾襖步出監(jiān)牢的瞬間币励,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國打工滋早, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留榄审,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓杆麸,卻偏偏與公主長(zhǎng)得像搁进,于是被迫代替她去往敵國和親浪感。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容