繁体   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