uniapp地圖動(dòng)態(tài)展示多個(gè)markers瘾婿,callout自定義

uniapp nvue頁(yè)面 實(shí)現(xiàn)地圖上有多個(gè)makers恬惯,makers的callout自定義實(shí)現(xiàn)展示向拆,包含圖片文字和按鈕

在uni-app中使用nvue(Native View)頁(yè)面來(lái)實(shí)現(xiàn)地圖上的動(dòng)態(tài)標(biāo)記(Markers)以及自定義的callout(信息窗口),可以通過uni-app的<map>組件配合自定義的nvue視圖來(lái)完成宿崭。但需要注意的是亲铡,<map>組件在nvue中并不直接支持像H5或App-vue中那樣的詳細(xì)配置(如直接設(shè)置callout內(nèi)容)才写,因此需要一些變通的方法來(lái)實(shí)現(xiàn)葡兑。
下面是一個(gè)基本的步驟和思路,用于在nvue頁(yè)面的地圖上動(dòng)態(tài)展示多個(gè)Markers赞草,并為每個(gè)Marker實(shí)現(xiàn)自定義的callout:

  1. 使用<map>組件加載地圖
    首先讹堤,在nvue頁(yè)面中添加<map>組件,并設(shè)置必要的屬性如id厨疙、longitude洲守、latitude、scale等。

html

<map id="map" longitude="116.397428" latitude="39.90923" scale="14" @markertap="onMarkerTap"></map>
  1. 動(dòng)態(tài)添加Markers
    使用uni.createMapContext獲取地圖上下文梗醇,然后使用addMarkers方法動(dòng)態(tài)添加Markers知允。Markers的數(shù)據(jù)中可以包含自定義的ID或其他用于區(qū)分的信息。

javascript

let markers = [{  
    id: 1,  
    latitude: 39.90403,  
    longitude: 116.40739,  
    width: 50,  
    height: 50,  
    iconPath: '/static/location.png', // marker圖標(biāo)路徑  
    // 其他自定義字段  
}];  
  
let mapCtx = uni.createMapContext('map', this);  
mapCtx.addMarkers({  
    markers: markers  
});
  1. 實(shí)現(xiàn)自定義的Callout
    由于nvue的<map>組件不直接支持自定義callout叙谨,你需要自己實(shí)現(xiàn)這一功能温鸽。一個(gè)常見的做法是,在Marker被點(diǎn)擊時(shí)(監(jiān)聽markertap事件)手负,在Marker的位置上動(dòng)態(tài)顯示一個(gè)自定義的視圖(如使用<view>標(biāo)簽)涤垫,這個(gè)視圖可以包含圖片、文字和按鈕等元素竟终。
    javascript
methods: {  
    onMarkerTap(e) {  
        // 假設(shè)e.markerId是點(diǎn)擊的Marker的ID  
        let markerId = e.markerId;  
        // 根據(jù)markerId找到對(duì)應(yīng)的Marker數(shù)據(jù)(可能需要從數(shù)據(jù)列表中查找)  
        // ...  
  
        // 顯示自定義的callout  
        this.showCallout(e.latitude, e.longitude, markerData); // 假設(shè)markerData是包含要顯示信息的對(duì)象  
    },  
    showCallout(latitude, longitude, data) {  
        // 這里可以根據(jù)latitude和longitude計(jì)算callout的顯示位置  
        // 然后在頁(yè)面上動(dòng)態(tài)添加一個(gè)<view>來(lái)作為callout蝠猬,設(shè)置其位置、樣式和內(nèi)容  
        // 示例:  
        // this.$refs.calloutView.style.left = `${x}px`; // x是計(jì)算出的x坐標(biāo)  
        // this.$refs.calloutView.style.top = `${y}px`;  // y是計(jì)算出的y坐標(biāo)  
        // 注意:在nvue中可能需要使用其他方式來(lái)動(dòng)態(tài)設(shè)置樣式或位置  
    }  
}

注意:在nvue中统捶,由于不能直接操作DOM榆芦,因此不能像Vue.js那樣直接設(shè)置元素的樣式。你可能需要使用nvue提供的樣式綁定機(jī)制(如果有的話)或者通過改變數(shù)據(jù)來(lái)觸發(fā)nvue頁(yè)面的重新渲染喘鸟,從而間接改變?cè)氐奈恢没驑邮健?/p>

  1. 管理和隱藏Callout
    你還需要管理Callout的顯示和隱藏歧杏。例如,當(dāng)用戶點(diǎn)擊其他Marker或地圖的其他部分時(shí)迷守,可能需要隱藏當(dāng)前的Callout犬绒。這可以通過監(jiān)聽地圖的點(diǎn)擊事件(tap)和適當(dāng)?shù)臄?shù)據(jù)管理來(lái)實(shí)現(xiàn)。
    結(jié)論
    在nvue頁(yè)面中實(shí)現(xiàn)自定義的callout確實(shí)比在H5或App-vue中更復(fù)雜一些兑凿,因?yàn)閚vue的限制更多凯力。但是,通過上面的方法礼华,你可以達(dá)到在地圖上動(dòng)態(tài)展示多個(gè)Markers并為每個(gè)Marker實(shí)現(xiàn)自定義callout的效果咐鹤。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市圣絮,隨后出現(xiàn)的幾起案子祈惶,更是在濱河造成了極大的恐慌,老刑警劉巖扮匠,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捧请,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡棒搜,警方通過查閱死者的電腦和手機(jī)疹蛉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)力麸,“玉大人可款,你說我怎么就攤上這事育韩。” “怎么了闺鲸?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵筋讨,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我摸恍,道長(zhǎng)版仔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任误墓,我火速辦了婚禮蛮粮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谜慌。我一直安慰自己然想,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布欣范。 她就那樣靜靜地躺著变泄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恼琼。 梳的紋絲不亂的頭發(fā)上妨蛹,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音晴竞,去河邊找鬼蛙卤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛噩死,可吹牛的內(nèi)容都是我干的颤难。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼已维,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼行嗤!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起垛耳,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤栅屏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后堂鲜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體栈雳,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年泡嘴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了甫恩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡酌予,死狀恐怖磺箕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抛虫,我是刑警寧澤松靡,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站建椰,受9級(jí)特大地震影響雕欺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棉姐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一屠列、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伞矩,春花似錦笛洛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至湿诊,卻和暖如春狱杰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背厅须。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工仿畸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人朗和。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓颁湖,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親例隆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子甥捺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

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