SOURCE

console 命令行工具 X clear

                    
>
console
mapboxgl.accessToken = 'pk.eyJ1IjoibW9ob25nIiwiYSI6ImNrNGFsdjY5ZzA1NW4zbG14b2JoMnA5c3IifQ.1qVWFsyHW2wKThTgQg08SA';
const map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mohong/cktehvjff2bwn17s06a6nv6k5',
    center: [116.40355, 39.91737],
    zoom: 15
});

const selectedBuilings = {
  "type": "FeatureCollection",
  "features": []
}

const addHighlightLayer = (map) => {
  map.addSource('builidng-highlight', {
    'type': 'geojson',
    'data': selectedBuilings
  })
  map.addLayer({
    "id": "builidng-highlight",
    "type": "fill-extrusion",
    "source": "builidng-highlight",
    "minzoom": 15,
    "paint": {
        "fill-extrusion-color": "hsl(90, 67%, 85%)",
        "fill-extrusion-height": [
            "get",
            "height"
        ],
        "fill-extrusion-opacity": 1.0
    }
  }, 'building-extrusion')
}

const createPopup = (lngLat, content) => {
  new mapboxgl.Popup({offset: [0, -20]}).setLngLat(lngLat).setText(content).addTo(map)
}

map.on('load', () => {
  addHighlightLayer(map)
})

map.on('click', (e) => {
  const bbox = [
    [e.point.x - 5, e.point.y - 5],
    [e.point.x + 5, e.point.y + 5]
  ];
  const selectedFeatures = map.queryRenderedFeatures(bbox, {
    layers: ['building-extrusion']
  });
  selectedBuilings.features = selectedFeatures
  map.getSource('builidng-highlight').setData(selectedBuilings)

  if (selectedFeatures.length > 0) {
    createPopup(e.lngLat, '无信息')
  }
})
<div id='map'></div>
html,body {
    padding: 0;
    margin: 0;
    height: 100%;
}
#map {
    width: 100%;
    height: 100%;
}

本项目引用的自定义外部资源