vue 高德地圖之玩轉周邊
前言:在之前的博客中,有成功引入高德地圖,這是以前的地址 vue 調用高德地圖。
因為一些需求,需要使用到地圖的周邊功能。
完整的項目代碼請查看 我的github
一 、先看要實現的結果,參考了鏈家的周邊,如圖所示。
二 、原理分析
1、引入高德api,這個在之前的博客提到過,vue 調用高德地圖。
2、使用地圖的周邊插件,這是 高德網站的api。
AMap.PlaceSearch //地點搜索服務插件,提供某一特定地區的位置查詢服務
在插件中的各種方法中選取了searchNearBy的方法。
searchNearBy(keyword:String,center:LngLat,radius:Number,
callback:function(status:String,result:info/SearchResult))
// 根據中心點經緯度、半徑以及關鍵字進行周邊查詢
radius取值範圍:0-50000
3、構建查詢方法
searchData: function (callback) {
let keyWords = ["地鐵線路", "大型購物廣場", "三甲醫院", "學校"] // 自選關鍵詞
let distance = [1000, 3000, 3000, 3000]
// …………………………………………………………周邊分類…………………………………………………………………………………………………………
placeSearchOptions = { // 構造地點查詢類
pageSize: 10,
pageIndex: 1,
city: "021", // 城市
map: map,
visible: false
}
AMap.service("AMap.PlaceSearch", function {
map.clearMap // 清除地圖覆蓋物
placeSearch = new AMap.PlaceSearch(placeSearchOptions)
for (let i = 0; i < keyWords.length; i++) {
placeSearch.searchNearBy(keyWords[i], [121.44343879031237, 31.207570983863118], distance[i], callback)
}
})
return callback
},
在這個方法中,將所有的maker都查找出來,為了能夠讓後續不重新載入地圖和插件,如有更好的方法 ,歡迎指出。
4、將maker的切換事件綁定在footer下的各個選項中。
/* 註冊每項的點擊事件,默認顯示num0,也就是交通,實際上所有的數據已經請求到了,點擊按鈕只是用來切換maker */
clickItem: function (index, buttons) {
map.clearMap // 清除地圖覆蓋物
buttons.forEach(function (e, index) {
e.isActive = false
})
buttons[index].isActive = true
self.listCount = self.num[index].length
self.listText = self.num[index]
function onClick (e) {
console.log(e)
}
for (let i = 0; i < self.num[index].length; i++) {
marker = new AMap.Marker({
// content: "div",
title: "abc",
icon: "https://webapi.amap.com/theme/v1.3/markers/n/mark_b" + (i + 1) + ".png",
position: [self.num[index][i].location.lng, self.num[index][i].location.lat],
offset: new AMap.Pixel(-24, 5),
zIndex: 1,
map: map,
clickable: true
})
AMap.event.addListener(marker, "click", onClick)
}
return marker
}
三、結果展示
注意:為方便演示效果,此項目中使用了個人開發者的高德秘鑰,請自行去替換成自己的。
完整的項目代碼請查看 我的github


※C簡單構架之EF進行讀寫分離+多資料庫(Mysql/SqlService)
※在windows下使用Qt5開發GTK3圖形界面應用程序
※angular2/angular4 如何通過$http的post方法請求下載二進位的Excel文件
※帶著問題寫React Native原生控制項--Android視頻直播控制項
※html5中cookie介紹,封裝以及添加,獲取,刪除
TAG:科技優家 |
※上海時裝周,玩轉各大showroom攻略
※南韓再掀「Chuu Heart」風!idol 帶你玩轉新花樣
※如何更好地玩轉 GitHub?
※Amazon Business帶你玩轉高利潤、高頻復購的MRO!
※millie』s X moussy聯名l馬思純玩轉跨時空style,全靠這雙鞋
※資深音樂人郝舫,帶你玩轉叱吒美國大半個娛樂圈的Coachella音樂節
※玩轉 GitHub 更新Fork
※Follow me!三秒玩轉韓國平昌冬奧會!
※坐看Gucci、Dior、miumiu 如何玩轉?
※今晚視頻直播,Echo和Kelly帶你玩轉復古桌游~
※《上海女子圖鑑》帶你玩轉職場,so easy!
※Laura Orgué玩轉冬奧會的短距離越野女王
※韓東君生日會玩轉FreeStyle 大型蹦迪現場火熱溫馨看點十足
※出售酒店房間產權模式 紐西蘭Safari Group是怎麼玩轉的
※米蘭時裝周玩轉Gucci、Fendi,不輸姚晨的她究竟是何方妖孽?
※joujou風美甲,玩轉暈染+貝殼片美甲!
※僅需八步 教你玩轉Google Home Hub
※AJboy VS AJgirl,學生黨才能玩轉的「穿不起」!
※蒂芙尼早餐、Hermes洗衣店、Chanel遊戲廳,宇宙大牌都如何玩轉跨界?
※努比亞X vs vivo NEX 玩轉雙屏誰更6?