支持mbtiles
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 => {
|
||||
|
||||
Reference in New Issue
Block a user