{
let container = html`<div style='height:800px;' />`
yield container
const map = (container.value = new maplibregl.Map({
boxZoom: true,
pitch: 0,
bearing: 0,
container,
center: [-68.1336229, -16.4955455],
zoom: 15,
style: "https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json",
scrollZoom: true
}))
map.on("load", function () {
map.addSource("places", places.source)
map.addLayer(places.layer)
map.addSource('labels', labels.source)
map.addLayer(labels.layer)
map.addLayer(placesFake)
})
const mouseenter = function(e) {
map.getCanvas().style.cursor = "pointer";
const poi = e.features[0]
popup.
setHTML(`
<div style="font-weight: bold"; margin: 0px>${poi.properties.name}</div>
<div style="font-size: .8em; opacity: .5; margin: 0px">${poi.properties.category_main}</div>`).
setLngLat(poi.geometry.coordinates).
addTo(map)
}
const mouseleave = function() {
map.getCanvas().style.cursor = "";
popup.remove()
}
const popup = new maplibregl.Popup({
closeButton: false,
closeOnClick: false
})
map.on("mouseenter", "placesfake", mouseenter);
map.on("mouseleave", "placesfake", mouseleave);
map.addControl(new maplibregl.NavigationControl())
map.addControl(
new maplibregl.GeolocateControl({
positionOptions: {
enableHighAccuracy: true
},
showAccuracyCircle: false,
showUserLocation: true
}),
'top-right'
)
}