UNPKG

cve-connector

Version:
390 lines (354 loc) 9.42 kB
import type { Coordinates, Offset } from '../features/common' import type { UIDescriptor } from '../utils/matchmaker' /** ArcGis WMTS 服务 */ export interface ArcgisLayer { /** * 图层分组 ID * - 用于分组控制显隐、删除 * - 可选 */ GroupId?: string /** * 图层 ID * - 唯一值 */ Id: string /** * 图层 z-index * - 最小值为 0 * - 可选 */ Index?: number /** * 请求 WMTS 服务时的请求头 * 有些地图服务器会判断请求是不是从浏览器端发出来的 * 这个时候就需要指定请求头 * - 可选 */ RequestHeaders?: object /** 枚举值,ArcgisType * - 0: WorldImagery * - 1: WorldStreetMap */ Type: ArcgisType } export enum ArcgisType { WorldImagery, WorldStreetMap, } /** WMTS 服务 */ export interface CustomLayer { /** * ESPG 编号 * - '4326' 或 '3857' * - 可选 * - 默认值: '3857' */ EPSG?: '4326' | '3857' /** * 天地图风格的 URL 可能需要(一般也不需要) * xyz 风格一定不需要 * - 可选 * - 默认值: 'image/jpeg' */ Format?: string /** * 图层分组 ID * - 用于分组控制显隐、删除 * - 可选 */ GroupId?: string /** * 图层 ID * - 唯一值 */ Id: string /** * 图层 z-index * - 最小值为 0 * - 可选 */ Index?: number /** * 天地图风格的 URL 可能需要(一般也不需要) * xyz 风格一定不需要 * - 可选 * - 默认值: '' */ Layer?: string /** * 请求 WMTS 服务时的请求头 * 有些地图服务器会判断请求是不是从浏览器端发出来的 * 这个时候就需要指定请求头 * - 可选 */ RequestHeaders?: object /** * 天地图风格的 URL 可能需要(一般也不需要) * xyz 风格一定不需要 * - 可选 * - 默认值: 'default' */ Style?: string /** * 子域名集合 * 如果要使用这个选项,URL 中必须带'{s}' * 比如天地图的: 'http://t{s}.tianditu.gov.cn/vec_c/wmts?tk=' * 这里的'{s}'在请求瓦片时会随机被替换为子域名中的某个值,以减小地图瓦片服务器的压力 * - 可选 */ Subdomains?: string[] /** * 天地图风格的 URL 可能需要(一般也不需要) * xyz 风格一定不需要 * - 可选 * - 默认值: '' */ TileMatrixSetId?: string /** * 瓦片矩阵集标签的前缀 * - 可选 * - 默认值: '' */ TileMatrixSetLabelPrefix?: string /** * 两种风格的 URL * 一种是天地图那种 * 一种是带 xyz 的(http://ip:port/{z}/{x}/{y}.format,format 必须带上(jpg/png等等)) * 详见我上周写的文档 */ Url: string } /** GIS 坐标参考配置 */ export interface GeoReference { /** * 空间坐标系 ESPG 编号 * - 默认值: 4326 */ GeographicEPSG?: string /** * 是否为大场景 * - true: 地球曲率会影响计算 * - 默认值: false */ IsBigScene?: boolean /** * 是否使用投影坐标系 * - true: OriginCenter 的值为投影坐标 [x, y, z] * - false: OriginCenter 的值为投影坐标 [longitude, latitude, altitude] */ IsOriginLocationInProjectedCRS: boolean /** 中心点坐标 */ OriginCenter: Coordinates /** * 投影坐标系 ESPG 编号 * - 默认值: 4549 */ ProjectedEPSG?: string } export type GisCommand = | 'AddArcGISWmtsLayer' | 'AddMapboxWmtsLayer' | 'AddTianDiTuWmtsLayer' | 'AddWmtsLayer' | 'ChangeDebugMessages' | 'ChangeRequestHeaders' | 'ChangeWmtsLayer' | 'ChangeWmtsLayerIndex' | 'Create3DTiles' | 'Delete3Dtiles' | 'DeleteAllWmtsLayer' | 'DeleteWmtsLayer' | 'DeleteWmtsLayerByGroupId' | 'Hide3Dtiles' | 'HideAllWmtsLayer' | 'HideOsgb' | 'HideWmtsLayer' | 'HideWmtsLayerByGroupId' | 'LoadOsgb' | 'SetGeoReferencingParameters' | 'SetTerrainLayerByCesiumIon' | 'SetTerrainLayerByUrl' | 'Show3Dtiles' | 'ShowAllWmtsLayer' | 'ShowOsgb' | 'ShowWmtsLayer' | 'ShowWmtsLayerByGroupId' | 'UnloadOsgb' /** 用于控制 GeoReferencingSystem 的属性值的配置 */ export interface GisController { /** 添加 ArcGIS WMTS 服务 */ addArcgisLayer: (layer: ArcgisLayer) => Promise<UIDescriptor> /** 添加 自发布 WMTS 服务 */ addCustomLayer: (layer: CustomLayer) => Promise<UIDescriptor> /** 添加 Mapbox WMTS 服务 */ addMapboxLayer: (layer: MapboxLayer) => Promise<UIDescriptor> /** 添加 天地图 WMTS 服务 */ addTiandituLayer: (layer: TiandituLayer) => Promise<UIDescriptor> /** 配置 GeoReferencingSystem */ config: (geoReference: GeoReference) => Promise<UIDescriptor> /** * 创建 3D Tiles 图层 * - max: MaximumScreenSpaceError, 默认值为 16 */ create3dTiles: ( id: string, url: string, max?: number ) => Promise<UIDescriptor> /** 匹配 ID 删除 3D Tiles 图层 */ delete3dTiles: (id: string) => Promise<UIDescriptor> /** 移除全部 WMTS 图层 */ deleteAll: () => Promise<UIDescriptor> /** 匹配 ID 删除 WMTS 图层 */ deleteLayer: (id: string) => Promise<UIDescriptor> /** 匹配 Group ID 删除一组 WMTS 图层 */ deleteLayerGroup: (groupId: string) => Promise<UIDescriptor> /** 匹配 ID 隐藏 3D Tiles 图层 */ hide3dTiles: (id: string) => Promise<UIDescriptor> /** 隐藏全部 WMTS 图层 */ hideAll: () => Promise<UIDescriptor> /** 匹配 ID 隐藏 WMTS 图层 */ hideLayer: (id: string) => Promise<UIDescriptor> /** 匹配 Group ID 隐藏一组 WMTS 图层 */ hideLayerGroup: (groupId: string) => Promise<UIDescriptor> /** 匹配 ID 隐藏 OSGB 图层 */ hideOsgb: (id: string) => Promise<UIDescriptor> /** 加载指定目录下的 OSGB */ loadOsgb: ( id: string, dir: string, lodScale?: number, offset?: Offset ) => Promise<UIDescriptor> /** 设置地形服务源为 Cesium 在线地形 */ setCesiumTerrainLayer: (ion: number) => Promise<UIDescriptor> /** 更改图层参数 */ setCustomLayer: (layer: CustomLayer) => Promise<UIDescriptor> /** 更改图层请求头 */ setHeaders: (id: string, headers: Object) => Promise<UIDescriptor> /** 更改图层的 z-index */ setLayerIndex: (id: string, index: number) => Promise<UIDescriptor> /** 通过 url 设置地形服务源 */ setTerrainLayer: (url: string) => Promise<UIDescriptor> /** 匹配 ID 显示 3D Tiles 图层 */ show3dTiles: (id: string) => Promise<UIDescriptor> /** 显示全部 WMTS 图层 */ showAll: () => Promise<UIDescriptor> /** 匹配 ID 显示 WMTS 图层 */ showLayer: (id: string) => Promise<UIDescriptor> /** 匹配 Group ID 显示一组 WMTS 图层 */ showLayerGroup: (groupId: string) => Promise<UIDescriptor> /** 匹配 ID 显示 OSGB 图层 */ showOsgb: (id: string) => Promise<UIDescriptor> /** * 控制图层调试信息显隐 * 主要用于加载wmts图层失败时 * 在编辑器的控制台显示请求的响应信息 * 看看响应状态码啥的 */ toggleDebug: (id: string, visible: boolean) => Promise<UIDescriptor> /** 匹配 ID 销毁 OSGB 图层 */ unloadOsgb: (id: string) => Promise<UIDescriptor> } export declare const GisController: GisController /** Mapbox WMTS 服务 */ export interface MapboxLayer { /** * 图层分组 ID * - 用于分组控制显隐、删除 * - 可选 */ GroupId?: String /** * 图层 ID * - 唯一值 */ Id: String /** * 图层 z-index * - 最小值为 0 * - 可选 */ Index?: Number /** * 请求 WMTS 服务时的请求头 * 有些地图服务器会判断请求是不是从浏览器端发出来的 * 这个时候就需要指定请求头 * - 可选 */ RequestHeaders?: Object /** Mapbox Token */ Token: String /** 枚举值,MapboxType * - 0: Satellite */ Type: MapboxType } export enum MapboxType { Satellite, } /** 天地图 WMTS 服务 */ export interface TiandituLayer { /** * 图层分组 ID * - 用于分组控制显隐、删除 * - 可选 */ GroupId?: String /** * 图层 ID * - 唯一值 */ Id: String /** * 图层 z-index * - 最小值为 0 * - 可选 */ Index?: Number /** * 请求 WMTS 服务时的请求头 * 有些地图服务器会判断请求是不是从浏览器端发出来的 * 这个时候就需要指定请求头 * - 可选 */ RequestHeaders?: Object /** 天地图 Token */ Token: String /** * 枚举值,TiandituType * - 0: vec_c * - 1: vec_w * - 2: cva_c * - 3: cva_w * - 4: eva_c * - 5: eva_w * - 6: img_c * - 7: img_w * - 8: cia_c * - 9: cia_w * - 10: eia_c * - 11: eia_w * - 12: ibo_c * - 13: ibo_w */ Type: TiandituType } export enum TiandituType { vec_c = 0, vec_c = 0, vec_w = 1, cva_c = 2, cva_w = 3, eva_c = 4, eva_w = 5, img_c = 6, img_w = 7, cia_c = 8, cia_w = 9, eia_c = 10, eia_w = 11, ibo_c = 12, ibo_w = 13, }