react-native-mobilex 开发文档
    Preparing search index...

    Type Alias IDatasources

    数据源管理模块。

    管理二维地图数据源,包括添加、查询、删除、字段信息维护、坐标系设置和常见外部格式导入导出。

    type IDatasources = {
        add: (
            param: AddSourceParam,
            createOption?: Partial<DatasourceCreateOption>,
        ) => Promise<string | null>;
        addFeatureAttachment: (
            sourceId: string,
            featureId: number,
            uri: string,
            fileName?: string,
        ) => Promise<IAttachmentInfo>;
        addFieldInfo: (
            dsId: string,
            info: IFieldInfo,
            index?: number,
        ) => Promise<boolean>;
        applyEdits: (
            sourceId: string,
            options?: IApplyEditsOptions,
        ) => Promise<IApplyEditResults>;
        computeVectorBounds: (sourceId: string) => Promise<IRectangle2D>;
        createFromExcelData: (
            name: string,
            data: ExcelData,
            setting: ImportSettingExcel,
            createOption?: Partial<DatasourceCreateOption>,
        ) => Promise<IDatasource | undefined>;
        createFromExcelFile: (
            name: string,
            uri: string,
            setting: ImportSettingExcel,
            createOption?: Partial<DatasourceCreateOption>,
        ) => Promise<IDatasource | undefined>;
        createFromGeoJSON: (
            name: string,
            geoJSON: IGeoJSONData,
            createOption?: Partial<DatasourceCreateOption>,
        ) => Promise<IDatasource[]>;
        createFromGeoJSONFile: (
            name: string,
            uri: string,
            createOption?: Partial<DatasourceCreateOption>,
        ) => Promise<IDatasource[]>;
        createFromIServer: (
            name: string,
            parameter: ICreateFromIServerParameter,
        ) => Promise<IServerDatasource>;
        createFromKML: (
            name: string,
            content: string,
            createOption?: Partial<DatasourceCreateOption>,
        ) => Promise<IDatasource[]>;
        createFromKMLFile: (
            name: string,
            uri: string,
            createOption?: Partial<DatasourceCreateOption>,
        ) => Promise<IDatasource[]>;
        createFromSHPFile: (
            fileUris: string | string[],
            createOption?: Partial<DatasourceCreateOption>,
        ) => Promise<IDatasource[]>;
        deleteFeatureAttachment: (
            sourceId: string,
            featureId: number,
            attachmentId: number,
        ) => Promise<boolean>;
        discardLocalEdits: (sourceId: string) => Promise<number>;
        editFieldInfo: (
            dsId: string,
            nameOrIndex: string | number,
            param: Partial<Pick<IFieldInfo, "caption">>,
        ) => Promise<boolean>;
        fromGeoJSON: (
            sourceId: string,
            data: IGeoJSONData,
            replaceById?: boolean,
        ) => Promise<boolean>;
        fromGeoJSONFile: (
            sourceId: string,
            uri: string,
            replaceById?: boolean,
        ) => Promise<boolean>;
        getAttachmentUrl: (
            sourceId: string,
            featureId: number,
            attachmentId: number,
        ) => Promise<string>;
        getFeatureAttachments: (
            sourceId: string,
            featureId: number,
        ) => Promise<IAttachmentInfo[]>;
        getFieldInfos: (dsId: string, indexes?: number[]) => Promise<IFieldInfo[]>;
        getFieldInfosCount: (dsId: string) => Promise<number>;
        getIServerDataServiceInfo: (url: string) => Promise<IServerDataServiceInfo>;
        getLocalEdits: (sourceId: string) => Promise<IServerLocalEdit[]>;
        getLocalEditsCount: (sourceId: string) => Promise<number>;
        getSource: (id: string) => IDatasource | null;
        getSourceCRS: (sourceId: string) => ICRS | null;
        getSources: () => IDatasource[];
        hasLocalEdits: (sourceId: string) => Promise<boolean>;
        indexOfFieldInfo: (dsId: string, name: string) => Promise<number>;
        moveFieldInfo: (
            dsId: string,
            name: string,
            before?: string,
        ) => Promise<boolean>;
        remove: (id: string) => void;
        removeFieldInfo: (
            dsId: string,
            nameOrIndex: string | number,
        ) => Promise<boolean>;
        setIServerToken: (sourceId: string, token: string) => Promise<void>;
        setSourceCRS: (sourceId: string, crs: ICRS) => boolean;
        toGeoJSON: (
            sourceId: string,
            hasAttribute: boolean,
            position?: { endId: number; startId: number },
        ) => Promise<IGeoJSONData>;
        toGeoJSONFile: (
            sourceId: string,
            hasAttribute: boolean,
            uri: string,
            position?: { endId: number; startId: number },
        ) => Promise<boolean>;
    }
    Index

    Properties

    add: (
        param: AddSourceParam,
        createOption?: Partial<DatasourceCreateOption>,
    ) => Promise<string | null>

    添加数据源。

    Type declaration

    addFeatureAttachment: (
        sourceId: string,
        featureId: number,
        uri: string,
        fileName?: string,
    ) => Promise<IAttachmentInfo>

    为要素新增一个附件:本地即时生效——iserver 工作副本进入编辑历史随 applyEdits 提交; 本地持久化数据源为纯本地附件。内存态数据源抛错。

    文件写入 SDK 自管目录(离线可用);未同步的本地新增要素同样适用, 其附件在要素提交并绑定服务器 ID 后自动上传。

    文件大小:同步到 iServer 的单个附件建议小于 100 MB;服务端 maxAttachmentSize 默认值为 100(单位 M),实际上传上限以服务端配置为准。 本地添加成功不代表上传成功;超过服务端限制会在 applyEdits 上传附件时失败, 请检查提交结果中的附件失败信息。纯本地附件不受此服务端配置约束。

    Type declaration

      • (
            sourceId: string,
            featureId: number,
            uri: string,
            fileName?: string,
        ): Promise<IAttachmentInfo>
      • Parameters

        • sourceId: string

          iServer 工作副本数据源 id

        • featureId: number

          工作副本的稳定本地 ID,不能用 SMID 替代

        • uri: string

          本地文件 uri(如取图、取文件返回的 uri)

        • OptionalfileName: string

          附件文件名;缺省取 uri 中的文件名

        Returns Promise<IAttachmentInfo>

    addFieldInfo: (
        dsId: string,
        info: IFieldInfo,
        index?: number,
    ) => Promise<boolean>

    添加字段信息。

    Type declaration

      • (dsId: string, info: IFieldInfo, index?: number): Promise<boolean>
      • Parameters

        • dsId: string

          数据源 id。

        • info: IFieldInfo

          要添加的字段信息。

        • Optionalindex: number

          添加位置;不传时添加到末尾。

        Returns Promise<boolean>

        添加成功返回 true;数据源不存在或不支持字段信息时返回 false。

    applyEdits: (
        sourceId: string,
        options?: IApplyEditsOptions,
    ) => Promise<IApplyEditResults>

    将当前不可变编辑快照显式上传到 iServer。

    实时进度通过 onDatasourceUploadProgress 事件提供,按要素修改及附件操作条目统计。 上传使用 iClient FeatureService.editFeatures。调用期间产生的新 revision 不属于本次快照; 不确定新增默认跳过,只有明确设置 retryUncertainAdds 才会重试。

    Type declaration

    computeVectorBounds: (sourceId: string) => Promise<IRectangle2D>

    计算矢量数据源空间范围。

    Type declaration

      • (sourceId: string): Promise<IRectangle2D>
      • Parameters

        • sourceId: string

          矢量数据源 id。

        Returns Promise<IRectangle2D>

        数据源中所有对象的空间范围。

    传入的数据源非矢量数据错误

    createFromExcelData: (
        name: string,
        data: ExcelData,
        setting: ImportSettingExcel,
        createOption?: Partial<DatasourceCreateOption>,
    ) => Promise<IDatasource | undefined>

    从读取的 excel 数据中创建点数据源

    原始坐标系默认 WGS84(EPSG:4326),投影坐标须通过 createOption.crs 指定。 首个无效坐标会以 INVALID_DATA 中止导入并报告字段及从 1 开始的数据行序号。

    Type declaration

    createFromExcelFile: (
        name: string,
        uri: string,
        setting: ImportSettingExcel,
        createOption?: Partial<DatasourceCreateOption>,
    ) => Promise<IDatasource | undefined>

    从 excel 文件创建点数据源

    默认将首行作为字段名,原始坐标系默认 WGS84(EPSG:4326)。 投影坐标须通过 createOption.crs 指定;无效坐标会以 INVALID_DATA 中止整个导入,报告原工作表行号或 CSV 物理行号及字段。

    Type declaration

    createFromGeoJSON: (
        name: string,
        geoJSON: IGeoJSONData,
        createOption?: Partial<DatasourceCreateOption>,
    ) => Promise<IDatasource[]>

    从 GeoJSON 数据创建新数据源

    GeoJSON 数据会先转换为单独的点,线,面数据再进行导入

    Type declaration

    createFromGeoJSONFile: (
        name: string,
        uri: string,
        createOption?: Partial<DatasourceCreateOption>,
    ) => Promise<IDatasource[]>

    从 GeoJSON 文件创建新数据源

    Type declaration

      • (
            name: string,
            uri: string,
            createOption?: Partial<DatasourceCreateOption>,
        ): Promise<IDatasource[]>
      • Parameters

        • name: string

          数据源名

        • uri: string

          GeoJSON 文件 uri

        • OptionalcreateOption: Partial<DatasourceCreateOption>

          创建选项;encoding 指定文件字符编码,省略时为 UTF-8。

        Returns Promise<IDatasource[]>

        添加的数据源数组

    createFromIServer: (
        name: string,
        parameter: ICreateFromIServerParameter,
    ) => Promise<IServerDatasource>

    从 iServer 下载数据并创建可跨应用重启恢复的原生工作副本。

    创建阶段需要网络和已初始化的原生 workspace。成功后返回对象含 mobilex://sources/... URI;等待要素及全部附件下载、落盘成功后才返回,进度通过 onDatasourceDownloadProgress 推送。 附件失败抛出 ATTACHMENT_DOWNLOAD_FAILED,并清理本次新建的不完整副本;其它副本不受影响。 后续 CRUD 可离线执行,只有 applyEdits 会上传本地编辑。 要素使用副本内递增的正数 ID,同步和重开后保持不变;选中、查询、编辑、附件接口 均使用本地 ID。SMID 表示独立的服务器 ID,未同步新增要素为空。 旧工作副本首次挂载会备份并升级,升级后的副本不能交给旧版 SDK 继续编辑。

    Type declaration

    createFromKML: (
        name: string,
        content: string,
        createOption?: Partial<DatasourceCreateOption>,
    ) => Promise<IDatasource[]>

    从 kml 数据创建新数据源

    kml 数据会先转换为单独的点,线,面数据再进行导入

    Type declaration

    createFromKMLFile: (
        name: string,
        uri: string,
        createOption?: Partial<DatasourceCreateOption>,
    ) => Promise<IDatasource[]>

    从 kml 文件创建新数据源

    kml 数据会先转换为单独的点,线,面数据再进行导入

    Type declaration

      • (
            name: string,
            uri: string,
            createOption?: Partial<DatasourceCreateOption>,
        ): Promise<IDatasource[]>
      • Parameters

        • name: string

          kml 数据名

        • uri: string

          kml 文件 uri

        • OptionalcreateOption: Partial<DatasourceCreateOption>

          创建选项;encoding 指定 XML 文件的字节编码,省略时保留原 UTF-8 读取行为。

        Returns Promise<IDatasource[]>

        添加的数据源数组

    createFromSHPFile: (
        fileUris: string | string[],
        createOption?: Partial<DatasourceCreateOption>,
    ) => Promise<IDatasource[]>

    从 shp 文件创建新数据源

    Type declaration

      • (
            fileUris: string | string[],
            createOption?: Partial<DatasourceCreateOption>,
        ): Promise<IDatasource[]>
      • Parameters

        • fileUris: string | string[]

          shp 文件路径数组或包含shp数据的zip路径

        • OptionalcreateOption: Partial<DatasourceCreateOption>

          创建选项;encoding 指定 DBF 属性编码,省略时由 GDAL 读取文件编码信息。

        Returns Promise<IDatasource[]>

        添加的数据源数组

    await controller.datasources.createFromSHPFile(uri, { createLocal: true, encoding: 'gbk' })
    
    deleteFeatureAttachment: (
        sourceId: string,
        featureId: number,
        attachmentId: number,
    ) => Promise<boolean>

    删除 iServer 要素的一个附件。

    Type declaration

      • (sourceId: string, featureId: number, attachmentId: number): Promise<boolean>
      • Parameters

        • sourceId: string

          iServer 工作副本数据源 id

        • featureId: number

          本地要素 ID;iServer 工作副本使用稳定本地 ID

        • attachmentId: number

          附件 id(来自列表或上传结果)

        Returns Promise<boolean>

    discardLocalEdits: (sourceId: string) => Promise<number>

    放弃指定 iServer 工作副本的全部未提交编辑(要素与附件),回到最近一次 成功提交后的状态。无需网络;本地暂存的附件文件一并清理,已提交内容 与服务端不受影响。

    Type declaration

      • (sourceId: string): Promise<number>
      • Parameters

        • sourceId: string

          iServer 工作副本数据源 id。

        Returns Promise<number>

        放弃的编辑条数;0 表示当前没有待提交编辑。

    editFieldInfo: (
        dsId: string,
        nameOrIndex: string | number,
        param: Partial<Pick<IFieldInfo, "caption">>,
    ) => Promise<boolean>

    修改字段信息。

    当前仅支持修改字段标题 caption。

    Type declaration

      • (
            dsId: string,
            nameOrIndex: string | number,
            param: Partial<Pick<IFieldInfo, "caption">>,
        ): Promise<boolean>
      • Parameters

        • dsId: string

          数据源 id。

        • nameOrIndex: string | number

          字段名称或字段序号。

        • param: Partial<Pick<IFieldInfo, "caption">>

          要修改的信息。

        Returns Promise<boolean>

        修改成功返回 true;字段不存在、数据源不存在或不支持字段信息时返回 false。

    fromGeoJSON: (
        sourceId: string,
        data: IGeoJSONData,
        replaceById?: boolean,
    ) => Promise<boolean>

    导入 GeoJSON 数据到指定矢量数据源中。

    Type declaration

      • (sourceId: string, data: IGeoJSONData, replaceById?: boolean): Promise<boolean>
      • Parameters

        • sourceId: string

          要导入的矢量数据源 id。

        • data: IGeoJSONData

          要导入的 GeoJSON 数据。

        • OptionalreplaceById: boolean

          是否替换相同 id 数据。默认值:true。

        Returns Promise<boolean>

        导入成功返回 true;数据源不存在或不是矢量数据源时返回 false。

    fromGeoJSONFile: (
        sourceId: string,
        uri: string,
        replaceById?: boolean,
    ) => Promise<boolean>

    导入 GeoJSON 文件数据到指定矢量数据源中。

    Type declaration

      • (sourceId: string, uri: string, replaceById?: boolean): Promise<boolean>
      • Parameters

        • sourceId: string

          要导入的矢量数据源 id。

        • uri: string

          要导入的 GeoJSON 文件 uri。

        • OptionalreplaceById: boolean

          是否替换相同 id 数据。

        Returns Promise<boolean>

        导入成功返回 true;未初始化 client 文件环境、文件读取失败或数据源不可写时返回 false。

    getAttachmentUrl: (
        sourceId: string,
        featureId: number,
        attachmentId: number,
    ) => Promise<string>

    构造附件访问地址:已本地缓存时返回本地服务 /file URL(离线可渲染), 否则返回 iServer 下载地址。

    Type declaration

      • (sourceId: string, featureId: number, attachmentId: number): Promise<string>
      • Parameters

        • sourceId: string

          iServer 工作副本数据源 id

        • featureId: number

          本地要素 ID;iServer 工作副本使用稳定本地 ID

        • attachmentId: number

          附件 id

        Returns Promise<string>

    getFeatureAttachments: (
        sourceId: string,
        featureId: number,
    ) => Promise<IAttachmentInfo[]>

    获取要素的附件列表:只读本地附件目录(文件系统即事实源),不访问任何远端。

    通用能力:所有持久化数据源可用——iserver 工作副本在创建时全量同步附件并随 applyEdits 提交增删;本地持久化数据源为纯本地附件(无同步语义)。 内存态数据源(无 uri)抛 ATTACHMENT_SOURCE_NOT_PERSISTED。

    Type declaration

      • (sourceId: string, featureId: number): Promise<IAttachmentInfo[]>
      • Parameters

        • sourceId: string

          数据源 id

        • featureId: number

          本地要素 ID;iServer 工作副本使用稳定本地 ID

        Returns Promise<IAttachmentInfo[]>

    getFieldInfos: (dsId: string, indexes?: number[]) => Promise<IFieldInfo[]>

    获取数据源字段信息。

    Type declaration

      • (dsId: string, indexes?: number[]): Promise<IFieldInfo[]>
      • Parameters

        • dsId: string

          数据源 id。

        • Optionalindexes: number[]

          指定字段序号数组;不传时返回全部字段。

        Returns Promise<IFieldInfo[]>

        字段信息数组;数据源不存在或不支持字段信息时返回空数组。

    getFieldInfosCount: (dsId: string) => Promise<number>

    获取数据源字段信息数量。

    Type declaration

      • (dsId: string): Promise<number>
      • Parameters

        • dsId: string

          数据源 id。

        Returns Promise<number>

        字段数量;数据源不存在或不支持字段信息时返回 0。

    getIServerDataServiceInfo: (url: string) => Promise<IServerDataServiceInfo>

    浏览 iServer 数据服务目录:返回数据源列表及每个数据集摘要(几何类型、要素数、可编辑、附件支持)。

    只读目录不建立工作副本;内部并发请求元数据,个别数据集元数据失败时该条目降级(metadataFailed)。

    Type declaration

    url 非法抛 INVALID_ARGUMENT;要求登录抛 ISERVER_AUTHENTICATION_FAILED;网络/HTTP/响应异常抛 ISERVER_CATALOG_REQUEST_FAILED

    getLocalEdits: (sourceId: string) => Promise<IServerLocalEdit[]>

    获取本地编辑的防御性快照,可用于展示待提交、失败和不确定状态。

    getLocalEditsCount: (sourceId: string) => Promise<number>

    获取合并后的本地编辑数量;同一要素最多计一条。

    getSource: (id: string) => IDatasource | null

    获取数据源。

    Type declaration

      • (id: string): IDatasource | null
      • Parameters

        • id: string

          数据源 id。

        Returns IDatasource | null

        序列化后的数据源对象;指定数据源不存在时返回 null。

    getSourceCRS: (sourceId: string) => ICRS | null

    获取数据源原始坐标系。

    Type declaration

      • (sourceId: string): ICRS | null
      • Parameters

        • sourceId: string

          数据源 id。

        Returns ICRS | null

        数据源坐标系;非矢量数据源或数据源不存在时返回 null。

    getSources: () => IDatasource[]

    获取所有数据源。

    Type declaration

    hasLocalEdits: (sourceId: string) => Promise<boolean>

    判断指定 iServer 工作副本是否有尚未成功上传的本地编辑。

    indexOfFieldInfo: (dsId: string, name: string) => Promise<number>

    根据名称获取字段位置。

    Type declaration

      • (dsId: string, name: string): Promise<number>
      • Parameters

        • dsId: string

          数据源 id。

        • name: string

          字段名称。

        Returns Promise<number>

        字段在集合中的序号;字段不存在、数据源不存在或不支持字段信息时返回 -1。

    moveFieldInfo: (dsId: string, name: string, before?: string) => Promise<boolean>

    移动字段位置。

    Type declaration

      • (dsId: string, name: string, before?: string): Promise<boolean>
      • Parameters

        • dsId: string

          数据源 id。

        • name: string

          要移动的字段名称。

        • Optionalbefore: string

          移动到该字段前;不传时移动到末尾。

        Returns Promise<boolean>

        移动成功返回 true;数据源不存在或不支持字段信息时返回 false。

    remove: (id: string) => void

    移除数据源。

    Type declaration

      • (id: string): void
      • Parameters

        • id: string

          要移除的数据源 id。

        Returns void

    removeFieldInfo: (
        dsId: string,
        nameOrIndex: string | number,
    ) => Promise<boolean>

    删除指定字段。

    Type declaration

      • (dsId: string, nameOrIndex: string | number): Promise<boolean>
      • Parameters

        • dsId: string

          数据源 id。

        • nameOrIndex: string | number

          字段名称或字段序号。

        Returns Promise<boolean>

        删除成功返回 true;数据源不存在或不支持字段信息时返回 false。

    setIServerToken: (sourceId: string, token: string) => Promise<void>

    更新已挂载 iServer 工作副本的 Token,保留本地要素、待提交编辑和附件。

    凭据写入工作副本绑定,重新打开后仍有效;不会重新下载数据。 上传或附件同步期间以 APPLY_EDITS_IN_PROGRESS 拒绝,存储失败保留原凭据,可重试。 iClient SecurityManager 按服务域共享凭据,同域请求会使用该注册值。

    Type declaration

      • (sourceId: string, token: string): Promise<void>
      • Parameters

        • sourceId: string

          当前地图中已挂载的 iServer 工作副本 id。

        • token: string

          新 Token;空字符串清除已有凭据。

        Returns Promise<void>

        凭据持久化和内存请求配置更新完成。

    setSourceCRS: (sourceId: string, crs: ICRS) => boolean

    设置数据源原始坐标系。

    设置 GeoJSON 数据源坐标系后会请求刷新地图;返回值仅表示元数据设置成功。 异步刷新失败会记录 warning,已设置的坐标系不会回滚;需要等待画面时再 await map.refresh()。

    Type declaration

      • (sourceId: string, crs: ICRS): boolean
      • Parameters

        • sourceId: string

          数据源 id。

        • crs: ICRS

          原始坐标系。

        Returns boolean

        设置成功返回 true;非矢量数据源或数据源不存在时返回 false。

    toGeoJSON: (
        sourceId: string,
        hasAttribute: boolean,
        position?: { endId: number; startId: number },
    ) => Promise<IGeoJSONData>

    将指定矢量数据源转为 GeoJSON 对象。

    Type declaration

      • (
            sourceId: string,
            hasAttribute: boolean,
            position?: { endId: number; startId: number },
        ): Promise<IGeoJSONData>
      • Parameters

        • sourceId: string

          要转换的矢量数据源 id。

        • hasAttribute: boolean

          是否包含属性数据。

        • Optionalposition: { endId: number; startId: number }

          指定起始和终止记录 id;不传时导出全部数据。

        Returns Promise<IGeoJSONData>

        GeoJSON 数据。

    非矢量数据源错误

    toGeoJSONFile: (
        sourceId: string,
        hasAttribute: boolean,
        uri: string,
        position?: { endId: number; startId: number },
    ) => Promise<boolean>

    将指定矢量数据源转为 GeoJSON 文件。

    Type declaration

      • (
            sourceId: string,
            hasAttribute: boolean,
            uri: string,
            position?: { endId: number; startId: number },
        ): Promise<boolean>
      • Parameters

        • sourceId: string

          要转换的矢量数据源 id。

        • hasAttribute: boolean

          是否包含属性数据。

        • uri: string

          要保存的文件 uri。

        • Optionalposition: { endId: number; startId: number }

          指定起始和终止记录 id;不传时导出全部数据。

        Returns Promise<boolean>

        文件写入成功返回 true;未初始化 client 文件环境或写入失败时返回 false。

    非矢量数据源错误