簡體   English   中英

在標記底部打開傳單彈出窗口

[英]Open Leaflet Popup at bottom of marker

我在我的地圖上放置了幾個標記並向它們添加了彈出窗口。 以下代碼在循環中執行並且工作正常:

L.marker([
    item.Lat,
    item.Long
]).bindPopup(item.count + ' projects').addTo(map);

單擊標記時會顯示標記並打開彈出窗口。 但是,彈出窗口始終在標記的頂部打開。 有沒有辦法在標記的底部(或任何一側)打開? Leaflet 文檔中的彈出選項似乎沒有提供這樣做的選項。

您必須為標記提供自定義圖標。 您可以使用相同的圖像,但您必須調整 popupAnchor 屬性才能做到這一點。 請參閱參考http://leafletjs.com/reference.html#iconhttp://leafletjs.com/examples/custom-icons.html

在您的情況下,您必須這樣做(考慮到默認圖標是 25 x 41 像素,iconAnchor 可能是 12 x 40)

var yourIcon = L.icon({ popupAnchor: [0,0] });
var marker= L.marker([item.Lat, item.Long],{icon: yourIcon})

並且彈出窗口將在與圖標錨定的位置完全相同的位置打開。

好吧,所以我一直在努力自己弄清楚這一點,但我已經發現將位置設置為相對將使彈出窗口出現在標記下方,

.leaflet-popup {
    position: relative;
    text-align: center;
}

您可能還想旋轉彈出窗口的尖端。

.leaflet-popup-tip-container {
width: 40px;
height: 20px;
position: relative;
left: 50%;
top: -117px;
margin-left: -20px;
overflow: hidden;
pointer-events: none;
transform: rotate(180deg);
}

沒有選擇...

但是,如果您的目的是在不移動地圖的情況下顯示可見的彈出窗口,您可以查看這個 Leaflet 插件: http : //erictheise.github.io/rrose/

如果標記太北,它將從標記向南打開彈出窗口......

您可以更改錨點,但內置代碼會根據地圖的可見窗口確定彈出窗口的顯示位置。

您可以做的是點擊標記並使用自定義代碼繪制自己的彈出窗口...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM