????????功能需求是在地圖上添加makers,但是就算縮放成最大層級(jí),地圖上還是會(huì)有那么一坨圖標(biāo),看起來(lái)就很丑。。。
? ? ? ? 在官方看了文檔只有監(jiān)聽(tīng)地圖視野移動(dòng)的
?只用拖動(dòng)地圖時(shí)才會(huì)觸發(fā)。我也沒(méi)找到官方能監(jiān)聽(tīng)地圖縮放的api所以只能用一個(gè)蠢方法去實(shí)現(xiàn)了。
首先獲取地圖對(duì)象的上下文,然后在data里復(fù)制。寫(xiě)一個(gè)定時(shí)器每500毫秒觸發(fā)一次。地圖對(duì)象有個(gè)getScale方法可以獲取當(dāng)前層級(jí)。
let _this=this
?? ??? ??? ??? ?let mapContext = uni.createMapContext("map", this);
?? ??? ??? ??? ?this.timer=setInterval(function(){
?? ??? ??? ??? ??? ?let scale= mapContext.getScale({
?? ??? ??? ??? ??? ??? ?success(res) {
?? ??? ??? ??? ??? ??? ??? ?_this.zoom=res.scale
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?})
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ?},500)????????????????????????????????
之后在watch里監(jiān)聽(tīng)這個(gè)zoom層級(jí),然后聲明一個(gè)值作為makers是否顯示的判斷,比如我寫(xiě)的是地圖放大到16以上才會(huì)顯示?
watch:{
zoom(newVal,oldVal){
let i=this.showMakerZoom //這是我在data里聲明的縮放層級(jí) 這個(gè)i理解成16就行
if(newVal>=i&&oldVal<i){
this.addMakers() //如果新的縮放層級(jí)大于16并且舊的縮放層級(jí)小于16就觸發(fā)這個(gè)添加icon的方法
}else if(newVal<i&&oldVal>=i){
this.removerMakers() //如果新的縮放層級(jí)小于16并且舊的大于16就觸發(fā)刪除icon的方法
}
}
},
對(duì)了還有個(gè)微信小程序的不知道是bug還是官方故意留的。
?在微信開(kāi)發(fā)工具上如果刪除已經(jīng)添加的maker會(huì)變成這樣,
?正常放大添加 是沒(méi)有問(wèn)題的。 然后在真機(jī)上也是沒(méi)有問(wèn)題的文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-640358.html
如果有更好的解決方法歡迎私信文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-640358.html
到了這里,關(guān)于uniapp小程序地圖監(jiān)聽(tīng)縮放層級(jí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!