console
mapboxgl.accessToken = 'pk.eyJ1IjoibGVla2U5OCIsImEiOiJjazNzZGxlMHQwNjAxM21tdHh3NmJyOWJ0In0.nhCMjub5PhQqzFOSNB9uMw';
const map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/light-v10',
center: [116.018446, 37.676622],
zoom: 6
});
const layerList = document.getElementById('menu');
const inputs = layerList.getElementsByTagName('input');
for (const input of inputs) {
input.onclick = (layer) => {
const layerId = layer.target.id;
map.setStyle('mapbox://styles/mapbox/' + layerId);
};
}
map.on('load', () => {
map.loadImage('https://kydl.kyslb.com/bjmap/map-example/asset/mass2.png', (err, img) => {
console.info('1234', err)
if (err) {
console.log('err' + item.imgName, err)
return
}
if (!map.hasImage(item.imgName)) {
map.addImage(item.imgName, img)
}
console.log('err' + item.imgName, err)
map.addLayer({
id: 'this.layerId',
source: 'this.sourceId',
type: 'symbol',
layout: {
'icon-image': ['get', 'icon'],
'icon-rotate': ['get', 'bearing'],
'icon-size': ['get', 'iconsize'],
'symbol-sort-key': ['get', 'style'],
'symbol-z-order': 'auto',
'icon-anchor': ['get', 'iconanchor'],
'icon-rotation-alignment': 'map',
'icon-allow-overlap': this.isBump,
'icon-ignore-placement': this.isBump,
'text-field': ['get', 'textField'],
'text-font': ['Open Sans Bold'],
'text-size': ['get', 'textSize'],
'text-justify': 'center',
'text-allow-overlap': this.isBump,
'text-ignore-placement': this.isBump,
'text-offset': ['get', 'textOffset'],
'text-line-height': ['get', 'textLineHeight']
},
paint: {
'text-color': ['get', 'textColor'],
'text-opacity': ['get', 'textOpacity']
}
})
})
})
<div id="map"></div>
<div id="menu">
<input id="satellite-v9" type="radio" name="rtoggle" value="satellite">
<label for="satellite-v9">satellite</label>
<input id="light-v10" type="radio" name="rtoggle" value="light" checked="checked">
<label for="light-v10">light</label>
<input id="dark-v10" type="radio" name="rtoggle" value="dark">
<label for="dark-v10">dark</label>
<input id="streets-v11" type="radio" name="rtoggle" value="streets">
<label for="streets-v11">streets</label>
<input id="outdoors-v11" type="radio" name="rtoggle" value="outdoors">
<label for="outdoors-v11">outdoors</label>
</div>
body { margin: 0; padding: 0; }
#map { position: absolute; top: 0; bottom: 0; width: 100%; }
#menu {
position: absolute;
background: #efefef;
padding: 10px;
font-family: 'Open Sans', sans-serif;
}