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

    Type Alias IMap

    地图控制模块。

    控制二维地图的打开、保存、视图范围、坐标系、交互状态、绘制参数和截图等能力。

    type IMap = {
        addTouchPoint: (px: IPoint2D) => void;
        appointEditGeometry: (layerId: string, geoId: number) => Promise<boolean>;
        capture: () => string;
        clear: () => void;
        closeMap: () => Promise<void>;
        deleteCurrentGeometry: () => void;
        deleteEditGeometry: () => void;
        deleteEditVertex: () => void;
        flyTo: (
            param: { center: IPoint2D; duration?: number; scale?: number },
        ) => void;
        getAction: () => Action;
        getBackgroundColor: () => IColor;
        getCenter: () => IPoint2D;
        getCRS: () => ICRS;
        getCurrentGeometry: <T extends IGeometry>() => Promise<T | undefined>;
        getDrawOption: () => DrawOption;
        getDynamicProjection: () => boolean;
        getMap: () => IMapX;
        getMaxScale: () => number;
        getMinScale: () => number;
        getNodeColor: () => IColor;
        getNodeSize: () => number;
        getScale: () => number;
        getSelectedNodeColor: () => IColor;
        getSelectedNodeSize: () => number;
        getSelectedNodeStrokeColor: () => IColor;
        getSelectedNodeStrokeWidth: () => number;
        getSelectedVertex: () => IPoint2D[];
        getSelectOption: () => SelectOption;
        getStrokeColor: () => IColor;
        getStrokeFillColor: () => IColor;
        getStrokeWidth: () => number;
        getTextColor: () => IColor;
        getTextHaloColor: () => IColor;
        getTextHaloWidth: () => number;
        getTextSize: () => number;
        getTouchBuffer: () => number;
        getViewBounds: () => IRectangle2D;
        mapToPx: (map: IPoint2D) => IPoint2D;
        openMap: (
            webmap: IMapX | string,
            override?: Partial<IMap2D>,
        ) => Promise<void>;
        panTo: (center: IPoint2D, duration: number) => void;
        pxToMap: (px: IPoint2D) => IPoint2D;
        refresh: () => Promise<void>;
        rename: (name: string) => void;
        saveMap: (name?: string) => Promise<string | undefined>;
        setAction: (action: Action) => void;
        setAppResourceBase: (base: string) => void;
        setBackgroundColor: (color?: IColor) => void;
        setCenter: (center: IPoint2D) => void;
        setCRS: (
            epsg: number | "WebMercator" | "WGS84" | "CGCS2000",
            algorithm?: "GCJ02" | "BD09",
        ) => void;
        setDrawOption: (option: Partial<DrawOption>) => void;
        setDynamicProjection: (enable: boolean) => void;
        setMaxScale: (maxScale?: number) => void;
        setMeasureAreaShowLength: (show: boolean) => void;
        setMeasureLengthShowAngle: (show: boolean) => void;
        setMeasureTextShow: (show: boolean) => void;
        setMinScale: (minScale?: number) => void;
        setNodeColor: (color: IColor) => void;
        setNodeSize: (size: number) => void;
        setScale: (scale: number) => void;
        setSelectedNodeColor: (color: IColor) => void;
        setSelectedNodeSize: (size: number) => void;
        setSelectedNodeStrokeColor: (color: IColor) => void;
        setSelectedNodeStrokeWidth: (width: number) => void;
        setSelectOption: (option: Partial<SelectOption>) => void;
        setStrokeColor: (color: IColor) => void;
        setStrokeFillColor: (color: IColor) => void;
        setStrokeWidth: (width: number) => void;
        setTextColor: (color: IColor) => void;
        setTextHaloColor: (color: IColor) => void;
        setTextHaloWidth: (width: number) => void;
        setTextSize: (size: number) => void;
        setTouchBuffer: (buffer: number) => void;
        setViewBounds: (
            bounds: IRectangle2D,
            setting?: Partial<SetBoundsSetting>,
        ) => void;
        submit: () => void;
        undo: () => void;
    }
    Index

    Properties

    addTouchPoint: (px: IPoint2D) => void

    在屏幕指定位置模拟一次点击

    Type declaration

    appointEditGeometry: (layerId: string, geoId: number) => Promise<boolean>

    指定编辑对象

    编辑对象需要在可编辑图层上

    Type declaration

      • (layerId: string, geoId: number): Promise<boolean>
      • Parameters

        • layerId: string

          图层id

        • geoId: number

          要指定的几何对象id

        Returns Promise<boolean>

        成功返回 true,失败返回 false

    capture: () => string

    截图。

    Type declaration

      • (): string
      • Returns string

        PNG 类型的 base64 字符串。

    clear: () => void
    • 清空临时绘制的测量对象
    closeMap: () => Promise<void>

    关闭当前地图

    deleteCurrentGeometry: () => void

    删除当前绘制出来的几何对象

    deleteEditGeometry: () => void

    选择模式下删除当前编辑对象

    deleteEditVertex: () => void

    节点编辑模式下删除当前选中的节点。

    支持 LineString、Polygon(含洞)、MultiLineString 和 MultiPolygon。 删除后每个线部件须保留至少 2 个不同 XY 节点,每个面环须保留至少 3 个不同 XY 节点; 不删除部件或面环。选中路径无效或任一部件、环不满足要求时,整批不修改并保留选择。

    flyTo: (param: { center: IPoint2D; duration?: number; scale?: number }) => void

    飞行到某一位置

    Type declaration

      • (param: { center: IPoint2D; duration?: number; scale?: number }): void
      • Parameters

        • param: { center: IPoint2D; duration?: number; scale?: number }

          飞行参数

        Returns void

    getAction: () => Action

    获取当前地图操作状态

    getBackgroundColor: () => IColor

    获取地图底色

    getCenter: () => IPoint2D

    获取当前地图中心点坐标。

    Type declaration

    getCRS: () => ICRS

    获取当前地图显示坐标系。

    Type declaration

      • (): ICRS
      • Returns ICRS

        当前地图坐标系。

    getCurrentGeometry: <T extends IGeometry>() => Promise<T | undefined>

    获取当前绘制几何对象。

    Type declaration

      • <T extends IGeometry>(): Promise<T | undefined>
      • Type Parameters

        Returns Promise<T | undefined>

        当前绘制几何对象;没有正在绘制的对象时返回 undefined。

    getDrawOption: () => DrawOption

    获取当前绘制选项。

    Type declaration

    getDynamicProjection: () => boolean

    获取是否开启动态投影。

    Type declaration

      • (): boolean
      • Returns boolean

        已开启返回 true,否则返回 false。

    getMap: () => IMapX

    以 JSON 形式获取当前地图。

    Type declaration

    getMaxScale: () => number

    获取当前地图最大比例尺

    getMinScale: () => number

    获取当前地图最小比例尺

    getNodeColor: () => IColor

    获取节点的颜色。

    getNodeSize: () => number

    获取节点的大小。

    getScale: () => number

    获取当前地图的比例尺

    getSelectedNodeColor: () => IColor

    获取二维节点编辑中选中顶点的填充色。

    Type declaration

      • (): IColor
      • Returns IColor

        当前选中节点填充色,默认值为 #f97316。

    getSelectedNodeSize: () => number

    获取二维节点编辑中选中顶点的屏幕像素半径。

    Type declaration

      • (): number
      • Returns number

        当前选中节点半径;未显式设置时为普通节点大小的 1.5 倍。

    getSelectedNodeStrokeColor: () => IColor

    获取二维节点编辑中选中顶点的描边色。

    Type declaration

      • (): IColor
      • Returns IColor

        当前选中节点描边色,默认值为 #fff。

    getSelectedNodeStrokeWidth: () => number

    获取二维节点编辑中选中顶点的屏幕像素描边宽度。

    Type declaration

      • (): number
      • Returns number

        当前选中节点描边宽度;未显式设置时为 Math.max(3, 普通画笔线宽)。

    getSelectedVertex: () => IPoint2D[]

    获取节点编辑模式下当前选中的节点坐标。

    仅在地图操作状态为 edit_vertex(节点编辑)且用户已点选节点时返回有效结果

    Type declaration

      • (): IPoint2D[]
      • Returns IPoint2D[]

        选中节点的地图坐标数组(x 为经度、y 为纬度); 未选中节点或不在节点编辑模式时返回空数组。

    getSelectOption: () => SelectOption

    获取当前选择操作参数。

    Type declaration

    getStrokeColor: () => IColor

    获取绘制对象时画笔的颜色

    getStrokeFillColor: () => IColor

    获取绘制对象时画笔的填充颜色。

    getStrokeWidth: () => number

    获取绘制对象时画笔的线宽度。

    getTextColor: () => IColor

    获取文本的颜色。

    getTextHaloColor: () => IColor

    获取文本描边的颜色。

    getTextHaloWidth: () => number

    获取文本描边的宽度。

    getTextSize: () => number

    获取文本的大小。

    getTouchBuffer: () => number

    获取二维地图内部 Draw 触摸命中检测的缓冲距离。

    client 初始化完成后调用。单位为 CSS 像素,默认值为 25。 检测方框在触点的水平、垂直方向各扩展此距离。

    Type declaration

      • (): number
      • Returns number

        当前缓冲距离;client 调用返回解析为该数值的 Promise<number>。

    getViewBounds: () => IRectangle2D

    获取当前地图可见范围

    mapToPx: (map: IPoint2D) => IPoint2D

    地图经纬度点转屏幕像素点

    Type declaration

    openMap: (webmap: IMapX | string, override?: Partial<IMap2D>) => Promise<void>

    打开地图。

    Type declaration

      • (webmap: IMapX | string, override?: Partial<IMap2D>): Promise<void>
      • Parameters

        • webmap: IMapX | string

          地图 JSON 对象、工作空间中的地图 uri,或地图文件绝对路径。

        • Optionaloverride: Partial<IMap2D>

          打开时要覆盖的地图参数。

        Returns Promise<void>

    panTo: (center: IPoint2D, duration: number) => void

    平移到指定位置。

    Type declaration

      • (center: IPoint2D, duration: number): void
      • Parameters

        • center: IPoint2D

          指定中心点位置。

        • duration: number

          平移动画时长,单位毫秒。

        Returns void

    pxToMap: (px: IPoint2D) => IPoint2D

    像素点转地图经纬度点

    Type declaration

    refresh: () => Promise<void>

    刷新地图数据和选择显示。

    二维地图会等待当前已挂载的本地资源(mobilex://sources/)或内存 GeoJSON 数据源加载完成,并绘制一帧后返回; 不等待网络 GeoJSON、底图、远程瓦片或绘制辅助图层。数据源加载失败、等待期间被 移除或替换、地图切换,或等待超过 10 秒时会拒绝 Promise,调用方应保留待交接的预览。 三维地图仅完成刷新请求和选择更新,不保证下一帧已显示。

    Type declaration

      • (): Promise<void>
      • Returns Promise<void>

        刷新完成的 Promise;Android 和 HarmonyOS client 均应 await 后再移除编辑预览。

    rename: (name: string) => void

    重命名地图

    Type declaration

      • (name: string): void
      • Parameters

        • name: string

          新的地图名

        Returns void

    saveMap: (name?: string) => Promise<string | undefined>

    保存或另存地图到当前工作空间中。

    不传 name 时保存当前地图;传入 name 时按新名称另存。保存成功后,当前地图 uri 会同步更新。

    Type declaration

      • (name?: string): Promise<string | undefined>
      • Parameters

        • Optionalname: string

          地图名,不可重名。

        Returns Promise<string | undefined>

        地图资源 uri;未初始化 client 环境、当前没有地图 uri 且未传入名称、或保存失败时返回 undefined。

    setAction: (action: Action) => void

    设置地图操作状态

    setAppResourceBase: (base: string) => void

    设置 app 资源的 base 路径。

    设置后,在 base 路径下的资源可以通过 appresource://path/to/resource 的形式使用。

    Type declaration

      • (base: string): void
      • Parameters

        • base: string

          app 资源根路径。

        Returns void

    setBackgroundColor: (color?: IColor) => void

    设置地图底色

    setCenter: (center: IPoint2D) => void

    设置当前地图中心点坐标。

    Type declaration

      • (center: IPoint2D): void
      • Parameters

        • center: IPoint2D

          地图中心点坐标。

        Returns void

    setCRS: (
        epsg: number | "WebMercator" | "WGS84" | "CGCS2000",
        algorithm?: "GCJ02" | "BD09",
    ) => void

    设置当前地图显示坐标系。

    当前二维地图仅支持 EPSG:3857、4326、4490、4214、4610。 WebMercator、WGS84、CGCS2000 分别对应 3857、4326、4490。 其他 EPSG 即使可用于数据源动态投影,也不能直接设为地图显示坐标系。

    已登记的本地 TIFF 按新地图网格准备显示瓦片。固定 MVT、MBTiles、SCI 不执行跨坐标系重投影;已知 CRS/网格不兼容时记录 warning,允许切换并按原瓦片加载, 可能错位、变形或不可见。编码不支持、网格无法确认等实际加载错误仍会抛出。 RN client 应等待调用完成后再执行依赖新坐标系的操作。 相机和屏幕转换接口的坐标仍为 WGS84 经纬度。

    Type declaration

      • (
            epsg: number | "WebMercator" | "WGS84" | "CGCS2000",
            algorithm?: "GCJ02" | "BD09",
        ): void
      • Parameters

        • epsg: number | "WebMercator" | "WGS84" | "CGCS2000"

          EPSG 编码,或 SDK 内置坐标系名称。

        • Optionalalgorithm: "GCJ02" | "BD09"

          坐标偏移算法,适用于需要 GCJ02 或 BD09 的底图场景;本地 TIFF 暂不支持这些目标。

        Returns void

    setDrawOption: (option: Partial<DrawOption>) => void

    设置绘制选项。

    Type declaration

      • (option: Partial<DrawOption>): void
      • Parameters

        • option: Partial<DrawOption>

          要合并到当前绘制参数中的字段。

        Returns void

    setDynamicProjection: (enable: boolean) => void

    控制原始矢量和本地 TIFF 是否根据源坐标系转换到地图坐标系。

    默认关闭,按原始 XY 在地图坐标空间中显示,可能错位或不可见;开启后转换源 CRS。 已有本地 TIFF 会重新准备显示资源,RN client 应等待调用完成。 开关随地图保存;固定 MVT/MBTiles/SCI 不重投影,已知 CRS/网格不兼容仅记 warning 并继续加载。

    Type declaration

      • (enable: boolean): void
      • Parameters

        • enable: boolean

          是否根据源 CRS 转换。关闭仍可添加,按地图 CRS 解释原始 XY。

        Returns void

    setMaxScale: (maxScale?: number) => void

    设置当前地图最大比例尺

    setMeasureAreaShowLength: (show: boolean) => void

    设置量算面积是否显示边长。

    Type declaration

      • (show: boolean): void
      • Parameters

        • show: boolean

          是否显示边长。

        Returns void

    setMeasureLengthShowAngle: (show: boolean) => void

    设置量算线段是否显示角度。

    Type declaration

      • (show: boolean): void
      • Parameters

        • show: boolean

          是否显示角度。

        Returns void

    setMeasureTextShow: (show: boolean) => void

    设置量算文本是否显示。

    Type declaration

      • (show: boolean): void
      • Parameters

        • show: boolean

          是否显示量算文本。

        Returns void

    setMinScale: (minScale?: number) => void

    设置当前地图最小比例尺

    setNodeColor: (color: IColor) => void

    设置节点颜色

    setNodeSize: (size: number) => void

    设置节点的大小。

    Type declaration

      • (size: number): void
      • Parameters

        • size: number

          节点像素大小。

        Returns void

    setScale: (scale: number) => void

    设置当前地图的比例尺

    setSelectedNodeColor: (color: IColor) => void

    设置二维节点编辑中选中顶点的填充色,并立即更新已有编辑节点。

    client 初始化完成后调用,仅改变选中的编辑顶点。配置保存在当前地图控件内存中,不随地图保存。 Android 和 HarmonyOS RN client 均应 await 调用完成。

    await client.map.setSelectedNodeColor('#f97316');
    await client.map.setSelectedNodeSize(8);
    await client.map.setSelectedNodeStrokeColor('#ffffff');
    await client.map.setSelectedNodeStrokeWidth(3);

    Type declaration

      • (color: IColor): void
      • Parameters

        • color: IColor

          选中节点填充色,支持与 setNodeColor 相同的 CSS 颜色字符串。默认值为 #f97316。

        Returns void

    setSelectedNodeSize: (size: number) => void

    设置二维节点编辑中选中顶点的屏幕像素半径,并立即更新已有编辑节点。

    client 初始化完成后调用。未显式设置时随 setNodeSize 保持 1.5 倍;设置后使用绝对半径, 后续 setNodeSize 不再改变此值。配置仅保存在当前地图控件内存中。 Android 和 HarmonyOS RN client 均应 await 调用完成。

    Type declaration

      • (size: number): void
      • Parameters

        • size: number

          大于 0 的有限数值,单位为屏幕像素半径。

        Returns void

    非法数值抛出 RangeError;RN client 的 Promise 拒绝,原配置保留。

    setSelectedNodeStrokeColor: (color: IColor) => void

    设置二维节点编辑中选中顶点的描边色,并立即更新已有编辑节点。

    client 初始化完成后调用,仅改变选中的编辑顶点,普通画笔线色仍由 setStrokeColor 控制。 配置仅保存在当前地图控件内存中;Android 和 HarmonyOS RN client 均应 await 调用完成。

    Type declaration

      • (color: IColor): void
      • Parameters

        • color: IColor

          选中节点描边的 CSS 颜色字符串。默认值为 #fff。

        Returns void

    setSelectedNodeStrokeWidth: (width: number) => void

    设置二维节点编辑中选中顶点的屏幕像素描边宽度,并立即更新已有编辑节点。

    client 初始化完成后调用。设置后使用绝对宽度,后续 setStrokeWidth 不再改变此值。 配置仅保存在当前地图控件内存中;Android 和 HarmonyOS RN client 均应 await 调用完成。

    Type declaration

      • (width: number): void
      • Parameters

        • width: number

          大于或等于 0 的有限数值,单位为屏幕像素。0 表示不绘制描边。

        Returns void

    非法数值抛出 RangeError;RN client 的 Promise 拒绝,原配置保留。

    setSelectOption: (option: Partial<SelectOption>) => void

    设置选择操作参数。

    在需要查看可编辑图层但禁止手势改动时,可同时将 editGeometryDraggable 和 editGeometryDeletable 设为 false。 此设置只改变当前选择交互,不修改图层的 editable 属性; 退出只读浏览时需显式恢复先前选项(未设置过时恢复为 true)。 Android 和 HarmonyOS RN client 均应 await 调用完成。

    Type declaration

      • (option: Partial<SelectOption>): void
      • Parameters

        • option: Partial<SelectOption>

          要合并到当前选择参数中的字段。

        Returns void

    setStrokeColor: (color: IColor) => void

    设置绘制对象时画笔的线颜色

    setStrokeFillColor: (color: IColor) => void

    设置绘制对象时画笔的填充颜色。

    setStrokeWidth: (width: number) => void

    设置绘制对象时画笔的线宽度。

    setTextColor: (color: IColor) => void

    设置文本颜色

    setTextHaloColor: (color: IColor) => void

    设置文本描边颜色

    setTextHaloWidth: (width: number) => void

    设置文本描边的宽度

    setTextSize: (size: number) => void

    设置文本大小

    setTouchBuffer: (buffer: number) => void

    设置二维地图内部 Draw 触摸命中检测的缓冲距离,并立即生效。

    client 初始化完成后调用,默认值为 25 CSS 像素。检测方框为触点的 [x - buffer, y - buffer] 到 [x + buffer, y + buffer]。 0 表示不额外扩展查询范围,渲染符号本身仍有命中面积。 此接口用于二维地图内部 Draw 的触摸命中检测,不作为所有业务对象选择或 Cesium 3D 的通用容差接口。 鼠标点击缓冲和节点样式不变,设置不会重建 Draw、修改编辑草稿或重新发布几何数据。 配置只保存在当前地图控件内存中,不随地图保存。 Android 和 HarmonyOS RN client 均应 await 调用完成。

    await client.map.setTouchBuffer(12);
    const buffer = await client.map.getTouchBuffer(); // 12

    Type declaration

      • (buffer: number): void
      • Parameters

        • buffer: number

          大于或等于 0 的有限数值,单位为 CSS 像素。

        Returns void

        client 调用返回 Promise<void>,完成后新的触摸命中检测使用此值。

    RangeError 参数非法时抛出,先前配置保持不变;client 调用通过 Promise 拒绝返回错误。

    setViewBounds: (
        bounds: IRectangle2D,
        setting?: Partial<SetBoundsSetting>,
    ) => void

    设置当前地图可见范围。

    Type declaration

    submit: () => void
    • 在绘制模式,提交当前绘制对象
    • 在节点编辑/平移模式,提交编辑结果并写回数据源;未提交的编辑在取消或切换操作时丢弃
    undo: () => void
    • 撤销绘制的节点