UNPKG

imobile_for_reactnative

Version:

iMobile for ReactNative,是SuperMap iMobile推出的一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。

2,091 lines (1,973 loc) 99.4 kB
/********************************************************************************* Copyright © SuperMap. All rights reserved. Author: xiezhy Description: 数据模块,涉及工作空间、数据源、数据集、记录集、投影、字段等操作 **********************************************************************************/ import EventConst from 'imobile_for_reactnative/NativeModule/constains/EventConst' import { TGeoCoordSysType } from 'imobile_for_reactnative/NativeModule/dataTypes/GeoCoordSysType' import { TPrjCoordSysType } from 'imobile_for_reactnative/NativeModule/dataTypes/PrjCoordSysType' import GeoStyle from 'imobile_for_reactnative/NativeModule/GeoStyle' import { NativeEventEmitter, NativeModules, Platform } from 'react-native' import { GeoStyle3D } from '../scene/SScene' const SData = NativeModules.SData const nativeEvt = new NativeEventEmitter(SData) /** 数据集类型对象 */ export interface IDatasetType { /** 纯属性数据集 */ TABULAR: 0 /** 点数据集 */ POINT: 1 /** 线数据集 */ LINE: 3 /** 网络数据集 */ Network: 4 /** 面数据集 */ REGION: 5 /** 文本数据集 */ TEXT: 7 /** 影像数据集 */ IMAGE: 81 /** 影像数据集 */ MBImage: 88 /** 栅格数据集 */ GRID: 83 /** DEM数据集 */ DEM: 84 /** WMS影像数据集 */ WMS: 86 /** WCS影像数据集 */ WCS: 87 /** 三维点数据集 */ PointZ: 101 /** 三维线数据集 */ LineZ: 103 /** 三维面数据集 */ RegionZ: 105 /** CAD数据集 */ CAD: 149 /** WFS数据集 */ WFS: 151 /** 三维网络数据集 */ NETWORK3D: 205 } export type TDatasetType = IDatasetType[keyof IDatasetType] export const DatasetType: IDatasetType = NativeModules.JSDatasetType export function getDatasetTypeString(type:TDatasetType):string { let res = "POINT" if(type === DatasetType.TABULAR){ res = "TABULAR" }else if(type === DatasetType.POINT){ res = "POINT" }else if(type === DatasetType.LINE){ res = "LINE" }else if(type === DatasetType.Network){ res = "Network" }else if(type === DatasetType.REGION){ res = "REGION" }else if(type === DatasetType.TEXT){ res = "TEXT" }else if(type === DatasetType.IMAGE){ res = "IMAGE" }else if(type === DatasetType.MBImage){ res = "MBImage" }else if(type === DatasetType.GRID){ res = "GRID" }else if(type === DatasetType.DEM){ res = "DEM" }else if(type === DatasetType.WMS){ res = "WMS" }else if(type === DatasetType.WCS){ res = "WCS" }else if(type === DatasetType.PointZ){ res = "PointZ" }else if(type === DatasetType.LineZ){ res = "LineZ" }else if(type === DatasetType.RegionZ){ res = "RegionZ" }else if(type === DatasetType.CAD){ res = "CAD" }else if(type === DatasetType.WFS){ res = "WFS" }else if(type === DatasetType.NETWORK3D){ res = "NETWORK3D" } return res } /** 数据源引擎类型对象 */ export interface IEngineType { /** OGC 引擎类型,针对于 Web 数据源 */ OGC: 23, /** UDB 引擎类型 */ UDB: 219, /** UDBX 引擎类型 */ UDBX: 2054, /** 超图云服务引擎类型,该引擎为只读引擎,且不能创建 */ SuperMapCloud: 224, /** GoogleMaps 引擎类型,该引擎为只读引擎,且不能创建 */ GoogleMaps: 223, /** REST 地图服务引擎类型,该引擎为只读引擎,且不能创建 */ Rest: 225, /** 百度地图引擎类型,该引擎为只读引擎,且不能创建 */ BaiDu: 227, /** BingMaps引擎,用于打开BingMaps数据源 */ BingMaps: 230, /** OpenStreetMaps引擎,用于打开OpenStreetMaps数据源 */ OpenStreetMaps: 228, /** GL瓦片,打开GL瓦片数据,该数据是通过GL瓦片生成工具,将矢量地图生成为GL瓦片缓存数据,以提高大数据量的地图在移动设备上的显示性能 */ OpenGLCache: 305, /** MVT数据类型 */ MVTCache: 306, /** 高德地图引擎类型 */ GaoDe: 232 } export type TEngineType = IEngineType[keyof IEngineType] export const EngineType: IEngineType = NativeModules.JSEngineType /** 工作空间类型对象 */ export interface IWorkspaceType { /** 默认值, 表示工作空间未被保存时的工作空间类型 */ DEFAULT: 1, /** SXM工作空间 */ SXW: 4, /** SMW工作空间 */ SMW: 5, /** SXWU工作空间 */ SXWU: 8, /** SMWU工作空间,文件型工作空间 */ SMWU: 9, } export type TWorkspaceType = IWorkspaceType[keyof IWorkspaceType] export const WorkspaceType: IWorkspaceType = NativeModules.JSWorkspaceType /** 字段类型对象 */ export interface IFieldType { /** 布尔型字段 */ BOOLEAN: 1 /** 字节型字段 */ BYTE: 2 /** 16位整型字段 */ INT16: 3 /** 32位整型字段 */ INT32: 4 /** 64位整型字段 */ INT64: 16 /** 32位精度浮点型字段 */ SINGLE: 6 /** 64位精度浮点型字段 */ DOUBLE: 7 /** 日期型字段 */ DATETIME: 23 /** 二进制型字段 */ LONGBINARY: 11 /** 变长的文本型字段 */ TEXT: 10 /** 定长的文本类型字段,例如指定的字符串长度为10,那么输入的字符串只有3个字符,则其他都用0来占位 */ CHAR: 18 /** 宽字符类型字段 */ WTEXT: 127 } export type TFieldType = IFieldType[keyof IFieldType] export const FieldType: IFieldType = NativeModules.JSFieldType export function getFieldTypeString(type:TFieldType):string { let res = "BOOLEAN" if(type === FieldType.BYTE){ res = "BYTE" }else if(type === FieldType.INT16){ res = "INT16" }else if(type === FieldType.INT32){ res = "INT32" }else if(type === FieldType.INT64){ res = "INT64" }else if(type === FieldType.SINGLE){ res = "SINGLE" }else if(type === FieldType.DATETIME){ res = "DATETIME" }else if(type === FieldType.LONGBINARY){ res = "LONGBINARY" }else if(type === FieldType.TEXT){ res = "TEXT" }else if(type === FieldType.CHAR){ res = "CHAR" }else if(type === FieldType.DOUBLE){ res = "DOUBLE" } return res } /** 几何对象的类型常量 */ export interface IGeometryType { /** 几何点对象 */ GEOPOINT : 1 /** 几何线对象 */ GEOLINE : 3 /** 几何面对象 */ GEOREGION : 5 /** 几何文本对象 */ GEOTEXT: 7 /** 三维几何点对象 */ GEOPOINT3D: 101 /** 三维几何线对象 */ GEOLINE3D: 103 /** 三维几何面对象 */ GEOREGION3D: 105 /** 三维地标几何对象 */ GEOPLACEMARK: 108 /** 标绘几何对象 */ GEOGRAPHICOBJECT:3000 } export type TGeometryType = IGeometryType[keyof IGeometryType] export const GeometryType: IGeometryType = NativeModules.JSGeometryType /** 该类定义了字段统计方法类型常量。 * * 对单一字段提供常用统计功能。SuperMap 提供的统计功能有6种,统计字段的最大值,最小值,平均值,总和,标准差以及方差。</p> */ export interface IStatisticMode { /** * 最大值。 */ MAX: 1, /** * 最小值。 */ MIN: 2, /** * 平均值。 */ AVERAGE: 3, /** * 总值。 */ SUM: 4, /** * 标准差。 */ STDDEVIATION: 5, /** * 方差。 */ VARIANCE: 6 } export type TStatisticMode = IStatisticMode[keyof IStatisticMode] export interface FieldInfoValue { /** 字段信息 */ fieldInfo?: FieldInfo /** 字段名 */ name: string /** 字段值 */ value: boolean | string | number } export interface RecordsetValue { fieldInfoValue:FieldInfoValue[] /** recordset 包含的几何对象信息 */ geometry?: GeometryInfo } /** 几何对象信息 */ export interface GeometryInfo { /** 几何对象类型,枚举见 {@link GeometryType} */ type: TGeometryType /** 几何对象的标识符,此标识符用于唯一标识该几何对象。 */ id: number /** 几何对象的子对象个数 */ partCount: number /** * 返回几何对象的最小外接矩形。点对象的最小外接矩形退化为一个点,即矩形的左边界坐标值等于其右边界坐标值,上边界坐标值等于其下边界的坐标值,分别为该点的 x 坐标和 y 坐标。 * * 一个 <Rectangle2D> 对象表示几何对象的最小外接矩形。 */ bounds: Rectangle2D /** * 几何对象的内点。对于不同的几何对象,其位置不同。 * 1. 点对象的内点是该点本身; * 2. 线对象的内点是线对象的第一个子对象的内点(当线对象只有一个子对象时,取该子对象的内点),当该子对象有奇数个节点时,取中间一个节点为内点,当该子对象有偶数个节点时(多于两个节点的情况),取中间两个节点之后者,当该子对象有两个节点时,取两节点之中心为内点; * 3. 面对象的内点是在几何对象的内部,并靠近中央的点; * 4. 文本对象的内点是该文本对象的第一个子对象的锚点; * 内点可以在很多情况下被使用。 */ innerPoint: Point2D /**当对象为标绘对象时才会返回此类型 */ graphicObjectType?:TGraphicObjectType } export type TGraphicObjectType = GraphicObjectType[keyof GraphicObjectType] export interface GraphicObjectType { /** * * 未知类型 */ SYMBOL_UNKNOW: 0, /** * *点标号 */ SYMBOL_DOT: 1, /** * *线面标号 */ SYMBOL_ALGO: 2, /** *折线符号 */ SYMBOL_POLYLINE: 24, /** *圆弧符号 */ SYMBOL_ARC: 44, /** *矩形符号 */ SYMBOL_RECTANGLE: 26, /** *正多边形符号 */ SYMBOL_REGULARPOLYGON: 410, /** *圆形符号 */ SYMBOL_CIRCLE: 29, /** *扇形符号 */ SYMBOL_PIE: 380, /** *弓形符号 */ SYMBOL_CHORD: 370, /** *图片符号 */ SYMBOL_PICTURE: 20, /** *猪肾符号 */ SYMBOL_KIDNEY: 390, /** *多段贝塞尔曲线符号 */ SYMBOL_POLYBEZIER: 590, /** *任意多边形符号 */ SYMBOL_ARBITRARYPOLYGON: 32, SYMBOL_ELLIPSE: 14, /** *椭圆符号 */ SYMBOL_PARALLELOGRAM: 31, /** *平行线 */ SYMBOL_PARALLELLINE: 48, /** *大括号 */ SYMBOL_BRACE: 400, /** *标签 */ SYMBOL_LABEL: 34, /** *注记指示框 */ SYMBOL_ANNOFRAME: 320, /** *注记指示线 */ SYMBOL_ANNOLINE: 33, /** *梯形 */ SYMBOL_TRAPEZOID: 350, /** *闭合多段贝塞尔曲线符号 */ SYMBOL_POLYBEZIER_CLOSE: 360, /** *圆柱 */ SYMBOL_CYLINDER3D: 901, /** *长方体 */ SYMBOL_BOX3D: 902, /** *角锥 */ SYMBOL_PYRAMID3D: 903, /** *圆锥 */ SYMBOL_CONE3D: 904, /** *球 */ SYMBOL_SPHERE3D: 27, } /** * 字段信息类 */ export interface FieldInfo { /** * 字段的别名。 * 对于从数据集中得到的字段除别名外,名称和其他信息都是不可以修改的。对于用户新建的字段,其包括名称在内的所有信息都是可以被修改的,但修改后的名称也不可以跟其他字段重名。 * 别名可以不唯一,即不同的字段可以有相同的别名,而名称是用来唯一标识一个字段的,所以不可重名。 */ caption: string /** * 设置字段的名称。 * 字段的名称只能由数字、字母和下划线组成,但不能以数字或下划线开头;用户新建字段时,字段名称不能以 SM 作为前缀,以SM作为前缀的都是 SuperMap 系统字段,SMUserID 除外;另外,字段的名称不能超过30个字符,且字段的名称不区分大小写。名称用于唯一标识该字段,所以字段不可重名。 */ name: string /** 字段的类型 */ type: TFieldType /** 此字段的默认值 */ defaultValue: boolean | string | number /** 字段是否为必填字段 */ isRequired: boolean /** 指示此字段是否为 SuperMap 系统字段,SuperMap 系统字段是以 SM 为前缀的字段,SMUserID 除外。 */ isSystemField: boolean /** 字段值的最大长度,只对文本字段有效。单位:字节。 */ maxLength: number /** 判断字段是否允许零长度。只对文本类型(Text,Char 和 NVarChar)字段有效。 */ zeroLengthAllowed: boolean } /** * 数据集查询参数类 */ export interface QueryParameter { /** 设置查询所构建的 SQL 条件语句, * 即 SQL WHERE CLAUSE 语句。 * SQL 查询又称为属性查询,是通过一个或多个 SQL 条件语句来查询记录。 * SQL 语句是包含属性字段、运算符号和数值的条件语句。 * 例如,你希望查询一个商业区内去年的年销售额超过30万的服装店,则构建的 SQL 查询语句为: * Sales > 30,0000 AND SellingType = ‘Garment’。 * <p> 默认值为一个空字符串。 */ attriButeFilter?: string /** 设置SQL查询排序的字段。 * 对于 SQL 查询得到的记录集中的各记录,可以根据指定的字段进行排序,并可以指定为升序排列或是降序排列。 * 注意用于排序的字段必须为数值型。 *默认值为个数为0的字符串数组。 */ orderBy?: string[] /** 设置SQL 查询分组条件的字段。 * 对于 SQL 查询得到的记录集中的各字段,可以根据指定的字段进行分组, * 指定的字段值相同的记录将被放置在一起 */ groupBy?: string[] /** 设置id查询的id数组 */ queryIDs?:number[] /* *设置查询结果字段集合。对于查询结果的记录集中,可以设置其中所包含的字段,如果为空,则查询所有字段。 *默认值为个数为0的字符串数组。 */ resultFields?:string[] /** 设置空间查询中的搜索对象。 * 可以是<GeoPoint GeoPoint> , <GeoLine> , <GeoRegion> 等类型的对象。 *若搜索对象是数据集或是记录集类型,则必须同被搜索图层对应的数据集的地理坐标系一致。 */ spatialQueryObject?:GeoLine|GeoPoint|GeoRegion /** 空间查询操作模式类型 * -1:无空间查询, * 0:重合空间查询模式,被搜索图层中与搜索对象完全重合的对象。注意:搜索对象与被搜索对象的类型必须相同;且两个对象的交集不为空,搜索对象的边界及内部分别和被搜索对象的外部交集为空。 * 1:分离空间查询模式,被搜索图层中与搜索对象相离的对象。注意:搜索对象和被搜索对象相离,即无任何交集 * 2:相交空间查询模式,搜索对象相交的所有对象。注意:如果搜索对象是面,返回全部或部分被搜索对象包含的对象以及全部或部分包含搜索对象的对象;如果搜索对象不是面,返回全部或部分包含搜索对象的对象 * 3:邻接空间查询模式,被搜索图层中其边界与搜索对象边界相触的对象。注意:搜索对象和被搜索对象的内部交集为空 * 4:叠加空间查询模式,被搜索图层中与搜索对象部分重叠的对象。该关系适合的对象类型为:线/线,面/面。其中,两个几何对象的维数必须一致,而且他们交集的维数也应该和几何对象的维数一样;注意:点与任何一种几何对象都不存在部分重叠的情况。 * 5:交叉空间查询模式,被搜索图层中与搜索对象(线)相交的所有对象(线或面)。注意:搜索对象和被搜索对象内部的交集不能为空;参与交叉(Cross)关系运算的两个对象必须有一个是线对象 * 6:被包含空间查询模式,被搜索图层中完全包含搜索对象的对象。如果返回的对象是面,其必须全部包含(包括边接触)搜索对象;如果返回的对象是线,其必须完全包含搜索对象;如果返回的对象是点,其必须与搜索对象重合。该类型与包含(Contain)的查询模式正好相反 * 7:包含空间查询模式,被搜索图层中完全被搜索对象包含的对象。注:搜索对象和被搜索对象的边界交集可以不为空;点查线/点查面/线查面,不存在包含情况。 */ spatialQueryMode?:-1|0|1|2|3|4|5|6|7 hasGeometry?: boolean /** 查询范围 */ queryBounds?: Rectangle2D } /** 经纬度 */ export interface LongitudeAndLatitude { /** 经度 */ longitude: number, /** 纬度 */ latitude: number } export interface Point2D { x: number y: number } export interface Point3D { x: number y: number z: number } export interface Vector3 { x: number y: number z: number } /** * 数据范围类 */ export interface Rectangle2D { left: number bottom: number right: number top: number } /** 文本子对象 */ interface TextPart { /** 此文本子对象的文本内容 */ text: string, /** 此文本子对象锚点 */ anchor: Point2D, /** TextPart实例旋转的角度。旋转的方向为逆时针,单位为度。 */ rotation?: number } /** 二维几何对象类型 */ export type Geometry = GeoPoint | GeoLine | GeoRegion | GeoText /** * 文本几何对象类 */ export interface GeoText { type: IGeometryType['GEOTEXT'] /** * 文本对象的内容 * 如果该对象有多个子对象时,其值为子对象字符串之和 */ text?:string /** 文本子对象 */ textParts: TextPart[] /** 文字风格 */ textStyle?: Partial<GeoTextStyle> } /** * 点几何对象类 */ export interface GeoPoint { x: number y: number type: IGeometryType['GEOPOINT'] } /** * 线几何对象类 */ export interface GeoLine { points: Point2D[][] type: IGeometryType['GEOLINE'] } /** * 面几何对象类 */ export interface GeoRegion { points: Point2D[][] type: IGeometryType['GEOREGION'] } /** 3维对象 */ export type Geometry3D = GeoPoint3D | GeoLine3D | GeoRegion3D | GeoPlacemark /** 3维点对象 */ export interface GeoPoint3D { type: IGeometryType['GEOPOINT3D'] point: Point3D } /** 3维线对象 */ export interface GeoLine3D { type: IGeometryType['GEOLINE3D'] points: Point3D[][] } /** 3维面对象 */ export interface GeoRegion3D { type: IGeometryType['GEOREGION3D'] points: Point3D[][] } /** 3维地标几何对象类 */ export interface GeoPlacemark { type: IGeometryType['GEOPLACEMARK'] /** placemark 中的几何对象 */ geometry: Geometry | Geometry3D /** 几何对象的风格,若是三维几何对象,其和palcemark的风格是一致的 */ geometryStyle?: GeoStyle | Partial<GeoStyle3D> /** 文字 */ text: string /** 文字风格 */ textStyle?: Partial<GeoTextStyle> } export interface RGB { r: number g: number b: number } /** * 文本风格 */ export interface GeoTextStyle { /** * 设置文本大小是否固定 * 0:左上角,当文本的对齐方式为左上角对齐时,文本子对象的最小外接矩形的左上角点在该文本子对象的锚点位置 * 1:顶部居中,当文本的对齐方式为上面居中对齐时,文本子对象的最小外接矩形的上边线的中点在该文本子对象的锚点位置 * 2:右上角,当文本的对齐方式为上面居中对齐时,文本子对象的最小外接矩形的右上角点在该文本子对象的锚点位置 * 3:基准线左,当文本的对齐方式为基准线左对齐时,文本子对象的基线的左端点在该文本子对象的锚点位置 * 4:基准线居中,当文本的对齐方式为基准线居中对齐时,文本子对象的基线的中点在该文本子对象的锚点位置 * 5:基准线右,当文本的对齐方式为基准线右对齐时,文本子对象的基线的右端点在该文本子对象的锚点位置 * 6:左下角,当文本的对齐方式为左下角对齐时,文本子对象的最小外接矩形的左下角点在该文本子对象的锚点位置 * 7:底部居中,当文本的对齐方式为底线居中对齐时,文本子对象的最小外接矩形的底线的中点在该文本子对象的锚点位置 * 8:右下角,当文本的对齐方式为右下角对齐时,文本子对象的最小外接矩形的右下角点在该文本子对象的锚点位置 * 9:左中,当文本的对齐方式为左中对齐时,文本子对象的最小外接矩形的左边线的中点在该文本子对象的锚点位置 * 10:中心,当文本的对齐方式为中心对齐时,文本子对象的最小外接矩形的中心点在该文本子对象的锚点位置 * 11:右中,当文本的对齐方式为右中对齐时,文本子对象的最小外接矩形的右边线的中点在该文本子对象的锚点位置 */ alignment: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 /** * 文本的前景色 */ foreColor: RGB /** * 文本的背景色 */ backColor: RGB /** * 设置背景透明度 * 0~255;0为透明,255为不透明 * @platform android */ backTransparency?: number /** * 文本字体的高度。使用地图坐标单位。 默认值为 6。 */ fontHeight: number /** * 返回文本的宽度。字体的宽度以英文字符为标准,由于一个中文字符相当于两个英文字符。默认值为 0 */ fontWidth: number /** * 返回文本字体的名称 */ fontName: string /** * 文本字体的比例。 默认值为 1 */ fontScale: number /** * 文本字体是否为固定尺寸。false,表示文本为非固定尺寸的文本 */ sizeFixed: boolean /** * 文本字体是否为粗体字,True 表示为粗体 */ bold: boolean /** * 文本是否采用斜体,True 表示采用斜体 */ italic: boolean /** * 正负度之间,目前只对标签专题图有效,传入的是.1度为单位 * @platform android */ italicAngle?: number /** * 获取是否以轮廓的方式来显示文本字体的背景。false,表示不以轮廓的方式来显示文本的背景 */ outline: boolean /** * 文本旋转的角度。逆时针方向为正方向,单位为度。 */ rotation: number /** * 文本是否有阴影。true 文本有阴影 */ shadow: boolean /** * 文本字体是否有删除线,true 表示文本字体有删除线 */ strikeout: boolean /** * 获取文本背景是否不透明,true 表示文本背景不透明 */ backOpaque: boolean /** * 文本字体是否加下划线,true 表示加下划线 */ underline: boolean /** * 设置文本字体的磅数,表示粗体的具体数值。取值为0~900中的整百数,如400表示正常显示,700表示粗体 * @deprecated */ weight: number } /** * 数据集创建参数类 */ export interface DatasetCreateInfo { /** 数据集名*/ datasetName: string /**数据源名*/ datasourceName: string /** * 数据集的类型。目前版本支持的数据集类型包括纯属性表数据集、点数据集、线数据集、面数据集、文本数据集和影像数据集(DatasetImage) */ datasetType: TDatasetType /** 用户加入的对数据集的描述信息。*/ description?: string } /** 数据集参数 */ export type DatasetInfo = Pick<DatasetCreateInfo, 'datasourceName' | 'datasetName'> /** 数据源连接信息类 */ export interface DatasourceConnectionInfo { /** * 数据源别名 */ alias: string /** * 数据库服务器名或文件名(对于UDB 文件,为其文件的名称,其中包括路径名称和文件的后缀名。特别地,此处的路径为绝对路径)(完整文件路径 eg://root/xxx/test.udb) */ server: string /** * 数据源类型,详情请参见 EngineType */ engineType: TEngineType /** * 数据源连接所需的驱动名称 */ driver?: string /** 数据源用户名 */ user?: string /** 数据源是否为只读 */ readOnly?: boolean /** 数据源用户密码 */ password?: string /** Web服务类型(Rest/OGC)数据源的坐标参考系*/ webCoordinate?: string /** WMS服务的版本号*/ webVersion?: string /** WMS服务的图片格式*/ webFormat?: string /** WMS服务的可见图层集合*/ webVisibleLayers?: string /** WMS服务的扩展参数*/ webExtendParam?: string /** 描述信息*/ description?: string } /** * 工作空间打开参数类 */ export interface WorkspaceConnectionInfo { /** * 文件型工作空间路径 */ server: string /** * 工作空间文件类型 SMWU:9 SXWU:8 */ type: TWorkspaceType /** 工作空间名称 */ name?: string /** 工作空间密码 */ password?: string /** 工作空间用户名 */ user?: string /** 工作空间版本 */ version?: number } /** * 符号库类 */ export interface SymbolLibInfo { /** 符号库名称 */ name: string /** 符号库路径 root/xx/xx*/ path?: string /** 符号库类型,包括“fill、line、marker” */ type?: "fill" | "line" | "marker" /** 符号库符号数量 */ count?:number /** 符号库子节点 */ childGroups?:SymbolLibInfo } /** * 符号类 */ export interface SMSymbol { /** 符号名称 */ name: string /** 符号路径 */ groupPath?: string /** 符号库类型,包括“fill、line、marker” */ type?: "fill" | "line" | "marker" /** 符号ID */ id?:number } /** 字体类型 */ export type TextFont = 'BOLD' | 'ITALIC' | 'UNDERLINE' | 'STRIKEOUT' | 'SHADOW' | 'OUTLINE' | 'NULL' /** * 投影坐标系类。 * * 投影坐标系统由地图投影方式、投影参数、坐标单位和地理坐标系组成。 * 系统中提供了很多预定义的投影系统,用户可以直接使用,此外,用户还可以定制自己投影系统。 * * 投影坐标系是定义在二维平面上的,不同于地理坐标系用经纬度定位地面点,投影坐标系是用 X、Y 坐标来定位的。每一个投影坐标系都基于一个地理坐标系。 * */ export interface PrjCoordSys { /** * 投影坐标系对象的名称 */ name: string /** * 投影坐标系类型。 * * 当投影坐标系类型为自定义时,用户需另外指定地理坐标系、投影方法、坐标单位以及投影参数;其余的值为 * 系统预定义,用户不必指定其他参数。 * 默认值为 PrjCoordSysType.PCS_USER_DEFINED。 */ type: TPrjCoordSysType /** * 获取或设置投影坐标系的地理坐标系统对象。每个投影系都要依赖于一个地理坐标系。 */ geoCoordSys: GeoCoordSys /** * 投影坐标系统的投影方式。 * * 投影方式如等角圆锥投影、等距方位投影等等。 */ projection: Projection /** * 投影坐标系统对象的投影参数。 */ prjParameter: PrjParameter /** * 投影系统坐标单位。 * * 投影系统的坐标单位与距离单位(DistanceUnits)可以不同,例如经纬度坐标下的坐标单位是度,距离单位可以是米、公里等; * 即使是普通平面坐标或者投影坐标,这两个单位同样可不同。 * * 默认值为 METER */ coordUnit: TUnit /** * 距离(长度)单位 * * 默认值为 METER */ distanceUnit: TUnit } /** * 地理坐标系类。 * * 地理坐标系由大地参照系、中央子午线、坐标单位组成。在地理坐标系中,单位一般用度来表示,也可以用度分秒表示。东西向(水平方向)的范围为-180度至180度。 * 南北向(垂直方向)的范围为-90度至90度。 * * 地理坐标是用经纬度表示地面点位置的球面坐标。在球形系统中,赤道面的平行面同地球椭球面相交所截的圈称为纬圈,也叫纬线,表示东西方向, * 通过地球旋转轴的面与椭球面相交所截的圈为子午圈,也称经线,表示南北方向,这些包围着地球的网格称为经纬格网。 * 经纬线一般用度来表示(必要时也用度分秒表示)。经度是指地面上某点所在的经线面与本初子午面所成的二面角,规定本初子午线的经度为0度,从本初子午线向东 0 到 180 度为 “东经”,以“E”表示,向西 * 0 到 -180 度为“西经”,以字母“W”表示;纬度是指地面上某点与地球球心的连线和赤道面所成的线面角,规定赤道的纬度为 0 度,从赤道向北 0 到 90 度为“北纬”,以字母“N”表示,向南 0 到 -90 度为“南纬”,以字母“S”表示。</p> * */ /**地理坐标系对象类 */ export interface GeoCoordSys { /** 地理坐标系对象的名称。 */ name: string /** * 地理坐标系类型。 * * 当地理坐标系的类型为自定义时,用户需另外指定大地参照系、中央经线;其余的值为 * 系统预定义,用户不必指定半长径和扁率。本系统中,地理坐标系单位可以是度分妙;系统预定义的地理坐标系的常量为 * GeoCoordSysType 。 */ type: TGeoCoordSysType /** 空间坐标系类型。 */ geoSpatialRefType: TGeoSpatialRefType /** 大地参照系对象。 */ geoDatum: GeoDatum } /** * 投影坐标系地图投影类。 * * 地图投影就是将球面坐标转化为平面坐标的过程。 * * 一般来说,地图投影按变形性质可以分为等角投影、等距投影和等积投影,适于不同的用途,如果是航海图,等角投影是很常用。还有一种是各类变形介于这几种之间的任意投影,一般用作参考用途和教学地图。地图投影也可以按照构成方法分成两大类,分别为几何投影和非几何投影。几何投影是把椭球面上的经纬线网投影到几何面上,然后将几何面展为平面而得的,包括方位投影、圆柱投影和圆锥投影;非几何投影不借助几何面,根据某些条件有数学解析法确定球面与平面之间点与点的函数关系,包括伪方位投影、伪圆柱投影、伪圆锥投影和多圆锥投影。有关投影方式类型的详细信息请参考 <ProjectionType>。 * */ export interface Projection { /** 投影方式对象的名称, 不能设置*/ name: string /** 投影坐标系统的投影方式的类型。 */ type: TProjectionType } /** * 地图投影参数类。 * * 地图投影的参数,比如中央经线、原点纬度、双标准纬线的第一和第二条纬线等。 */ export interface PrjParameter { /** * 东伪偏移。 * 为了避免系统坐标横轴(经度方向)出现负值而加上的一个偏移量。通常用于高斯--克吕格、UTM 和墨卡托投影中。一般的值为500000米。 * 默认值为0。 */ falseEasting: number /** * 北伪偏移 * 为了避免系统坐标纵轴(纬度方向)出现负值而加上的一个偏移量。通常用于高斯--克吕格、UTM 和墨卡托投影中。 * 默认值为0。 */ falseNorthing: number /** * 中央经线角度值。 * 取值范围为-180度至180度。 * 默认值为0 */ centralMeridian: number /** * 坐标原点对应纬度值 * 取值范围为-90度至90度,在圆锥投影中通常就是投影区域最南端的纬度值。 * 默认值为0 */ centralParallel: number /** * 第一标准纬线的纬度值 * 主要应用于圆锥投影中。如果是单标准纬线,则第一标准纬线与第二标准纬线的纬度值相同。 * 默认值为0。 */ standardParallel1: number /** * 第二标准纬线的纬度值。 * 主要应用于圆锥投影中。如果是单标准纬线,则第一标准纬线与第二标准纬线的纬度值相同;如果是双标准纬线,则其值不能与第一标准纬线的值相同。 * 默认值为0。 */ standardParallel2: number /** * 投影转换的比例因子 * 于减少投影变换的误差。墨卡托、高斯--克吕格和 UTM 投影的值一般为0.9996。 * 默认值为0 */ scaleFactor: number /** * 方位角 * 默认值为0 */ azimuth: number /** * 第一个点的经度。用于方位投影或斜投影。 * 默认值为0。 */ firstPointLongitude: number /** * 第二个点的经度。用于方位投影或斜投影。 * 默认值为0。 */ secondPointLongitude: number } /** 大地参照系对象*/ export interface GeoDatum { /** 大地参照系对象的名称。 */ name: string /** * 大地参照系的类型。 * * 当大地参照系为自定义时,用户需另外指定椭球体参数;其它的值为 SuperMap Objects Java 系统预定义,用户不必指定椭球体参数。参见 GeoDatumType 。 * * 默认值为 DATUM_WGS_1984。 */ type: TGeoDatumType /** * 地球椭球体对象。只当大地参照系类型为自定义类型时才可以设置。 * * 人们通常用球体或椭球体来描述地球的形状和大小,有时为了计算方便,可以将地球看作一个球体,但更多的时候是把它看作椭球体。一般情况下在地图比例尺小于1:1,000,000 时,假设地球形状为一球体,因为在这种比例尺下球体和椭球体的差别几乎无法分辨;而在1:1,000,000 甚至更高精度要求的大比例尺时,则需用椭球体逼近地球。椭球体是以椭圆为基础的,所以用两个轴来表述地球球体的大小,即长轴(赤道半径)和短轴(极地半径)。</p> */ geoSpheroid: GeoSpheroid } /** * 地球椭球体参数类。 * * 该类主要用来描述地球的长半径和扁率。 * * 人们通常用球体或椭球体来描述地球的形状和大小,有时为了计算方便,可以将地球看作一个球体,但更多的时候是把它看作椭球体。一般情况下在地图比例尺小于1:1,000,000 时,假设地球形状为一球体,因为在这种比例尺下球体和椭球体的差别几乎无法分辨;而在1:1,000,000 甚至更高精度要求的大比例尺时,则需用椭球体逼近地球。椭球体是以椭圆为基础的,所以用两个轴来表述地球球体的大小,即长轴(赤道半径)和短轴(极地半径)。 * * 因为同一个投影方法,不同的椭球体参数,相同的数据投影出来的结果可能相差很大,所以需要选择合适的椭球参数。不同年代、不同国家和地区使用的地球椭球参数有可能不同,中国目前主要用的是克拉索夫斯基椭球参数;北美大陆及英法等主要用的是克拉克椭球参数。</p> */ export interface GeoSpheroid { /** * 地球椭球体对象的名称。 * * 只当地球椭球体的类型为自定义类型时,才可以设置。 * * 默认值为 "WGS_1984" */ name: string /** * 地球椭球体的类型。 * * 该地球椭球体类型为自定义类型时,用户需另外指定椭球体的长半径和扁率;其余的值为系统预定义,用户不必指定长半径和扁率。可参见地球椭球体 GeoSpheroidType 枚举类。 * * 默认值为SPHEROID_WGS_1984 */ type: TGeoSpheroidType /** * 地球椭球体的长半径。 * * 地球椭球体的长半径也叫地球赤道半径,通过它和地球扁率可以求得地球椭球体的极地半径、第一偏心率、第二偏心率等等。只当地球椭球体的类型为自定义类型时,长半径才可以被设置。 * * 默认值为 6378137.0。 */ axis: number /** * 地球椭球体的扁率。 * * 只当地球椭球体的类型为自定义类型时,扁率才可以被设置。 * * 地球椭球体的扁率反映了地球椭球体的圆扁情况, 一般为地球长短半轴之差与长半轴之比。 * * 默认值为0.0033528107 */ flatten: number } /** * 投影坐标相关枚举 */ export interface IUnit { /// 毫米。 MILIMETER: 10, /// 平方毫米。 SQUAREMILIMETER: 11, /// 厘米。 CENTIMETER: 100, /// 平方厘米。 SQUARECENTIMETER: 101, /// 英寸。 INCH: 254, /// 平方英寸。 SQUAREINCH: 255, /// 分米。 DECIMETER: 1000, /// 平方分米。 SQUAREDECIMETER: 1001, /// 英尺。 FOOT: 3048, /// 平方英尺。 SQUAREFOOT: 3049, /// 码。 YARD: 9144, /// 平方码。 SQUAREYARD: 9145, /// 米。 METER :10000, /// 平方米。 SQUAREMETER : 10001, /// 千米。 KILOMETER: 10000000, /// 平方千米。 SQUAREKILOMETER: 10000001, /// 平方英里。 MILE: 16090000, /// 英里。 SQUAREMILE: 16090001, /// 秒。 SECOND: 1000000485, /// 分。 MINUTE: 1000029089, /// 度。 DEGREE: 1001745329, /// 弧度。 RADIAN: 1100000000 } /** 投影坐标系统的投影方式类型 */ export interface IProjectionType { ///非投影 PRJT_NONPROJECTION: 43000, ///Plate Carree PRJT_PLATE_CARREE: 43001, ///Equidistant Cylindrical PRJT_EQUIDISTANT_CYLINDRICAL: 43002, ///Miller Cylindrical PRJT_MILLER_CYLINDRICAL: 43003, /// Mercator PRJT_MERCATOR: 43004, ///Gauss-Kruger PRJT_GAUSS_KRUGER: 43005, ///Transverse Mercator ==43005 PRJT_TRANSVERSE_MERCATOR: 43006, ///Albers PRJT_ALBERS: 43007, ///Sinusoidal PRJT_SINUSOIDAL: 43008, ///Mollweide PRJT_MOLLWEIDE: 43009, ///Eckert VI PRJT_ECKERT_VI: 43010, ///Eckert V PRJT_ECKERT_V: 43011, ///Eckert IV PRJT_ECKERT_IV: 43012, ///Eckert III PRJT_ECKERT_III: 43013, ///Eckert II PRJT_ECKERT_II: 43014, ///Eckert I PRJT_ECKERT_I: 43015, ///Gall Stereographic PRJT_GALL_STEREOGRAPHIC: 43016, ///Behrmann PRJT_BEHRMANN: 43017, ///Winkel I PRJT_WINKEL_I: 43018, ///Winkel II PRJT_WINKEL_II: 43019, ///Lambert Conformal Conic PRJT_LAMBERT_CONFORMAL_CONIC: 43020, ///Polyconic PRJT_POLYCONIC: 43021, ///Quartic Authalic PRJT_QUARTIC_AUTHALIC: 43022, ///Loximuthal PRJT_LOXIMUTHAL: 43023, ///Bonne PRJT_BONNE: 43024, ///Hotine PRJT_HOTINE: 43025, ///Stereographic PRJT_STEREOGRAPHIC: 43026, ///Equidistant Conic PRJT_EQUIDISTANT_CONIC: 43027, ///Cassini PRJT_CASSINI: 43028, ///Van der Grinten I PRJT_VAN_DER_GRINTEN_I: 43029, ///Robinson PRJT_ROBINSON: 43030, ///Two-Point Equidistant PRJT_TWO_POINT_EQUIDISTANT: 43031, ///Equidistant Azimuthal PRJT_EQUIDISTANT_AZIMUTHAL: 43032, ///Lambert Azimuthal Equal Area PRJT_LAMBERT_AZIMUTHAL_EQUAL_AREA: 43033, ///Conformal Azimuthal PRJT_CONFORMAL_AZIMUTHAL: 43034, ///ortho_graphic 正射 PRJT_ORTHO_GRAPHIC: 43035, ///Gnomonic 球心 PRJT_GNOMONIC: 43036, ///中国全图方位投影 PRJT_CHINA_AZIMUTHAL: 43037, /// 空投影I PRJT_NONPROJECTION_I: 43038, /// 空投影II PRJT_NONPROJECTION_II: 43039, ///桑逊投影——正弦曲线等积伪圆柱投影 PRJT_SANSON: 43040, ///EqualArea Cylindrical PRJT_EQUALAREA_CYLINDRICAL: 43041, PRJT_HOTINE_AZIMUTH_NATORIGIN: 43042, ///斜轴墨卡托投影 PRJT_OBLIQUE_MERCATOR: 43043, ///Hotine斜轴墨卡托投影 PRJT_HOTINE_OBLIQUE_MERCATOR: 43044, ///正球墨卡托 PRJT_SPHERE_MERCATOR: 43045, ///南半球彭纳投影 PRJT_BONNE_SOUTH_ORIENTATED: 43046, ///Oblique stereographic , Esri 称为 double stereographic PRJT_OBLIQUE_STEREOGRAPHIC: 43047, } /** * 该类定义了空间坐标系类型常量。 * 空间坐标系类型,用以区分平面坐标系、地理坐标系、投影坐标系,其中地理坐标系又称为经纬度坐标系。 */ export interface IGeoSpatialRefType { /** * 平面坐标系。 * 当坐标系为平面坐标系时,不能进行投影转换。 */ SPATIALREFT_NONEARTH: 0 , /** * 地理坐标系。 * 地理坐标系由大地参照系、中央经线、坐标单位组成。在地理坐标系中,单位可以是度,分,秒。东西向(水平方向)的范围为-180度至180度。南北向(垂直方向)的范围为-90度至90度。 */ SPATIALREFT_EARTH_LONGITUDE_LATITUDE: 1 , /** * 投影坐标系。 * 投影坐标系统由地图投影方式、投影参数、坐标单位和地理坐标系组成。SuperMap 中提供了很多预定义的投影系统,用户可以直接使用,此外,用户还可以定制自己的投影系统。 */ SPATIALREFT_EARTH_LONGITUDE_PROJECTION: 2 } /** * 该类定义了地球椭球体参数对象类型常量。 */ export interface IGeoSpheroidType { /// 用户自定义 类型。 SPHEROID_USER_DEFINED : -1, /// Airy 1830 SPHEROID_AIRY_1830 : 7001 , /// Airy modified SPHEROID_AIRY_MOD : 7002 , /// Average Terrestrial System 1977 SPHEROID_ATS_1977 : 7041 , /// Australian National SPHEROID_AUSTRALIAN : 7003 , /// Bessel 1841 SPHEROID_BESSEL_1841 : 7004 , /// Bessel modified SPHEROID_BESSEL_MOD : 7005 , /// Bessel Namibia SPHEROID_BESSEL_NAMIBIA : 7006 , /// Clarke 1858 SPHEROID_CLARKE_1858 : 7007 , /// Clarke 1866 SPHEROID_CLARKE_1866 : 7008 , /// Clarke 1866 Michigan SPHEROID_CLARKE_1866_MICH : 7009 , /// Clarke 1880 SPHEROID_CLARKE_1880 : 7034 , /// Clarke 1880 (Arc) SPHEROID_CLARKE_1880_ARC : 7013 , /// Clarke 1880 (Benoit) SPHEROID_CLARKE_1880_BENOIT : 7010 , /// Clarke 1880 (IGN) SPHEROID_CLARKE_1880_IGN : 7011 , /// Clarke 1880 (RGS) SPHEROID_CLARKE_1880_RGS : 7012 , /// Clarke 1880 (SGA) SPHEROID_CLARKE_1880_SGA : 7014 , /// Everest 1830 SPHEROID_EVEREST_1830 : 7015 , /// Everest (definition 19 : 67) SPHEROID_EVEREST_DEF_1967 : 7016 , /// Everest (definition 1975) SPHEROID_EVEREST_DEF_1975 : 7017 , /// Everest modified SPHEROID_EVEREST_MOD : 7018 , /// GEM gravity potential model SPHEROID_GEM_10C : 7031 , /// GRS 1967 : International 1967 SPHEROID_GRS_1967 : 7036 , /// GRS 1980 SPHEROID_GRS_1980 : 7019 , /// Helmert 1906 SPHEROID_HELMERT_1906 : 7020 , /// Indonesian National SPHEROID_INDONESIAN : 7021 , /// International 1924 SPHEROID_INTERNATIONAL_1924 : 7022 , /// International 1967 SPHEROID_INTERNATIONAL_1967 : 7023 , /// Krasovsky 1940 SPHEROID_KRASOVSKY_1940 : 7024 , /// Transit precise ephemeris SPHEROID_NWL_9D : 7025 , /// OSU 1986 geoidal model SPHEROID_OSU_86F : 7032 , /// OSU 1991 geoidal model SPHEROID_OSU_91A : 7033 , /// Plessis 1817 SPHEROID_PLESSIS_1817 : 7027 , /// Authalic sphere SPHEROID_SPHERE : 7035 , /// Struve 1860 SPHEROID_STRUVE_1860 : 7028 , /// War Office SPHEROID_WAR_OFFICE : 7029 , /// NWL_10D SPHEROID_NWL_10D : 7026 , /// WGS 1972 SPHEROID_WGS_1972 : 7043 , /// WGS 1984 SPHEROID_WGS_1984 : 7030 , /// WGS 1966 SPHEROID_WGS_1966 : 40001 , /// Fischer 1960 SPHEROID_FISCHER_1960 : 40002 , /// Fischer 1968 SPHEROID_FISCHER_1968 : 40003 , /// Fischer modified SPHEROID_FISCHER_MOD : 40004, /// Hough 1960 SPHEROID_HOUGH_1960 : 40005 , /// Everest modified 1969 SPHEROID_EVEREST_MOD_1969 : 40006 , /// Walbeck SPHEROID_WALBECK : 40007 , /// Authalic sphere (ARC/INFO) SPHEROID_SPHERE_AI : 40008 , /// International 1975,Used By China Xian-1980 SPHEROID_INTERNATIONAL_1975 : 40023, //{{added by qianjn in 2008-12-30 10:31:41 ‘ˆº”‘≠“Ú£∫÷–π˙◊Ó–¬±Í◊ºÕ∂”∞µƒÕ÷«Úã¨China 2000 /// 中国最新标准投影的椭球体:China 2000。 SPHEROID_CHINA_2000 : 7044 } /** 枚举定义了大地参照系类型常量。 */ export interface IGeoDatumType { /** 用户自定义大地参照系 */ DATUM_USER_DEFINED : -1, ///Airy 1830 DATUM_AIRY_1830 : 6001 , /// Airy modified DATUM_AIRY_MOD : 6002 , /// Australian National DATUM_AUSTRALIAN : 6003 , /// Bessel 1841 DATUM_BESSEL_1841 : 6004 , /// Bessel modified DATUM_BESSEL_MOD : 6005 , /// Bessel Namibia DATUM_BESSEL_NAMIBIA : 6006 , /// Clarke 1858 DATUM_CLARKE_1858 : 6007 , /// Clarke 1866 DATUM_CLARKE_1866 : 6008 , /// Clarke 1866 Michigan DATUM_CLARKE_1866_MICH : 6009 , /// Clarke 1880 DATUM_CLARKE_1880 : 6034 , /// Clarke 1880 (Arc) DATUM_CLARKE_1880_ARC : 6013 , /// Clarke 1880 (Benoit) DATUM_CLARKE_1880_BENOIT : 6010 , /// Clarke 1880 (IGN) DATUM_CLARKE_1880_IGN : 6011 , /// Clarke 1880 (RGS) DATUM_CLARKE_1880_RGS : 6012 , /// Clarke 1880 (SGA) DATUM_CLARKE_1880_SGA : 6014 , /// Everest 1830 DATUM_EVEREST_1830 : 6015 , /// Everest (definition 1967) DATUM_EVEREST_DEF_1967 : 6016 , /// Everest (definition 1975) DATUM_EVEREST_DEF_1975 : 6017 , /// Everest modified DATUM_EVEREST_MOD : 6018 , /// GEM gravity potential model DATUM_GEM_10C : 6031 , /// GRS 1967 DATUM_GRS_1967 : 6036 , /// GRS 1980 DATUM_GRS_1980 : 6019 , /// Helmert 1906 DATUM_HELMERT_1906 : 6020 , /// Indonesian National DATUM_INDONESIAN : 6021 , /// International 1927 DATUM_INTERNATIONAL_1924 : 6022 , /// International 1967 DATUM_INTERNATIONAL_1967 : 6023 , /// Krasovsky 1940 DATUM_KRASOVSKY_1940 : 6024 , /// Transit precise ephemeris DATUM_NWL_9D : 6025 , /// OSU 1986 geoidal model DATUM_OSU_86F : 6032 , /// OSU 1991 geoidal model DATUM_OSU_91A : 6033 , /// Plessis 1817 DATUM_PLESSIS_1817 : 6027 , /// Authalic sphere DATUM_SPHERE : 6035 , /// Struve 1860 DATUM_STRUVE_1860 : 6028 , /// War Office DATUM_WAR_OFFICE : 6029 , /// WGS 1966 DATUM_WGS_1966 : 39001 , /// Fischer 1960 DATUM_FISCHER_1960 : 39002, /// Fischer 1968 DATUM_FISCHER_1968 : 396003 , /// Fischer modified DATUM_FISCHER_MOD : 39004 , /// Hough 1960 DATUM_HOUGH_1960 : 39005 , /// Everest modified 1969 DATUM_EVEREST_MOD_1969 : 39006, /// Walbeck DATUM_WALBECK : 39007 , /// Authalic sphere (ARC/INFO) DATUM_SPHERE_AI : 39008 , //}} /*----------------------------------------------------------------------------*/ /* H O R I Z O N T A L D A T U M S */ /*----------------------------------------------------------------------------*/ //{{ /// Adindan DATUM_ADINDAN : 6201 , /// Afgooye DATUM_AFGOOYE : 6205 , /// Agadez DATUM_AGADEZ : 6206 , /// Australian Geodetic Datum 1966 DATUM_AGD_1966 : 6202 , /// Australian Geodetic Datum 1984 DATUM_AGD_1984 : 6203 , /// Ain el Abd 1970 DATUM_AIN_EL_ABD_1970 : 6204 , /// Amersfoort DATUM_AMERSFOORT : 6289 , /// Aratu DATUM_ARATU : 6208 , /// Arc 1950 DATUM_ARC_1950 : 6209 , /// Arc 1960 DATUM_ARC_1960 : 6210 , /// Ancienne Triangulation Francaise DATUM_ATF : 6901 , /// Average Terrestrial System 1977 DATUM_ATS_1977 : 6122 , /// Barbados DATUM_BARBADOS : 6212 , /// Batavia DATUM_BATAVIA : 6211 , /// Beduaram DATUM_BEDUARAM : 6213 , /// Beijing 1954 DATUM_BEIJING_1954 : 6214 , /// Reseau National Belge 1950 DATUM_BELGE_1950 : 6215 , /// Reseau National Belge 1972 DATUM_BELGE_1972 : 6313 , /// Bermuda 1957 DATUM_BERMUDA_1957 : 6216 , /// Bern 1898 DATUM_BERN_1898 : 6217 , /// Bern 1938 DATUM_BERN_1938 : 6306 , /// Bogota DATUM_BOGOTA : 6218 , /// Bukit Rimpah DATUM_BUKIT_RIMPAH : 6219 , /// Camacupa DATUM_CAMACUPA : 6220 , /// Campo Inchauspe DATUM_CAMPO_INCHAUSPE : 6221 , /// Cape DATUM_CAPE : 6222 , /// Carthage DATUM_CARTHAGE : 6223 , /// Chua DATUM_CHUA : 6224 , /// Conakry 1905 DATUM_CONAKRY_1905 : 6315 , /// Corrego Alegre DATUM_CORREGO_ALEGRE : 6225 , /// Cote d'Ivoire DATUM_COTE_D_IVOIRE : 6226 , /// Datum 73 DATUM_DATUM_73 : 6274 , /// Deir ez Zor DATUM_DEIR_EZ_ZOR : 6227 , /// Dealul Piscului 1933 DATUM_DEALUL_PISCULUI_1933 : 6316 , /// Dealul Piscului 1970 DATUM_DEALUL_PISCULUI_1970 : 6317 , /// Deutsche Hauptdreiecksnetz DATUM_DHDN : 6314 , /// Douala DATUM_DOUALA : 6228 , /// European Datum 1950 DATUM_ED_1950 : 6230 , /// European Datum 1987 DATUM_ED_1987 : 6231 , /// Egypt 1907 DATUM_EGYPT_1907 : 6229 , /// European Terrestrial Ref. Sys. 1989 DATUM_ETRS_1989 : 6258 , /// Fahud DATUM_FAHUD : 6232 , /// Gandajika 1970 DATUM_GANDAJIKA_1970 : 6233 , /// Garoua DATUM_GAROUA : 6234 , /// Geocentric Datum of Australia 1994 DATUM_GDA_1994 : 6283 , /// Greek Geodetic Reference System 1987 DATUM_GGRS_1987 : 6121 , /// Greek DATUM_GREEK : 6120 , /// Guyane Francaise DATUM_GUYANE_FRANCAISE : 6235 , /// Herat North DATUM_HERAT_NORTH : 6255 , /// Hito XVIII 1963 DATUM_HITO_XVIII_1963 : 6254 , /// Hu Tzu Shan DATUM_HU_TZU_SHAN : 6236 , /// Hungarian Datum 1972 DATUM_HUNGARIAN_1972 : 6237 , /// Indian 1954 DATUM_INDIAN_1954 : 6239 , /// Indian 1975 DATUM_INDIAN_1975 : 6240 , /// Indonesian Datum 1974 DATUM_INDONESIAN_1974 : 6238 , /// Jamaica 1875 DATUM_JAMAICA_1875 : 6241 , /// Jamaica 1969 DATUM_JAMAICA_1969 : 6242 , /// Kalianpur DATUM_KALIANPUR : 6243 , /// Kandawala DATUM_KANDAWALA : 6244 , /// Kertau DATUM_KERTAU : 6245 , /// Kartastokoordinaattijarjestelma DATUM_KKJ : 6123 , /// Kuwait Oil Company DATUM_KOC : 6246 , /// Kuwait Utility DATUM_KUDAMS : 6319 , /// La Canoa DATUM_LA_CANOA : 6247 , /// Lake DATUM_LAKE : 6249 , /// Leigon DATUM_LEIGON : 6250 , /// Liberia 1964 DATUM_LIBERIA_1964 : 6251 , /// Lisbon DATUM_LISBON : 6207 , /// Loma Quintana DATUM_LOMA_QUINTANA : 6288 , /// Lome DATUM_LOME : 6252 , /// Luzon 1911 DATUM_LUZON_1911 : 6253 , /// Mahe 1971 DATUM_MAHE_1971 : 6256 , /// Makassar DATUM_MAKASSAR : 6257 , /// Malongo 1987 DATUM_MALONGO_1987 : 6259 , /// Manoca DATUM_MANOCA : 6260 , /// Massawa DATUM_MASSAWA : 6262 , /// Merchich DATUM_MERCHICH : 6261 , /// Militar-Geographische Institut DATUM_MGI : 6312 , /// Mhast DATUM_MHAST : 6264 , /// Minna DATUM_MINNA : 6263 , /// Monte Mario DATUM_MONTE_MARIO : 6265 , /// M'poraloko DATUM_MPORALOKO : 6266 , /// NAD Michigan DATUM_NAD_MICH : 6268 , /// North American Datum 1927 DATUM_NAD_1927 : 6267 , /// North American Datum 1983 DATUM_NAD_1983 : 6269 , /// Nahrwan 1967 DATUM_NAHRWAN_1967 : 6270 , /// Naparima 1972 DATUM_NAPARIMA_1972 : 6271 , /// Nord de Guerre DATUM_NDG : 6902 , /// National Geodetic Network (Kuwait) DATUM_NGN : 6318 , /// NGO 1948 DATUM_NGO_1948 : 6273 , /// Nord Sahara 1959 DATUM_NORD_SAHARA_1959 : 6307 , /// NSWC 9Z-2 DATUM_NSWC_9Z_2 : 6276 , /// Nouvelle Triangulation Francaise DATUM_NTF : 6275 , /// New Zealand Geodetic Datum 1949 DATUM_NZGD_1949 : 6272 , /// OS (SN) 1980 DATUM_OS_SN_1980 : 6279 , /// OSGB 1936 DATUM_OSGB_1936 : 6277 , /// OSGB 1970 (SN) DATUM_OSGB_1970_SN : 6278 , /// Padang 1884 DATUM_PADANG_1884 : 6280 , /// Palestine 1923 DATUM_PALESTINE_1923 : 6281 , /// Pointe Noire DATUM_POINTE_NOIRE : 6282 , /// Provisional South Amer. Datum 1956 DATUM_PSAD_1956 : 6248 , /// Pulkovo 1942 DATUM_PULKOVO_1942 : 6284 , /// Pulkovo 1995 DATUM_PULKOVO_1995 : 6200 , /// Qatar DATUM_QATAR : 6285 , /// Qatar 1948 DATUM_QATAR_1948 : 6286 , /// Qornoq DATUM_QORNOQ : 6287 , ///South American Datum 1969 DATUM_SAD_1969 : 6291 , /// Sapper Hill 1943 DATUM_SAPPER_HILL_1943 : 6292 , /// Schwarzeck DATUM_SCHWARZECK : 6293 , /// Segora DATUM_SEGORA : 6294 , /// Serindung DATUM_SERINDUNG : 6295 , /// Stockholm 1938 DATUM_STOCKHOLM_1938 : 6308 , /// Sudan DATUM_SUDAN : 6296 , /// Tananarive 1925 DATUM_TANANARIVE_1925 : 6297 , /// Timbalai 1948 DATUM_TIMBALAI_1948 : 6298 , /// TM65 DATUM_TM65 : 6299 , /// TM75 DATUM_TM75 : 6300 , /// Tokyo DATUM_TOKYO : 6301 , /// Trinidad 1903 DATUM_TRINIDAD_1903 : 6302 , /// Trucial Coast 1948 DATUM_TRUCIAL_COAST_1948 : 6303 , /// Voirol 1875 DATUM_VOIROL_1875 : 6304 , /// Voirol Unifie 1960 DATUM_VOIROL_UNIFIE_1960 : 6305 , /// WGS 1972 DATUM_WGS_1972 : 6322 , /// WGS 1972 Transit Broadcast Ephemeris DATUM_WGS_1972_BE : 6324 , /// WGS 1984 DATUM_WGS_1984 : 6326 , /// Yacare DATUM_YACARE : 6309 , /// Yoff DATUM_YOFF : 6310 , /// Zanderij DATUM_ZANDERIJ : 6311 , /// European 1979 DATUM_EUROPEAN_1979 : 39201 , /// Everest - Bangladesh DATUM_EVEREST_BANGLADESH : 39202, /// Everest - India and Nepal DATUM_EVEREST_INDIA_NEPAL : 39203, /// Hjorsey 1955 DATUM_HJORSEY_1955 : 39204, /// Hong Kong 1963 DATUM_HONG_KONG_1963 : 39205, /// Oman DATUM_OMAN : 39206, /// South Asia Singapore DATUM_S_ASIA_SINGAPORE : 39207, /// Ayabelle Lighthouse DATUM_AYABELLE : 39208, /// Bissau DATUM_BISSAU : 39209, /// Dabola DATUM_DABOLA : 39210, /// Point 58 DATUM_POINT58 : 39211, /// Astro Beacon E 1945 DATUM_BEACON_E_1945 : 39212, /// Tern Island Astro 1961 DATUM_TERN_ISLAND_1961 : 39213, /// Astronomical Station 1952 DATUM_ASTRO_1952 : 39214, /// Bellevue IGN DATUM_BELLEVUE : 39215, /// Canton Astro 1966 DATUM_CANTON_1966 : 39216, /// Chatham Island Astro 1971 DATUM_CHATHAM_ISLAND_1971 : 39217, /// DOS 1968 DATUM_DOS_1968 : 39218, /// Easter Island 1967 DATUM_EASTER_ISLAND_1967 : 39219, /// Guam 1963 DATUM_GUAM_1963 : 39220, /// GUX 1 Astro DATUM_GUX_1 : 39221, /// Johnston Island 1961 DATUM_JOHNSTON_ISLAND_1961 : 39222, /// Kusaie Astro 1951 DATUM_KUSAIE_1951 : 39259, /// Midway Astro 1961 DATUM_MIDWAY_1961 : 39224, /// Old Hawaiian DATUM_OLD_HAWAIIAN : 39225, /// Pitcairn Astro 1967 DATUM_PITCAIRN_1967 : 39226, /// Santo DOS 1965 DATUM_SANTO_DOS_1965 : 39227, /// Viti Levu 1916 DATUM_VITI_LEVU_1916 : 39228, /// Wake-Eniwetok 1960 DATUM_WAKE_ENIWETOK_1960 : 39229, /// Wake Island Astro 1952 DATUM_WAKE_ISLAND_1952 : 39230, /// Anna 1 Astro 1965 DATUM_ANNA_1_1965 : 39231, /// Gan 1970 DATUM_GAN_1970 : 39232, /// ISTS 073 Astro 1969 DATUM_ISTS_073_1969 : 39233, /// Kerguelen Island 1949 DATUM_KERGUELEN_ISLAND_1949 : 39234, /// Reunion DATUM_REUNION : 39235, /// Antigua Island Astro 1943 DATUM_ANTIGUA_ISLAND_1943 : 39236, /// Ascension Island 1958 DATUM_ASCENSION_ISLAND_1958 : 39237, /// Astro DOS 71/4 DATUM_DOS_71_4 : 39238, /// Cape Canaveral DATUM_CACANAVERAL : 39239, /// Fort Thomas 1955 DATUM_FORT_THOMAS_1955 : 39240, /// Graciosa Base SW 1948 DATUM_GRACIOSA_1948 : 39241, /// ISTS 061 Astro 1968 DATUM_ISTS_061_1968 : 39242, /// L.C. 5 Astro 1961 DATUM_LC5_1961 : 39243, /// Montserrat Isl Astro 1958 DATUM_MONTSERRAT_ISLAND_1958: 39244, /// Observ. Meteorologico 1939 DATUM_OBSERV_METEOR_1939 : 39245, /// Pico de Las Nieves DATUM_PICO_DE_LAS_NIEVES : 39246, /// Porto Santo 1936 DATUM_PORTO_SANTO_1936 : 39247, /// Puerto Rico DATUM_PUERTO_RICO : 39248, /// Sao Braz DATUM_SAO_BRAZ : 39249, /// Selvagem Grande 1938 DATUM_SELVAGEM_GRANDE_1938 : 39250, /// Tristan Astro 1968 DATUM_TRISTAN_1968 : 39251, /// American Samoa 1962 DATUM_SAMOA_1962 : 39252, /// Camp Area Astro DATUM_CAMP_AREA : 39253, /// Deception Island DATUM_DECEPTION_ISLAND : 39254, /// Gunung Segara DATUM_GUNUNG_SEGARA : 39255, /// Indian 1960 DATUM_INDIAN_1960 : 39256, /// S-42 Hungary DATUM_S42_HUNGARY : 39257, /// S-JTSK DATUM_S_JTSK : 39258, /// Alaskan Islands DATUM_ALASKAN_ISLANDS : 39260, /// Japan 2000 : ITRF DATUM_JAPAN_2000 : 39301, /// Xian 1980 DATUM_XIAN_1980 : 39312, //{{added by qianjn in 2008-12-30 10:33:39 ‘ˆº”‘≠“Ú£∫ /// China 2000 DATUM_CHINA_2000 : 39313, /// Azores Occidental Islands 1939 DATUM_AZORES_OCCIDENTAL_ISLANDS_1939 : 6182, /// Azores Central Islands 1948 DATUM_AZORES_CENTRAL_ISLANDS_1948 : 6183, /// Azores Oriental Islands 1940 DATUM_AZORES_ORIENTAL_ISLANDS_1940 : 6184, /// Madeira 1936 DATUM_MADEIRA_1936 : 6185, /// ITRF 1993 DATUM_ITRF_1993 : 6652, /// Lisbon 1890 (Lisbon) DATUM_LISBON_1890 : 6904 } /** 单位值 */ export type TUnit = IUnit[keyof IUnit] /** 投影类型值 */ export type TProjectionType = IProjectionType[keyof IProjectionType] /** 空间坐标系类型值 */ export type TGeoSpatialRefType = IGeoSpatialRefType[keyof IGeoSpatialRefType] /** 地球椭球体参数对象类型值 */ export type TGeoSpheroidType = IGeoSpheroidType[keyof IGeoSpheroidType] /** 大地参照系类型值 */ export type TGeoDatumType = IGeoDatumType[keyof IGeoDatumType] /** 投影坐标系转换参数类。 * * 通常包括平移、旋转和比例因子。 * * 该投影坐标系转换类用于进行参照系的变换的,有参照系平移、旋转和比例尺缩放因子等参数,在投影转换中,如果源和目标投影的地理坐标系不同,则需要进行参照系变换,通常有三参数、七参数等方法,指的就是这些变换参数。 * SuperMap 提供常用的六种参照系转换方法,详见 CoordSysTransMethod 方法。不同的参照系转换方法需要指定不同的转换参数: * 1. 三参数转换法(MTH_GEOCENTRIC_TRANSLATION)、莫洛金斯基转换法(MTH_MOLODENSKY)、简化的莫洛金斯基转换法(MTH_MOLODENSKY_ABRIDGED)属于精度较低的几种转换方法,在数据精度要求不高的情况下一般可以采用这几种方法。 * 这三种转换法需要给定三个平移转换参数:X 轴坐标偏移量(translateX)、Y 轴坐标偏移量(translateY)和 Z 轴偏移量(translateZ); * 2. 位置矢量法(MTH_POSITION_VECTOR)、基于地心的七参数转换法(MTH_COORDINATE_FRAME)、布尔莎方法(MTH_BURSA_WOLF)属于精度较高的几种转换方法。需要七个参数来进行调整和转换,包括除上述的三个平移转换参数外,还需要设置 * 三个旋转转换参数(X 轴旋转角度(rotateX)、Y 轴旋转角度(rotateY)和 Z 轴旋转角度(rotateZ)和投影比例尺差参数(scaleDifference))。 */ export type CoordSysTransParameter = { /** X 轴的坐标偏移量。单位为米。默认值为 0 */ translateX: number /** Y 轴的坐标偏移量。单位为米。默认值为 0 */ translateY: number /** Z 轴的坐标偏移量。单位为米。默认值为 0 */ translateZ: number /** X 轴的旋转角度。单位为弧度。默认值为 0。*/ rotateX?: number /** Y 轴的旋转角度。单位为弧度。默认值为 0。*/ rotateY?: number /** Z 轴的旋转角度。单位为弧度。默认值为 0。*/ rotateZ?: number /** 投影比例尺差。单位为百万分之一。默认值为 0。*/ scaleDifference?: number } /** * 1. 在投影转换中,如果源投影和目标投影的地理坐标系不同,则需要进行参照系的转换。 * 2. 参照系的转换有两种,基于网格的转换和基于公式的转换。本类所提供的转换方法均为基于公式的转换。依据转换参数的不同可以分为三参数法和七参数法。目前使用最广泛的是七参数法。参数信息参见 * {@link CoordSysTransParameter} 。 */ export interface ICoordSysTransMethod { /** 基于地心的三参数转换法。 */ MTH_GEOCENTRIC_TRANSLATION: number /** 莫洛金斯基(Molodensky)转换法 */ MTH_MOLODENSKY: number /** 简化的莫洛金斯基转换法 */ MTH_MOLODENSKY_ABRIDGED: number /** 位置矢量法 */ MTH_POSITION_VECTOR: number /** 基于地心的七参数转换法 */ MTH_COORDINATE_FRAME: number /** 布尔莎方法 */ MTH_BURSA_WOLF: number } /** * 1. 在投影转换中,如果源投影和目标投影的地理坐标系不同,则需要进行参照系的转换。 * 2. 参照系的转换有两种,基于网格的转换和基于公式的转换。本类所提供的转换方法均为基于公式的转换。依据转换参数的不同可以分为三参数法和七参数法。目前使用最广泛的是七参数法。参数信息参见 * {@link CoordSysTransParameter} 。 */ export type TCoordSysTransMethod = ICoordSysTransMethod[keyof ICoordSysTransMethod] /** 投影转换参数类 */ export interface CoordSysTransInfo { /** 坐标系xml字符串 */ coordSysXml: string /** 投影转换参数 */ coordSysTransParameter?: CoordSysTransParameter, /** 投影转换方法 */ coordSysTransMethod?: TCoordSysTransMethod } /** * 投影转换公共方法 * @param srcXml 原投影xml字符串形式的描述 * @param targetXml 目标投影xml字符串形式的描述 * @param points 需要进行投影转换的点串 * @returns 投影转换后的结果点串 */ export function CoordSysTranslator(srcXml: string, targetXml: string, points: Array<Point2D>): Promise<Array<Point2D>> { return SData.CoordSysTranslator(srcXml, targetXml, points) } /** * 将经纬度坐标系类型的点串转换为其他坐标系类型的点串 * @param targeXml 目标坐标系xml字符串形式的描述 * @param points 需要转换的点串 * @returns 投影转换后的结果点串 */ export function CoordSysTranslatorGPSToPrj(targetXml: string, points: Point2D[]): Promise<Point2D[]> { return SData.CoordSysTranslatorGPSToPrj(targetXml, points) } /** * 将其他坐标系类型的点串转换为经纬度坐标系类型的点串 * @param srcXml 原始坐标系xml字符串形式的描述 * @param points 需要转换点串 * @returns 转换后的结果点串 */ export function CoordSysTranslatorPrjToGPS(srcXml: string, points: Point2D[]): Promise<Point2D[]> { return SData.CoordSysTranslatorPrjToGPS(srcXml, points) } /** * 数据集投影转换 * @param dataInfo 转换目标数据集 * @param transInfo 转换参数 * @param saveDataInfo 另存为数据集, 若为空,则不另存为 * @returns 返回转化是否成功 */ export function CoordSysTranslatorDataset (dataInfo: DatasetInfo, transInfo: CoordSysTransInfo, saveDataInfo: DatasetInfo | null = null) { return SData.CoordSysTranslatorDataset(dataInfo, transInfo, saveDataInfo) } /** * 递归设置类型 T 中非 ”type“ 字段为可选 */ type RecursivePartialExceptType<T> = { [P in keyof T]?: T[P] extends (object | undefined) ? RecursivePartialExceptType<T[P]> : T[P] } & { [key in keyof T as Extract<key, "type">]: T[key] } /** * 投影坐标系转换参数,作为参数时,不必设置所有字段 */ export type PrjCoordSysParam = RecursivePartialExceptType<PrjCoordSys> /** * 根据投影坐标系参数对象返回其xml字符串形式的描述 * @param prjCoordSys 投影坐标系参数对象 * @returns xml字符串形式的描述 */ export function prjCoordSysToXml(prjCoordSys: PrjCoordSysParam): Promise<string> { return SData.prjCoordSysToXml(prjCoordSys) } /** * 投影坐标文件转xml字符串形式的描述 * @param filePath 投影文件路径,绝对路径 * @param type 指定的投影文件的版本 * @return 构建成功返回xml字符串形式的描述,失败返回空字符串 */ export function prjCoordSysFileToXml(filePath: string,type:1|2): Promise<string> { return SData.prjCoordSysFileToXml(filePath,type) } /** * 根据投影坐标系xml字符串形式的描述返回其对象 * @param prjCoordSysXml 投影坐标系xml字符串形式的描述 * @returns 投影坐标系对象,未成功获取返回空 */ export function prjCoordSysFromXml(prjCoordSysXml: string): Promise<PrjCoordSys | null | undefined> { return SData.prjCoordSysFromXml(prjCoordSysXml) } /* ------------------------------------------------------数据导入、导出接口------------------------------------------------------------*/ /** * 导入文件工作空间到程序目录 * @param infoDic 工作空间连接信息 * @returns 导入的工作空间中,地图名列表 */ export function importWorkspace(infoDic: WorkspaceConnectionInfo): Promise<string[]> { return SData.importWorkspace(infoDic) } /** * 导出地图为最小工作空间 * @param mapName 地图名字(不含后缀) * @param exportWorkspacePath 导出的工作空间绝对路径(含后缀) * @param bExportMedia 是否导出多媒体文件 * @returns 导出成功返回true,否则返回false * @throws 许可异常 */ export function exportWorkspaceByMap(mapName: string, exportWorkspacePath: string, bExportMedia: boolean): Promise<boolean> { return SData.exportWorkspaceByMap(mapName, exportWorkspacePath, bExportMedia) } /** * 初始化用户工作环境 * @returns 初始化成功返回true,否则返回false */ export function initUserWorkspace(): Promise<boolean> { return SData.initUserWorkspace() } /** * 是否是三维工作空间 * @param server:工作空间文件路径 * @returns 指定工作空间是否包含三维场景 */ export async function is3DWorkspace(info: WorkspaceConnectionInfo): Promise<boolean> { return await SData.is3DWorkspace(info) } /** * 导入三维工作空间 * @param server:工作空间文件路径 * @returns 成功返回 true,失败返回 false */ export async function import3DWorkspace(info: WorkspaceConnectionInfo): Promise<boolean> { return await SData.import3DWorkspace(info) } /** * 导出场景 * @param sceneName 场景名(pxp文件名,不含 .pxp 部分) * @param path 导出目录的路径 * @returns 成功返回 true,失败返回 false * @throws 许可异常 */ export function exportScene(sceneName: string, path: string): Promise<boolean> { return SData.exportScene(sceneName, path) } /* ------------------------------------------------------数据源接口