В настоящее время у меня есть приложение mapbox, которое отображает всплывающее окно для каждого маркера после нажатия, и это здорово.Однако я хочу, чтобы информация во всплывающем окне отправлялась в отдельный раздел внутри приложения, поэтому данные отображаются в нижней части экрана, а не во всплывающем окне на карте.Таким образом, это выглядит примерно так, как показано на рисунке ниже, но вместо этого внизу страницы и содержит только необходимые данные, такие как имя, описание и т. Д. Код, который я использую для создания маркеров, используется ниже.
До сих пор я пытался редактировать CSS всплывающего окна mapbox, но оно перезаписывается только CSS-файлом mapbox по умолчанию, и даже если это не так, оно просто слишком неуклюже и не дает желаемого эффекта.Я также знаю, что это можно сделать с помощью Leaflet, но это не то, что я хочу использовать, так что это не вариант для меня.
for(var i = 0; i < currentArray.length ; i++){
var el = document.createElement('div');
var markerHeight = 50, markerRadius = 10, linearOffset = 25;
el.className = 'marker2';
new mapboxgl.Marker(el)
.setLngLat([currentArray[i].lng, currentArray[i].lat])
.addTo(map);
new mapboxgl.Marker(el)
.setLngLat([currentArray[i].lng, currentArray[i].lat])
.setPopup(new mapboxgl.Popup({ offset: 25, closeOnClick:true})
.setHTML(
`<div id = "popup-container">
<h3>${currentArray[i].name}</h3>
<p>${currentArray[i].venue}</p>
</div>`
)
)
.addTo(map);
}
callbackEventbrite(function(result){
console.log("env", result)
//var geo = GeoJSON.parse(result.events,{Point: [result.location.latitude, result.location.longitude]});
//console.log(geo);
const keys = Object.values(result);
for(const key of keys){
geojson = {
type: 'featureCollection',
features: [{
type: 'feature',
geometry: {
type: 'Point',
coordinates: [key.venue.longitude, key.venue.latitude]
}
}]
}
eventInfo.push(
{"longitude": key.venue.longitude , "latitude": key.venue.latitude , "name": key.name.text, "venue": key.venue.name, "date": key.start.local, "category": key.category_id}
);
}
});