UNPKG

imobile_for_reactnative

Version:

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

127 lines (98 loc) 3.28 kB
import EventConst from "imobile_for_reactnative/NativeModule/constains/EventConst" import { EmitterSubscription } from "react-native" import { NativeModules, NativeEventEmitter, } from "react-native" const SARMeasure = NativeModules.SARMeasure const event = new NativeEventEmitter(SARMeasure) type TARMeasureMode = 'MEASURE_LINE' | //测距 'MEASURE_AREA' | //测面 'MEASURE_HEIGHT' | //测高 'MEASURE_AREA_CIRCLE' | //画圆 'MEASURE_AREA_RECTANGLE' | //画矩形 'MEASURE_AREA_ANGLE' | //角度 'MEASURE_VOLUME_CUBOID' | //长方体 'MEASURE_VOLUME_CYLINDER' | //圆柱 'NULL' //用于切换轨迹采集时不显示红点及提示等 interface IARHeightChangeListener { /** 测量长度和高度时结果回调, 单位 米 */ onLengthChange: (length: number) => void } let heightListener: EmitterSubscription | undefined = undefined /** 添加高度测回调 */ export function setMeasureLengthChangeListener(listener?: IARHeightChangeListener): void { heightListener?.remove() heightListener = listener ? event.addListener(EventConst.ARMEASURE_HEIGHT_CHANGE, listener.onLengthChange) : undefined } /** * 设置测量模式 * @param mode 测量模式 */ export function setMeasureMode(mode: TARMeasureMode): Promise<boolean> { return SARMeasure.setMeasureMode(mode) } /** * 添加当前屏幕中心对准的点到当前采集的几何对象中 */ export function addHitPoint(): Promise<boolean> { return SARMeasure.addHitPoint() } /** 提交当前绘制的几何对象 */ export function submit(): Promise<boolean> { return SARMeasure.submit() } /** 取消当前绘制的集合对象 */ export function cancel(): Promise<boolean> { return SARMeasure.cancel() } /** 撤销绘制 */ export function undo(): Promise<boolean> { return SARMeasure.undo() } /** 删除所有测量的几何对象 */ export function clear(): Promise<boolean> { return SARMeasure.clear() } /** 当前测量对象的长度 */ export function getMeasureLength(): Promise<number> { return SARMeasure.getMeasureLength() } // ************************************ // 显示设置 // ************************************ /** * 显示或隐藏绘制图形的标注 * @param show 是否显示点线面的长度,面积等标注 */ export function showARLabel(show: boolean): Promise<boolean> { return SARMeasure.showARLabel(show) } /** * 设置是否开启自动捕捉 * @param isSnap 是否自动捕捉 */ export function setIsSnapRange(isSnap: boolean): Promise<boolean> { return SARMeasure.setIsSnapRange(isSnap) } /** * 设置捕捉容限 * @param tolerence 捕捉容限,范围 0 - 100 的整数 */ export function setSnapTolerance(tolerence: number): Promise<boolean>{ return SARMeasure.setSnapTolerance(tolerence) } /** * 获取是否开启自动捕捉 * @returns 是否开启自动捕捉 */ export function getIsSnapRange(): Promise<boolean> { return SARMeasure.getIsSnapRange() } /** * 获取捕捉容限 * @returns 捕捉容限 */ export function getSnapTolerance(): Promise<number> { return SARMeasure.getSnapTolerance() }