javascript - 如何生成几个不同的 MapBox 地图
问题描述
我正在尝试建立一个网站,用户在其中输入城市和场地,并且一堆场地在每个场地容器中加载地图。发生的情况是只有标记出现,只有列表上的最后一个地点显示实际地图,其他地图容器是空白的。
我试过的代码:
mapboxgl.accessToken = 'ACCESSTOKEN123';
let maps = {}, markers = {};
export function loadVenues(venues, container) {
container.innerHTML = "";
venues.forEach(venue => {
const {
name,
id,
lat,
lng
} = venue;
// ADDING VENUE
container.innerHTML += `
<div class="col">
<div class="venue" id="venue${id}">
<h3 class="card-title">${name}</h3>
<div class="map-content">
<div id=${id} class='venue-map'></div>
<button class="btn btn-secondary rounded-circle venue-point">
<img src="./style/images/icons8_next_page_100px.png" alt="">
</button>
</div>
</div>
</div>
`;
// MAKING MAP
maps = {
...maps,
["map" + id]: (new mapboxgl.Map({
container: id,
center: [lng, lat],
style: 'mapbox://styles/mapbox/dark-v10',
zoom: 15
}))
};
// MAKING MARKER
markers = {
...markers,
["marker" + id]: (new mapboxgl.Marker({
color: "#5B43EF",
})
.setLngLat([lng, lat])
.addTo(maps["map" + id]))
};
});
}
解决方案
你有一个 JSFiddle 或 JSbin 来测试这个吗?如果是这样,你能把它和你的问题一起贴在这里吗?似乎您的 forEach 循环可能存在问题。
推荐阅读
- sql - 添加导致 GROUP BY 错误的聚合列
- javascript - PHP 为 D3 生成 JSON
- outlook-redemption - 调用outlook redemption 64位
- c# - 在 C# 中返回一个对象
- installation - 在代理后面安装 Tensorflow 时遇到问题
- python - 使用数据驱动页面时从图例中删除最后一个字符串值
- pysnmp - pysnmp getcmd 超时不起作用
- javascript - 我在`data.filter`做错了什么
- python - 尝试将 python 与 photos.capture_image() 一起用于 Kairos 注册 API
- c# - 如何使用保存在类的构造函数中的模态对象并从不同的方法调用它?