|
1 | | -import { |
2 | | - DEFAULT_BASEMAP, |
3 | | - DEFAULT_LAYER_STYLE, |
4 | | - type GeoLibreLayer, |
5 | | - useAppStore, |
6 | | -} from "@geolibre/core"; |
| 1 | +import { DEFAULT_BASEMAP, useAppStore } from "@geolibre/core"; |
7 | 2 | import { |
8 | 3 | buildProtomapsBasemapStyle, |
| 4 | + createPMTilesStoreLayer, |
9 | 5 | evictOfflineBasemapStyle, |
10 | 6 | hasPMTilesArchive, |
11 | 7 | type MapController, |
12 | 8 | OFFLINE_BASEMAP_SENTINEL_PREFIX, |
13 | | - pmtilesNativeLayerIds, |
14 | 9 | PROTOMAPS_FLAVORS, |
15 | 10 | type ProtomapsFlavor, |
16 | 11 | readPMTilesArchiveInfo, |
@@ -708,39 +703,19 @@ export function BasemapExtractPanel({ open, onClose, mapControllerRef }: Basemap |
708 | 703 | setBasemapStyleUrl(registerOfflineBasemapStyle(layerId, style)); |
709 | 704 | trackStyledBasemap(layerId, `${layerId}.pmtiles`); |
710 | 705 | } else { |
711 | | - const fillColor = DEFAULT_LAYER_STYLE.fillColor; |
712 | | - const layer: GeoLibreLayer = { |
713 | | - id: layerId, |
714 | | - name: fileName, |
715 | | - type: "pmtiles", |
716 | | - source: { |
717 | | - sourceId: layerId, |
718 | | - sourceLayers: info.sourceLayers, |
719 | | - tileType: info.tileType, |
720 | | - type: info.tileType === "raster" ? "raster" : "vector", |
| 706 | + addLayer( |
| 707 | + createPMTilesStoreLayer({ |
| 708 | + id: layerId, |
| 709 | + name: fileName, |
721 | 710 | url: layerUrl, |
722 | | - }, |
723 | | - visible: true, |
724 | | - // Raster basemaps render dimmed (raster-opacity reads the layer-level |
725 | | - // `opacity`, not style.fillOpacity); vector renders fully opaque. |
726 | | - opacity: info.tileType === "raster" ? 0.6 : 1, |
727 | | - style: { |
728 | | - ...DEFAULT_LAYER_STYLE, |
729 | | - fillColor, |
730 | | - strokeColor: fillColor, |
731 | | - }, |
732 | | - metadata: { |
733 | | - externalNativeLayer: true, |
734 | | - nativeLayerIds: pmtilesNativeLayerIds(layerId, info.tileType, info.sourceLayers), |
735 | | - pickable: true, |
736 | | - sourceId: layerId, |
737 | | - sourceKind: "pmtiles-url", |
738 | | - sourceLayers: info.sourceLayers, |
739 | 711 | tileType: info.tileType, |
740 | | - }, |
741 | | - sourcePath: layerUrl, |
742 | | - }; |
743 | | - addLayer(layer); |
| 712 | + ...(info.encoding ? { encoding: info.encoding } : {}), |
| 713 | + sourceLayers: info.sourceLayers, |
| 714 | + // Raster basemaps render dimmed (raster-opacity reads the layer-level |
| 715 | + // `opacity`, not style.fillOpacity); vector renders fully opaque. |
| 716 | + opacity: info.tileType === "raster" ? 0.6 : 1, |
| 717 | + }), |
| 718 | + ); |
744 | 719 | } |
745 | 720 | setPhase("done"); |
746 | 721 |
|
|
0 commit comments