@macrostrat/map-interface 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/{container.72611900.js → container.d2e83c46.js} +4 -4
- package/dist/cjs/{container.72611900.js.map → container.d2e83c46.js.map} +1 -1
- package/dist/cjs/{context-panel.8c4b009c.js → context-panel.3061a63e.js} +2 -2
- package/dist/cjs/{context-panel.8c4b009c.js.map → context-panel.3061a63e.js.map} +1 -1
- package/dist/cjs/{controls.7ce3e95c.js → controls.5fcf8a91.js} +2 -2
- package/dist/cjs/{controls.7ce3e95c.js.map → controls.5fcf8a91.js.map} +1 -1
- package/dist/cjs/{dev.10ac2fb3.js → dev.e6613cda.js} +2 -2
- package/dist/cjs/{dev.10ac2fb3.js.map → dev.e6613cda.js.map} +1 -1
- package/dist/cjs/{header.b86c0710.js → header.af864bde.js} +2 -2
- package/dist/cjs/{header.b86c0710.js.map → header.af864bde.js.map} +1 -1
- package/dist/cjs/index.js +7 -7
- package/dist/cjs/{location-panel.42ca3200.js → location-panel.e33becf0.js} +4 -4
- package/dist/cjs/{location-panel.42ca3200.js.map → location-panel.e33becf0.js.map} +1 -1
- package/dist/cjs/{main.module.3dbc089f.css → main.module.13eb33f8.css} +10 -1
- package/dist/cjs/main.module.13eb33f8.css.map +1 -0
- package/dist/cjs/{main.module.92978d8b.css → main.module.e872989b.css} +2 -2
- package/dist/cjs/{main.module.92978d8b.css.map → main.module.e872989b.css.map} +1 -1
- package/dist/cjs/{main.module.f085a193.css → main.module.f57e27f2.css} +4 -4
- package/dist/cjs/main.module.f57e27f2.css.map +1 -0
- package/dist/cjs/{map-page.9c19b2a9.js → map-page.1e1970d8.js} +6 -6
- package/dist/cjs/{map-page.9c19b2a9.js.map → map-page.1e1970d8.js.map} +1 -1
- package/dist/cjs/map-view.61e50e18.js +178 -0
- package/dist/cjs/map-view.61e50e18.js.map +1 -0
- package/dist/esm/{container.16bde261.js → container.bba0b16c.js} +4 -4
- package/dist/esm/{container.16bde261.js.map → container.bba0b16c.js.map} +1 -1
- package/dist/esm/{context-panel.c288c5cd.js → context-panel.5dae1a8c.js} +2 -2
- package/dist/esm/{context-panel.c288c5cd.js.map → context-panel.5dae1a8c.js.map} +1 -1
- package/dist/esm/{controls.f757ce16.js → controls.42c750c4.js} +2 -2
- package/dist/esm/{controls.f757ce16.js.map → controls.42c750c4.js.map} +1 -1
- package/dist/esm/{dev.30b435dc.js → dev.b2d9d35d.js} +2 -2
- package/dist/esm/{dev.30b435dc.js.map → dev.b2d9d35d.js.map} +1 -1
- package/dist/esm/{header.b4aa864a.js → header.a73b6e0a.js} +2 -2
- package/dist/esm/{header.b4aa864a.js.map → header.a73b6e0a.js.map} +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +7 -7
- package/dist/esm/{location-panel.b56899ab.js → location-panel.c620b13b.js} +4 -4
- package/dist/esm/{location-panel.b56899ab.js.map → location-panel.c620b13b.js.map} +1 -1
- package/dist/esm/{map-page.93c11cef.js → map-page.1da2d70c.js} +6 -6
- package/dist/esm/{map-page.93c11cef.js.map → map-page.1da2d70c.js.map} +1 -1
- package/dist/esm/map-view.1fc6297b.js +172 -0
- package/dist/esm/map-view.1fc6297b.js.map +1 -0
- package/dist/node/{container.abd6f0d2.js → container.053f798f.js} +2 -2
- package/dist/node/{container.abd6f0d2.js.map → container.053f798f.js.map} +1 -1
- package/dist/node/{context-panel.7c2f42c9.js → context-panel.0ae29ecf.js} +2 -2
- package/dist/node/{context-panel.7c2f42c9.js.map → context-panel.0ae29ecf.js.map} +1 -1
- package/dist/node/{controls.ffb44307.js → controls.6ec8e9ac.js} +2 -2
- package/dist/node/{controls.ffb44307.js.map → controls.6ec8e9ac.js.map} +1 -1
- package/dist/node/{dev.ee1e89e9.js → dev.4640438e.js} +2 -2
- package/dist/node/{dev.ee1e89e9.js.map → dev.4640438e.js.map} +1 -1
- package/dist/node/{header.4b58753a.js → header.cf9ba12b.js} +2 -2
- package/dist/node/{header.4b58753a.js.map → header.cf9ba12b.js.map} +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/{location-panel.c39983e3.js → location-panel.2e422cc0.js} +2 -2
- package/dist/node/{location-panel.c39983e3.js.map → location-panel.2e422cc0.js.map} +1 -1
- package/dist/node/{main.module.ba3f4a78.css → main.module.3943144e.css} +2 -2
- package/dist/node/main.module.3943144e.css.map +1 -0
- package/dist/node/main.module.65e40c2e.css +2 -0
- package/dist/node/main.module.65e40c2e.css.map +1 -0
- package/dist/node/{main.module.61b261c8.css → main.module.8a9943af.css} +2 -2
- package/dist/node/main.module.8a9943af.css.map +1 -0
- package/dist/node/{map-page.cb4c713e.js → map-page.d0e099ab.js} +2 -2
- package/dist/node/{map-page.cb4c713e.js.map → map-page.d0e099ab.js.map} +1 -1
- package/dist/node/map-view.9dc96288.js +2 -0
- package/dist/node/map-view.9dc96288.js.map +1 -0
- package/package.json +3 -3
- package/src/container.ts +1 -1
- package/src/context-panel/main.module.sass +1 -1
- package/src/location-panel/main.module.sass +5 -0
- package/src/main.module.sass +2 -2
- package/src/{map-view/index.ts → map-view.ts} +51 -18
- package/dist/cjs/main.module.3dbc089f.css.map +0 -1
- package/dist/cjs/main.module.f085a193.css.map +0 -1
- package/dist/cjs/map-view.93363b41.js +0 -167
- package/dist/cjs/map-view.93363b41.js.map +0 -1
- package/dist/cjs/terrain.90f76b4e.js +0 -59
- package/dist/cjs/terrain.90f76b4e.js.map +0 -1
- package/dist/esm/map-view.a3fe6257.js +0 -161
- package/dist/esm/map-view.a3fe6257.js.map +0 -1
- package/dist/esm/terrain.f65cf7c5.js +0 -54
- package/dist/esm/terrain.f65cf7c5.js.map +0 -1
- package/dist/node/main.module.61b261c8.css.map +0 -1
- package/dist/node/main.module.89f269c7.css +0 -2
- package/dist/node/main.module.89f269c7.css.map +0 -1
- package/dist/node/main.module.ba3f4a78.css.map +0 -1
- package/dist/node/map-view.c6746dca.js +0 -2
- package/dist/node/map-view.c6746dca.js.map +0 -1
- package/dist/node/terrain.96ae432a.js +0 -2
- package/dist/node/terrain.96ae432a.js.map +0 -1
- package/src/map-view/terrain.ts +0 -63
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,Q,8C,Q,+C,Q,0C,Q,0C,Q,wC,I,E,Q,qB,S,E,C,E,O,G,E,U,C,E,O,C,C,C,Q,4B,Q,4B,Q,c,Q,a,Q,S,Q,gC,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,SEAiB,IAAA,IAAoB,uCAAA,QAAA,YAAwC,QAAQ,G,E,S,E,SDyB3E,AAAA,AAAA,EAAA,GAAM,MAAM,CAAC,EAAA","sources":["<anon>","packages/map-interface/src/map-view/index.ts","../../../../.yarn/berry/cache/@parcel-runtime-js-npm-2.13.3-f44fec8492-10c0.zip/node_modules/@parcel/runtime-js/lib/runtime-3d308760769ffbb1.js"],"sourcesContent":["require(\"./main.module.24615279.js\");\nrequire(\"./main.module.89f269c7.css\");\nrequire(\"./terrain.96ae432a.js\");\nrequire(\"./helpers.6bda171f.js\");\nrequire(\"./utils.dd92f725.js\");\nvar $guNmz$macrostrathyper = require(\"@macrostrat/hyper\");\nvar $guNmz$macrostratmapboxreact = require(\"@macrostrat/mapbox-react\");\nvar $guNmz$macrostratmapboxutils = require(\"@macrostrat/mapbox-utils\");\nvar $guNmz$classnames = require(\"classnames\");\nvar $guNmz$mapboxgl = require(\"mapbox-gl\");\nvar $guNmz$react = require(\"react\");\nrequire(\"mapbox-gl/dist/mapbox-gl.css\");\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequire94c2\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequire94c2\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\n\n\n\nvar $6ULxP = parcelRequire(\"6ULxP\");\nvar $70b40c0708e62eb4$exports = {};\n$70b40c0708e62eb4$exports = new URL(\"terrain.96ae432a.js\", \"file:\" + __filename).toString();\n\n\n\nvar $7CmOU = parcelRequire(\"7CmOU\");\n\n\nvar $R3my3 = parcelRequire(\"R3my3\");\nconst $e7dd196c7fa8f651$var$h = (0, ($parcel$interopDefault($guNmz$macrostrathyper))).styled((0, (/*@__PURE__*/$parcel$interopDefault($6ULxP))));\nfunction $e7dd196c7fa8f651$var$defaultInitializeMap(container, args = {}) {\n const { mapPosition: mapPosition, ...rest } = args;\n console.log(\"Initializing map (default)\", args);\n const map = new (0, ($parcel$interopDefault($guNmz$mapboxgl))).Map({\n container: container,\n maxZoom: 18,\n //maxTileCacheSize: 0,\n logoPosition: \"bottom-left\",\n trackResize: true,\n antialias: true,\n optimizeForTerrain: true,\n ...rest\n });\n // set initial map position\n if (mapPosition != null) (0, $guNmz$macrostratmapboxutils.setMapPosition)(map, mapPosition);\n //setMapPosition(map, mapPosition);\n return map;\n}\nconst $e7dd196c7fa8f651$var$defaultMapPosition = {\n camera: {\n lat: 34,\n lng: -120,\n altitude: 300000\n }\n};\nfunction $e7dd196c7fa8f651$export$ab1e7a67d6ec5ad8(props) {\n let { terrainSourceID: terrainSourceID } = props;\n const { enableTerrain: enableTerrain = true, style: style, mapPosition: mapPosition = $e7dd196c7fa8f651$var$defaultMapPosition, initializeMap: initializeMap = $e7dd196c7fa8f651$var$defaultInitializeMap, children: children, mapboxToken: mapboxToken, accessToken: // Deprecated\n accessToken, infoMarkerPosition: infoMarkerPosition, transformRequest: transformRequest, projection: projection, onMapLoaded: onMapLoaded = null, onStyleLoaded: onStyleLoaded = null, onMapMoved: onMapMoved = null, ...rest } = props;\n if (enableTerrain) terrainSourceID ?? (terrainSourceID = \"mapbox-3d-dem\");\n const _mapboxToken = mapboxToken ?? accessToken;\n if (_mapboxToken != null) (0, ($parcel$interopDefault($guNmz$mapboxgl))).accessToken = _mapboxToken;\n const dispatch = (0, $guNmz$macrostratmapboxreact.useMapDispatch)();\n let mapRef = (0, $guNmz$macrostratmapboxreact.useMapRef)();\n const ref = (0, $guNmz$react.useRef)();\n const parentRef = (0, $guNmz$react.useRef)();\n (0, $guNmz$react.useEffect)(()=>{\n if (style == null) return;\n let map = mapRef.current;\n if (map != null) {\n console.log(\"Setting style\", style);\n map.setStyle(style);\n } else {\n console.log(\"Initializing map\", style);\n const map = initializeMap(ref.current, {\n style: style,\n projection: projection,\n mapPosition: mapPosition,\n transformRequest: transformRequest,\n ...rest\n });\n dispatch({\n type: \"set-map\",\n payload: map\n });\n map.setPadding((0, $R3my3.getMapPadding)(ref, parentRef), {\n animate: false\n });\n onMapLoaded?.(map);\n }\n const loadCallback = ()=>{\n onStyleLoaded?.(map);\n dispatch({\n type: \"set-style-loaded\",\n payload: true\n });\n };\n map = mapRef.current;\n if (map.isStyleLoaded()) // Catch a race condition where the style is loaded before the callback is set\n loadCallback();\n map.on(\"style.load\", loadCallback);\n return ()=>{\n map.off(\"style.load\", loadCallback);\n };\n }, [\n style\n ]);\n const _computedMapPosition = (0, $guNmz$macrostratmapboxreact.useMapPosition)();\n const { mapUse3D: mapUse3D, mapIsRotated: mapIsRotated } = (0, $guNmz$macrostratmapboxutils.mapViewInfo)(_computedMapPosition);\n // Get map projection\n const _projection = mapRef.current?.getProjection()?.name ?? \"mercator\";\n const className = (0, ($parcel$interopDefault($guNmz$classnames)))({\n \"is-rotated\": mapIsRotated ?? false,\n \"is-3d-available\": mapUse3D ?? false\n }, `${_projection}-projection`);\n return $e7dd196c7fa8f651$var$h(\"div.map-view-container.main-view\", {\n ref: parentRef\n }, [\n $e7dd196c7fa8f651$var$h(\"div.mapbox-map#map\", {\n ref: ref,\n className: className\n }),\n $e7dd196c7fa8f651$var$h((0, $7CmOU.MapLoadingReporter), {\n ignoredSources: [\n \"elevationMarker\",\n \"crossSectionEndpoints\"\n ]\n }),\n $e7dd196c7fa8f651$var$h((0, $7CmOU.MapMovedReporter), {\n onMapMoved: onMapMoved\n }),\n $e7dd196c7fa8f651$var$h((0, $7CmOU.MapResizeManager), {\n containerRef: ref\n }),\n $e7dd196c7fa8f651$var$h((0, $7CmOU.MapPaddingManager), {\n containerRef: ref,\n parentRef: parentRef,\n infoMarkerPosition: infoMarkerPosition\n }),\n $e7dd196c7fa8f651$var$h($e7dd196c7fa8f651$export$cee395a8a2a00b29, {\n mapUse3D: mapUse3D,\n terrainSourceID: terrainSourceID\n }),\n children\n ]);\n}\nfunction $e7dd196c7fa8f651$export$cee395a8a2a00b29({ mapUse3D: mapUse3D, terrainSourceID: terrainSourceID }) {\n const mapRef = (0, $guNmz$macrostratmapboxreact.useMapRef)();\n (0, $guNmz$react.useEffect)(()=>{\n const map = mapRef.current;\n if (map == null) return;\n (0, $70b40c0708e62eb4$exports.enable3DTerrain)(map, mapUse3D, terrainSourceID);\n }, [\n mapRef.current,\n mapUse3D\n ]);\n return null;\n}\n\n\n//# sourceMappingURL=map-view.c6746dca.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport {\n useMapRef,\n useMapDispatch,\n useMapPosition,\n} from \"@macrostrat/mapbox-react\";\nimport {\n mapViewInfo,\n MapPosition,\n setMapPosition,\n} from \"@macrostrat/mapbox-utils\";\nimport classNames from \"classnames\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useEffect, useRef, useCallback } from \"react\";\nimport styles from \"../main.module.sass\";\nimport { enable3DTerrain } from \"./terrain\";\nimport {\n MapLoadingReporter,\n MapMovedReporter,\n MapPaddingManager,\n MapResizeManager,\n} from \"../helpers\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport { getMapPadding } from \"../utils\";\n\nconst h = hyper.styled(styles);\n\ntype MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, \"container\">;\n\nexport interface MapViewProps extends MapboxCoreOptions {\n showLineSymbols?: boolean;\n children?: React.ReactNode;\n mapboxToken?: string;\n // Deprecated\n accessToken?: string;\n terrainSourceID?: string;\n enableTerrain?: boolean;\n infoMarkerPosition?: mapboxgl.LngLatLike;\n mapPosition?: MapPosition;\n initializeMap?: (\n container: HTMLElement,\n args: MapboxOptionsExt\n ) => mapboxgl.Map;\n onMapLoaded?: (map: mapboxgl.Map) => void;\n onStyleLoaded?: (map: mapboxgl.Map) => void;\n onMapMoved?: (mapPosition: MapPosition, map: mapboxgl.Map) => void;\n}\n\nexport interface MapboxOptionsExt extends MapboxCoreOptions {\n mapPosition?: MapPosition;\n}\n\nfunction defaultInitializeMap(container, args: MapboxOptionsExt = {}) {\n const { mapPosition, ...rest } = args;\n console.log(\"Initializing map (default)\", args);\n\n const map = new mapboxgl.Map({\n container,\n maxZoom: 18,\n //maxTileCacheSize: 0,\n logoPosition: \"bottom-left\",\n trackResize: true,\n antialias: true,\n optimizeForTerrain: true,\n ...rest,\n });\n\n // set initial map position\n if (mapPosition != null) {\n setMapPosition(map, mapPosition);\n }\n\n //setMapPosition(map, mapPosition);\n return map;\n}\n\nconst defaultMapPosition: MapPosition = {\n camera: {\n lat: 34,\n lng: -120,\n altitude: 300000,\n },\n};\n\nexport function MapView(props: MapViewProps) {\n let { terrainSourceID } = props;\n const {\n enableTerrain = true,\n style,\n mapPosition = defaultMapPosition,\n initializeMap = defaultInitializeMap,\n children,\n mapboxToken,\n // Deprecated\n accessToken,\n infoMarkerPosition,\n transformRequest,\n projection,\n onMapLoaded = null,\n onStyleLoaded = null,\n onMapMoved = null,\n ...rest\n } = props;\n if (enableTerrain) {\n terrainSourceID ??= \"mapbox-3d-dem\";\n }\n\n const _mapboxToken = mapboxToken ?? accessToken;\n\n if (_mapboxToken != null) {\n mapboxgl.accessToken = _mapboxToken;\n }\n\n const dispatch = useMapDispatch();\n let mapRef = useMapRef();\n const ref = useRef<HTMLDivElement>();\n const parentRef = useRef<HTMLDivElement>();\n\n useEffect(() => {\n if (style == null) return;\n let map = mapRef.current;\n if (map != null) {\n console.log(\"Setting style\", style);\n map.setStyle(style);\n } else {\n console.log(\"Initializing map\", style);\n const map = initializeMap(ref.current, {\n style,\n projection,\n mapPosition,\n transformRequest,\n ...rest,\n });\n dispatch({ type: \"set-map\", payload: map });\n map.setPadding(getMapPadding(ref, parentRef), { animate: false });\n onMapLoaded?.(map);\n }\n\n const loadCallback = () => {\n onStyleLoaded?.(map);\n dispatch({ type: \"set-style-loaded\", payload: true });\n };\n\n map = mapRef.current;\n if (map.isStyleLoaded()) {\n // Catch a race condition where the style is loaded before the callback is set\n loadCallback();\n }\n map.on(\"style.load\", loadCallback);\n return () => {\n map.off(\"style.load\", loadCallback);\n };\n }, [style]);\n\n const _computedMapPosition = useMapPosition();\n const { mapUse3D, mapIsRotated } = mapViewInfo(_computedMapPosition);\n\n // Get map projection\n const _projection = mapRef.current?.getProjection()?.name ?? \"mercator\";\n\n const className = classNames(\n {\n \"is-rotated\": mapIsRotated ?? false,\n \"is-3d-available\": mapUse3D ?? false,\n },\n `${_projection}-projection`\n );\n\n return h(\"div.map-view-container.main-view\", { ref: parentRef }, [\n h(\"div.mapbox-map#map\", { ref, className }),\n h(MapLoadingReporter, {\n ignoredSources: [\"elevationMarker\", \"crossSectionEndpoints\"],\n }),\n h(MapMovedReporter, { onMapMoved }),\n h(MapResizeManager, { containerRef: ref }),\n h(MapPaddingManager, { containerRef: ref, parentRef, infoMarkerPosition }),\n h(MapTerrainManager, { mapUse3D, terrainSourceID }),\n children,\n ]);\n}\n\nexport function MapTerrainManager({\n mapUse3D,\n terrainSourceID,\n}: {\n mapUse3D?: boolean;\n terrainSourceID?: string;\n}) {\n const mapRef = useMapRef();\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n enable3DTerrain(map, mapUse3D, terrainSourceID);\n }, [mapRef.current, mapUse3D]);\n return null;\n}\n","module.exports = new __parcel__URL__(\"terrain.96ae432a.js\").toString();"],"names":["require","$guNmz$macrostrathyper","$parcel$interopDefault","a","__esModule","default","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$6ULxP","URL","__filename","toString","styled"],"version":3,"file":"map-view.c6746dca.js.map","sourceRoot":"../../../../"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"","sources":["packages/map-interface/src/map-view/terrain.ts"],"sourcesContent":["// We should merge this with code in @macrostrat/mapbox-react/src/terrain.ts:\n\nexport function enable3DTerrain(\n map,\n shouldEnable: boolean,\n sourceID: string | null = null\n) {\n if (!map.style?._loaded) {\n map.once(\"style.load\", () => {\n enable3DTerrain(map, shouldEnable, sourceID);\n });\n return;\n }\n\n const currentTerrainSource = getTerrainSourceID(map);\n let demSourceID = sourceID ?? currentTerrainSource ?? \"mapbox-dem\";\n\n console.log(\"Enabling 3D terrain with source\", demSourceID);\n\n // Enable or disable terrain depending on our current desires...\n const currentTerrain = map.getTerrain();\n\n if (!shouldEnable) {\n if (currentTerrain != null) map.setTerrain(null);\n return;\n }\n if (currentTerrain != null) return;\n\n // Add a DEM source if one is not found already.\n if (map.getSource(demSourceID) == null) {\n map.addSource(demSourceID, {\n type: \"raster-dem\",\n url: \"mapbox://mapbox.mapbox-terrain-dem-v1\",\n tileSize: 512,\n maxzoom: 14,\n });\n }\n\n // add a sky layer that will show when the map is highly pitched\n if (map.getLayer(\"sky\") == null) {\n map.addLayer({\n id: \"sky\",\n type: \"sky\",\n paint: {\n \"sky-type\": \"atmosphere\",\n \"sky-atmosphere-sun\": [0.0, 0.0],\n \"sky-atmosphere-sun-intensity\": 15,\n },\n });\n }\n\n map.setTerrain({ source: demSourceID, exaggeration: 1 });\n console.log(map.getTerrain());\n}\n\nfunction getTerrainSourceID(map) {\n for (const [key, source] of Object.entries(map.getStyle().sources)) {\n if (source.type == \"raster-dem\") {\n return key;\n }\n }\n return null;\n}\n"],"names":[],"version":3,"file":"terrain.96ae432a.js.map","sourceRoot":"../../../../"}
|
package/src/map-view/terrain.ts
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
// We should merge this with code in @macrostrat/mapbox-react/src/terrain.ts:
|
|
2
|
-
|
|
3
|
-
export function enable3DTerrain(
|
|
4
|
-
map,
|
|
5
|
-
shouldEnable: boolean,
|
|
6
|
-
sourceID: string | null = null
|
|
7
|
-
) {
|
|
8
|
-
if (!map.style?._loaded) {
|
|
9
|
-
map.once("style.load", () => {
|
|
10
|
-
enable3DTerrain(map, shouldEnable, sourceID);
|
|
11
|
-
});
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const currentTerrainSource = getTerrainSourceID(map);
|
|
16
|
-
let demSourceID = sourceID ?? currentTerrainSource ?? "mapbox-dem";
|
|
17
|
-
|
|
18
|
-
console.log("Enabling 3D terrain with source", demSourceID);
|
|
19
|
-
|
|
20
|
-
// Enable or disable terrain depending on our current desires...
|
|
21
|
-
const currentTerrain = map.getTerrain();
|
|
22
|
-
|
|
23
|
-
if (!shouldEnable) {
|
|
24
|
-
if (currentTerrain != null) map.setTerrain(null);
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
if (currentTerrain != null) return;
|
|
28
|
-
|
|
29
|
-
// Add a DEM source if one is not found already.
|
|
30
|
-
if (map.getSource(demSourceID) == null) {
|
|
31
|
-
map.addSource(demSourceID, {
|
|
32
|
-
type: "raster-dem",
|
|
33
|
-
url: "mapbox://mapbox.mapbox-terrain-dem-v1",
|
|
34
|
-
tileSize: 512,
|
|
35
|
-
maxzoom: 14,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// add a sky layer that will show when the map is highly pitched
|
|
40
|
-
if (map.getLayer("sky") == null) {
|
|
41
|
-
map.addLayer({
|
|
42
|
-
id: "sky",
|
|
43
|
-
type: "sky",
|
|
44
|
-
paint: {
|
|
45
|
-
"sky-type": "atmosphere",
|
|
46
|
-
"sky-atmosphere-sun": [0.0, 0.0],
|
|
47
|
-
"sky-atmosphere-sun-intensity": 15,
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
map.setTerrain({ source: demSourceID, exaggeration: 1 });
|
|
53
|
-
console.log(map.getTerrain());
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function getTerrainSourceID(map) {
|
|
57
|
-
for (const [key, source] of Object.entries(map.getStyle().sources)) {
|
|
58
|
-
if (source.type == "raster-dem") {
|
|
59
|
-
return key;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return null;
|
|
63
|
-
}
|