Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 传单显示所有制造商的所有弹出窗口,并保留在地图中_Javascript_Leaflet - Fatal编程技术网

Javascript 传单显示所有制造商的所有弹出窗口,并保留在地图中

Javascript 传单显示所有制造商的所有弹出窗口,并保留在地图中,javascript,leaflet,Javascript,Leaflet,我指的是在地图上实现显示标记 我想显示所有标记的所有弹出窗口,如果我单击地图,它仍然保留弹出窗口 瓶颈是 1.如何更改代码以显示标记的多个弹出窗口 2.如果我点击地图,如何保持弹出窗口 因为我用谷歌搜索这个,我找不到解决方案。 有人能帮我吗?这是经过修改的传单快速入门教程。 它添加了三个带有各自弹出窗口的标记,并保持打开状态: var mymap = L.map('mapid').setView([51.505, -0.09], 13); L.tileLayer('https://api.ti

我指的是在地图上实现显示标记

我想显示所有标记的所有弹出窗口,如果我单击地图,它仍然保留弹出窗口

瓶颈是

1.如何更改代码以显示标记的多个弹出窗口

2.如果我点击地图,如何保持弹出窗口

因为我用谷歌搜索这个,我找不到解决方案。
有人能帮我吗?

这是经过修改的传单快速入门教程。 它添加了三个带有各自弹出窗口的标记,并保持打开状态:

var mymap = L.map('mapid').setView([51.505, -0.09], 13);

L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
    maxZoom: 18,
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
        '<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
        'Imagery © <a href="http://mapbox.com">Mapbox</a>',
    id: 'mapbox.streets'
}).addTo(mymap);

var markers = [
    {pos: [51.51, -0.10], popup: "This is the popup for marker #1"},
    {pos: [51.50, -0.09], popup: "This is the popup for marker #2"},
    {pos: [51.49, -0.08], popup: "This is the popup for marker #3"}];
markers.forEach(function (obj) {
    var m = L.marker(obj.pos).addTo(mymap),
        p = new L.Popup({ autoClose: false, closeOnClick: false })
                .setContent(obj.popup)
                .setLatLng(obj.pos);
    m.bindPopup(p);
});
var mymap=L.map('mapid').setView([51.505,-0.09],13);
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyj1ijoibwwwwym94iiwiysi6imnpejy4nxvycta2emycxbdhrqcmz3n3gifq.rjfig214ariislb6b5aw'{
maxZoom:18,
属性:“映射数据©;贡献者”+
', ' +
“图像”,
id:“地图盒。街道”
}).addTo(mymap);
变量标记=[
{pos:[51.51,-0.10],弹出:“这是标记#1}的弹出窗口,
{pos:[51.50,-0.09],弹出:“这是标记#2”的弹出窗口,
{pos:[51.49,-0.08],弹出:“这是标记#3}的弹出窗口”;
markers.forEach(功能(obj){
var m=L.标记(对象位置).addTo(mymap),
p=新的L.Popup({autoClose:false,closeOnClick:false})
.setContent(对象弹出窗口)
.setLatLng(目标位置);
m、 结缔组织(p);
});
重点是:

  • 每个标记都需要自己的弹出层
  • 弹出层需要配置为
    autoClose:false
    (=>打开另一个弹出窗口时弹出窗口不会关闭)和
    closeOnClick:false
    (=>单击地图时弹出窗口不会关闭)

需要将bindPopup()行更改为
m.bindPopup(p).openPopup()使其工作。