imobile_for_reactnative
Version:
iMobile for ReactNative,是SuperMap iMobile推出的一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。
127 lines (98 loc) • 3.28 kB
text/typescript
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()
}