map.setTerrain is not a function

1、在这里插入图片描述

一般出现这个报错就是 mapbox版本过低,地形是v2后的版本才有地形
我用的是2.4.1版本

<link href="https://api.mapbox.com/mapbox-gl-js/v2.4.1/mapbox-gl.css" rel="stylesheet">
	<script src="https://api.mapbox.com/mapbox-gl-js/v2.4.1/mapbox-gl.js"></script>

地形代码 封装好的 ,把封装好的myTerrain()方法放到监听事件里边

function myTerrain(){
      map.addSource("terrain-rgb", {
          "type": "raster-dem",
          "tileSize": 256,
          "tiles": [
              "mapbox://styles/mapbox-map-design/ckhqrf2tz0dt119ny6azh975y"
          ],
      });
      map.setTerrain({ 'source': 'terrain-rgb', 'exaggeration': 1 });   //地形
        map.addLayer({
            "id": "terrain-rgb",
            "type": "hillshade",
            "source": "terrain-rgb",   //山影
            "minzoom": 1,
            "paint": {
                "hillshade-shadow-color": "hsl(0, 43%, 27%)",
                "hillshade-highlight-color": "hsl(73, 23%, 53%)",
                "hillshade-exaggeration": 0.1,
            }
        });
  }
  map.on('style.load', function() {
        map.addLayer(customLayer, 'waterway-label');
       
       myTerrain();
});

Guess you like

Origin blog.csdn.net/qq_48203828/article/details/120206121