支持mbtiles

This commit is contained in:
2026-08-04 17:21:15 +08:00
parent 268fc435f2
commit c0b64ddcba
3 changed files with 8 additions and 5 deletions
+1 -1
View File
@@ -364,7 +364,7 @@ export class Cesium_Map extends enhance.Base {
const maximum_level = view_config.tile_zoom_mode === "upscale" ? resource.maximum_level : Math.min(resource.maximum_level, display_maximum_level);
return new Cesium.UrlTemplateImageryProvider({
url: url_template_for_y_axis(resource),
minimumLevel: resource.minimum_level,
minimumLevel: 0,
maximumLevel: maximum_level,
tileWidth: resource.tile_size,
tileHeight: resource.tile_size,
+2 -2
View File
@@ -327,13 +327,13 @@ export class Leaflet_Map extends enhance.Base {
const display_maximum_level = Math.max(imagery.minimum_level, Math.min(view_config.tile_display_maximum_level, 24));
const max_native_zoom = Math.min(imagery.maximum_level, display_maximum_level);
const max_zoom = Math.max(imagery.maximum_level, display_maximum_level, 24);
this.map.setMinZoom(imagery.minimum_level);
this.map.setMinZoom(0);
this.map.setMaxZoom(max_zoom);
if (this.map.getZoom() > max_zoom) {
this.map.setZoom(max_zoom);
}
this.tile_layer = L.tileLayer(imagery.url, {
minZoom: imagery.minimum_level,
minZoom: 0,
maxZoom: max_zoom,
minNativeZoom: imagery.minimum_level,
maxNativeZoom: max_native_zoom,
+5 -2
View File
@@ -16,11 +16,14 @@ export type Map_Tile_Metadata = {
export type Map_Imagery_Source_Metadata = {
key: string
name: string
tile_type: "imagery" | string
resource: Map_Tile_Metadata
}
export type Map_Resources_Metadata = {
current_imagery_key: string
tile_sources: Map_Imagery_Source_Metadata[]
imagery_sources: Map_Imagery_Source_Metadata[]
terrain_sources: Map_Imagery_Source_Metadata[]
imagery: Map_Tile_Metadata
google_imagery?: Map_Tile_Metadata
terrain: Map_Tile_Metadata
@@ -31,8 +34,8 @@ export async function load_map_resources(): Promise<Map_Resources_Metadata> {
}
export function imagery_source_for_key(resources: Map_Resources_Metadata, key: string): Map_Imagery_Source_Metadata {
const source = resources.imagery_sources.find(item => item.key === key) || resources.imagery_sources[0];
if (source) return source;
return {key: "imagery", name: "本地卫星影像", resource: resources.imagery};
if (!source) throw new Error("No imagery source configured");
return source;
}
export function imagery_source_options(resources: Map_Resources_Metadata | null): {value: string, label: string}[] {
return (resources?.imagery_sources || []).map(source => {