Javascript 如何设置单张弹出窗口的特定位置
我用传单做了一些绘图,我对结果非常满意 然而,有一件小事一直困扰着我: 我有两个不同的圆圈,它们绑定了弹出窗口,根据我点击圆圈的位置,弹出窗口会在不同的位置打开 下面是一些超级简单的示例代码Javascript 如何设置单张弹出窗口的特定位置,javascript,leaflet,Javascript,Leaflet,我用传单做了一些绘图,我对结果非常满意 然而,有一件小事一直困扰着我: 我有两个不同的圆圈,它们绑定了弹出窗口,根据我点击圆圈的位置,弹出窗口会在不同的位置打开 下面是一些超级简单的示例代码 const circle=新的L.circle([52.5,13.35])。添加到(地图); var popup=L.popup().setContent(“hello”); 我也尝试过var popup=L.popup().setLatLng([52.5,13.35]).setContent(“he
const circle=新的L.circle([52.5,13.35])。添加到(地图);
var popup=L.popup().setContent(“hello”);
我也尝试过var popup=L.popup().setLatLng([52.5,13.35]).setContent(“hello”)代码>
那么,有没有(最好)简单的方法使弹出框在圆的中间打开(或者将圆的中间作为“定位点”),以便我点击圆时弹出框总是在同一位置打开
非常轻微,但如有任何帮助或图书馆指示,将不胜感激
谢谢 让我引用一下每个L.Layer
(包括每个L.Circle
)都有的openPopup
方法:
openPopup(latlng?
在指定的latlng
处打开绑定弹出窗口,如果未传递latlng
,则在默认弹出窗口定位处打开绑定弹出窗口
因此,您可以:
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.on('click', function(ev) { ev.target.openPopup(ev.target.getLatLng()) });
参见a.我不明白为什么我们需要在弹出窗口中添加onclick
,因为它已经通过传单实现了。此答案的前2个选项将在创建时打开弹出窗口,这可能是不需要的。第三个添加了一个不必要的onclick
事件。难道没有更好的方法吗?这不是打开弹出窗口,而是在特定位置打开弹出窗口。这样做的方法是不要依赖默认行为。
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()) });