diff --git a/examples/terrain/src/app.tsx b/examples/terrain/src/app.tsx index ce1eeb05..e1cb360c 100644 --- a/examples/terrain/src/app.tsx +++ b/examples/terrain/src/app.tsx @@ -29,6 +29,7 @@ export default function App() { bearing: 80, pitch: 80 }} + maxPitch={85} mapStyle="mapbox://styles/mapbox/satellite-v9" mapboxAccessToken={TOKEN} terrain={{source: 'mapbox-dem', exaggeration: 1.5}} diff --git a/src/components/layer.ts b/src/components/layer.ts index 58c0666e..5c17c224 100644 --- a/src/components/layer.ts +++ b/src/components/layer.ts @@ -61,7 +61,7 @@ function updateLayer(map: MapboxMap, id: string, props: LayerProps, prevProps: L function createLayer(map: MapboxMap, id: string, props: LayerProps) { // @ts-ignore - if (map.style && map.style._loaded && map.getSource(props.source)) { + if (map.style && map.style._loaded && (!('source' in props) || map.getSource(props.source))) { const options: LayerProps = {...props, id}; delete options.beforeId; @@ -90,7 +90,7 @@ function Layer(props: LayerProps) { return () => { map.off('styledata', forceUpdate); // @ts-ignore - if (map.style && map.style._loaded) { + if (map.style && map.style._loaded && map.getLayer(id)) { map.removeLayer(id); } };