gpt4 book ai didi

javascript - 传单显示所有制造商的所有弹出窗口并保留在 map 中

转载 作者:搜寻专家 更新时间:2023-11-01 05:27:55 25 4
gpt4 key购买 nike

我指的是 Quick Start Guide - Leaflet - a JavaScript library for interactive maps在 map 上实现显示标记。

我想显示所有标记的所有弹出窗口,如果我点击 map ,它仍然保留弹出窗口。

瓶颈是

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

2.点击 map 时如何保留弹窗

因为我谷歌这个,我找不到解决方案。任何人都可以帮助我吗?

最佳答案

这是 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 &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);
});

关键点是:

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

关于javascript - 传单显示所有制造商的所有弹出窗口并保留在 map 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49360274/

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