leaflet 列表查詢popup與地圖popup

項目中地圖布局如下许帐。要實現(xiàn)點擊右側(cè)列表中某一項時,在地圖中出現(xiàn)popup。


image.png

列表查詢實現(xiàn)地圖popup

在leaflet中以geojosn加載的圖層排霉,其實第個幾何體就是一個圖層,一個geojson文件創(chuàng)建的其實是包含各個幾何體圖層的FeatureGroup民轴。因此攻柠,當(dāng)點擊右側(cè)列表時,獲取所點擊的項的id后裸,然后在地圖中獲取map._layers瑰钮,在layers中查詢滿足條件的layer,然后在layer中可以:

  • 獲取圖層當(dāng)前的popup對象:layer.getPopup()
  • 獲取圖層當(dāng)前的popup內(nèi)容:layer.getPopup().getContent()
  • 設(shè)置圖層的popup內(nèi)容:layer.setPopupContent(response.popupContent);
  • 打開popup:layer.openPopup(layer._latlng);
    在這里定義了函數(shù)showStationPopup微驶,用于在地圖中打開popup:
function showSationPopup(stationId, layer) {
    if (!layer.getPopup().getContent()) {
        initStationPopupContent(stationId, layer).then(function (response) {
            layer.setPopupContent(response.popupContent);
            layer.openPopup(layer._latlng);
        });
    } else {
        layer.openPopup(layer._latlng);
    }
}

由于在geojson創(chuàng)建圖層時浪谴,里面的onEachFeature會全部調(diào)用一次,所以為提高首次數(shù)據(jù)加載速度,把對每個popup內(nèi)容的獲取放到了打開popup時苟耻。當(dāng)要打開popup時篇恒,首先判斷內(nèi)容是否為空,若為空則進(jìn)行異步數(shù)據(jù)請求梁呈。
異步數(shù)據(jù)請求采用了axios婚度。創(chuàng)建請求,并對請求的響應(yīng)體response進(jìn)行數(shù)據(jù)處理官卡,如添加屬性等蝗茁,在這里是添加了response.popupContent。然后返回promise寻咒。

image.png

這樣當(dāng)請求完成后哮翘,就會在then中獲取response中的popup的內(nèi)容,賦給popup毛秘,layer.setPopupContent(response.popupContent);

地圖點擊出現(xiàn)popup

這里可能存在問題饭寺,后面再改進(jìn)。

layer.on('popupopen', function (e) {
            //console.log("事件信息");
            //console.log(e);
            _map.flyTo([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], 17, {
                animate: true,
                duration: 0.5,
                easeLinearity: 1.0,
                maxZoom: 17
            });
            showSationPopup(Id, layer);
        });
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末叫挟,一起剝皮案震驚了整個濱河市艰匙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抹恳,老刑警劉巖员凝,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異奋献,居然都是意外死亡健霹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門瓶蚂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來糖埋,“玉大人,你說我怎么就攤上這事窃这⊥穑” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵杭攻,是天一觀的道長洒试。 經(jīng)常有香客問我,道長朴上,這世上最難降的妖魔是什么垒棋? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮痪宰,結(jié)果婚禮上叼架,老公的妹妹穿的比我還像新娘畔裕。我一直安慰自己,他們只是感情好乖订,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布扮饶。 她就那樣靜靜地躺著,像睡著了一般乍构。 火紅的嫁衣襯著肌膚如雪甜无。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天哥遮,我揣著相機與錄音岂丘,去河邊找鬼。 笑死眠饮,一個胖子當(dāng)著我的面吹牛奥帘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仪召,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼寨蹋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了扔茅?” 一聲冷哼從身側(cè)響起已旧,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎召娜,沒想到半個月后运褪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡萤晴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了胁后。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片店读。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖攀芯,靈堂內(nèi)的尸體忽然破棺而出屯断,到底是詐尸還是另有隱情,我是刑警寧澤侣诺,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布殖演,位于F島的核電站,受9級特大地震影響年鸳,放射性物質(zhì)發(fā)生泄漏趴久。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一搔确、第九天 我趴在偏房一處隱蔽的房頂上張望彼棍。 院中可真熱鬧灭忠,春花似錦、人聲如沸座硕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽华匾。三九已至映琳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蜘拉,已是汗流浹背萨西。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诸尽,地道東北人原杂。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像您机,于是被迫代替她去往敵國和親穿肄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344