gpt4 book ai didi

javascript - 如何为传单弹出窗口设置特定位置

转载 作者:行者123 更新时间:2023-12-04 17:27:15 26 4
gpt4 key购买 nike

我一直在用 Leaflet 做一些映射,我对结果非常满意。

然而,只有一件小事一直困扰着我:

我有两个不同的圆圈,它们绑定(bind)了弹出窗口,并且根据我单击圆圈的位置,弹出窗口在不同的位置打开......

Image showing the map with popup at the top
Image showing the popup at a different position

这是一些 super 简单的示例代码。

const circle = new L.circle( [52.5, 13.35] ).addTo(map);
var popup = L.popup().setContent("hello");

我也试过 var popup = L.popup().setLatLng( [52.5, 13.35] ).setContent("hello");
那么是否有一种(最好)简单的方法可以使弹出框在圆圈的中间打开(或者将圆圈的中间作为“ anchor ”),这样无论我在哪里点击圆圈,弹出窗口总是会打开在同一个地方?

非常小,但希望有任何帮助,或对图书馆的指示,

谢谢!

最佳答案

让我引用 Leaflet documentation关于openPopup每个 L.Layer 的方法(包括每个 L.Circle )具有:

openPopup(<LatLng> latlng?)

Opens the bound popup at the specified latlng or at the default popup anchor if no latlng is passed.


因此,您可以:
const circle = new L.circle( [52.5, 13.35] ).bindPopup("hello").addTo(map);
circle.openPopup([52.5, 13.35]);
或者
const circle = new L.circle( [52.5, 13.35] ).bindPopup("hello").addTo(map);
circle.openPopup(circle.getLatLng());
或者
const circle = new L.circle( [52.5, 13.35] ).bindPopup("hello").addTo(map);
circle.on('click', function(ev) { circle.openPopup(circle.getLatLng()) });
甚至
const circle = new L.circle( [52.5, 13.35] ).bindPopup("hello").addTo(map);
circle.on('click', function(ev) { ev.target.openPopup(ev.target.getLatLng()) });
working example .

关于javascript - 如何为传单弹出窗口设置特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62468493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com