Map 传单.js:在页面加载时打开所有弹出气泡
我正试图从mobile.js文档中了解如何在显示页面时打开多个弹出窗口。例如,如果一个有三个标记(每个标记代表一座建筑),则每个标记都会立即打开其弹出窗口 隐晦地说: “使用Map#openPopup打开弹出窗口,同时确保一次只打开一个弹出窗口(建议使用),或者使用Map#addLayer打开任意数量的弹出窗口。” 但是 没有给出如何实现这一目标的提示Map 传单.js:在页面加载时打开所有弹出气泡,map,cloudmade,Map,Cloudmade,我正试图从mobile.js文档中了解如何在显示页面时打开多个弹出窗口。例如,如果一个有三个标记(每个标记代表一座建筑),则每个标记都会立即打开其弹出窗口 隐晦地说: “使用Map#openPopup打开弹出窗口,同时确保一次只打开一个弹出窗口(建议使用),或者使用Map#addLayer打开任意数量的弹出窗口。” 但是 没有给出如何实现这一目标的提示 有人能澄清一下这是否可行,并给出一些提示吗?您必须将弹出窗口添加为图层。 请尝试以下示例代码: var popupLocation1 = n
有人能澄清一下这是否可行,并给出一些提示吗?您必须将弹出窗口添加为图层。 请尝试以下示例代码:
var popupLocation1 = new L.LatLng(51.5, -0.09);
var popupLocation2 = new L.LatLng(51.51, -0.08);
var popupContent1 = '<p>Hello world!<br />This is a nice popup.</p>',
popup1 = new L.Popup();
popup1.setLatLng(popupLocation1);
popup1.setContent(popupContent1);
var popupContent2 = '<p>Hello world!<br />This is a nice popup.</p>',
popup2 = new L.Popup();
popup2.setLatLng(popupLocation2);
popup2.setContent(popupContent2);
map.addLayer(popup1).addLayer(popup2);
var popupLocation1=新L.LatLng(51.5,-0.09);
var popupLocation2=新L.LatLng(51.51,-0.08);
var popupContent1='你好,世界
这是一个很好的弹出窗口。',
popup1=新的L.Popup();
popup1.setLatLng(popupLocation1);
popup1.setContent(popupContent1);
var popupContent2='你好,世界
这是一个很好的弹出窗口。',
popup2=新的L.Popup();
popup2.setLatLng(popupLocation2);
popup2.setContent(popupContent2);
addLayer(popup1).addLayer(popup2);
例如:
在此处找到:triky解决方案是从打开的地图对象中删除弹出链接:
map.on('popupopen', function (e) {
delete map._popup;
});
在最新版本中,有一个自动关闭选项 要同时打开标记和弹出窗口,而不显式添加图层,请执行以下操作:
var popup1 = new L.Popup({'autoClose':false});
popup1.setLatLng([53.55375, 9.96871]);
popup1.setContent('First popup');
var popup2 = new L.Popup({'autoClose':false});
popup2.setLatLng([53.552046, 9.9132]);
popup2.setContent('Second popup');
L.marker([53.55375, 9.96871]).addTo(myMap)
.bindPopup(popup1).openPopup();
L.marker([53.552046, 9.9132]).addTo(myMap)
.bindPopup(popup2).openPopup();
使用自动关闭选项非常好-我非常欣赏这个例子。我认为没有办法让图标和弹出窗口都出现在那里,对吗?嗨,美食,我不知道。试着在新的官方传单组中发布:下面的答案使用班级扩展是一个更好的方法,应该被接受answer@masterchief我不同意,由于openPopup实现的变化,下面的扩展破坏了togglePopup方法。效果很好,然而,我不得不用
L.Popup
更改L.Popup
。你能解释一下这段代码将实现什么功能吗?如果您能解释一下,我将不胜感激。我编辑了我的答案。来自创建者:“您可以”L.Class.Extend“默认的L.Map类,定义一个新的openPopup方法。这个新方法将是默认方法的简单复制粘贴,除了当前弹出窗口关闭的部分(只需注释该行)再次感谢这一点,我是Javascript新手,这为调查/学习开辟了一条新途径,这将如何影响将来切换/关闭弹出窗口?
var popup1 = new L.Popup({'autoClose':false});
popup1.setLatLng([53.55375, 9.96871]);
popup1.setContent('First popup');
var popup2 = new L.Popup({'autoClose':false});
popup2.setLatLng([53.552046, 9.9132]);
popup2.setContent('Second popup');
L.marker([53.55375, 9.96871]).addTo(myMap)
.bindPopup(popup1).openPopup();
L.marker([53.552046, 9.9132]).addTo(myMap)
.bindPopup(popup2).openPopup();
marker.addTo(myMap).bindPopup('Hello popup', {autoClose:false}).openPopup();