cve-connector
Version:
UE Web 开发套件
390 lines (354 loc) • 9.42 kB
TypeScript
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,
}