我引用Quick Start Guide - Leaflet - a JavaScript library for interactive maps在地图上实现show marker。
我想显示所有标记的所有弹出窗口,如果我点击地图,它仍会保留弹出窗口。
bottleNeck是
1.如何更改代码以显示标记的多个弹出窗口
2.如果点击地图,如何保留弹出窗口
因为我谷歌这个,我找不到解决方案。 有人可以帮帮我吗?
答案 0 :(得分:5)
这是Leaflet快速入门教程的修改版本。 它添加了三个带有各自弹出窗口的标记,并保持打开状态:
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 © <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);
});
关键点是:
autoClose: false
配置弹出图层(=&gt;打开另一个弹出框时弹出窗口未关闭)和closeOnClick: false
(=&gt;当地图为时,弹出窗口未关闭点击)。