/**
* @content 量算结果内容变化监听组件
* @author xiaoying 2020-01-13 下午3:16:59
*/
import { NativeModules } from 'react-native';
let MCCL = NativeModules.JSMeasureContentWillChangeListener;
/**
* @class MeasureContentWillChangeListener
*/
export default class MeasureContentWillChangeListener {
/**
* 创建MeasureContentWillChangeListener
*
* @memberof MeasureContentWillChangeListener
* @returns {MeasureContentWillChangeListener}
*/
async createObj(){
try {
let measureListenerId = await MCCL.createObj();
this._MGMeasureListenerId = measureListenerId;
return this;
} catch (e) {
console.error(e);
}
}
/**
* 设置是否显示测量距离单位
*
* @memberof MeasureContentWillChangeListener
* @param {Boolean} isShowDistanceUnit 是否显示距离单位
* @returns {void}
*/
async setIsShowDistanceUnit(isShowDistanceUnit){
try {
await MCCL.setIsShowDistanceUnit(this._MGMeasureListenerId, isShowDistanceUnit);
} catch (e) {
console.error(e);
}
}
/**
* 获取是否显示测量距离单位
*
* @memberof MeasureContentWillChangeListener
* @returns {Boolean}
*/
async getIsShowDistanceUnit(){
try {
let isShowDistanceUnit = await MCCL.getIsShowDistanceUnit(this._MGMeasureListenerId);
return isShowDistanceUnit;
} catch (e) {
console.error(e);
}
}
/**
* 设置是否显示测量面积单位
*
* @memberof MeasureContentWillChangeListener
* @param {Boolean} isShowAreaUnit 是否显示面积单位
* @returns {void}
*/
async setIsShowAreaUnit(isShowAreaUnit){
try {
await MCCL.setIsShowAreaUnit(this._MGMeasureListenerId, isShowAreaUnit);
} catch (e) {
console.error(e);
}
}
/**
* 获取是否显示测量面积单位
*
* @memberof MeasureContentWillChangeListener
* @returns {Boolean}
*/
async getIsShowAreaUnit(){
try {
let isShowAreaUnit = await MCCL.getIsShowAreaUnit(this._MGMeasureListenerId);
return isShowAreaUnit;
} catch (e) {
console.error(e);
}
}
/**
* 设置是否自动改变测量距离单位。若设置自动改变,目前只支持厘米、米、千米三种单位的自动转换
*
* @memberof MeasureContentWillChangeListener
* @param {Boolean} isAutoChangeDistanceUnit 是否自动改变测量距离单位
* @returns {void}
*/
async setIsAutoChangeDistanceUnit(isAutoChangeDistanceUnit){
try {
await MCCL.setIsAutoChangeDistanceUnit(this._MGMeasureListenerId, isAutoChangeDistanceUnit);
} catch (e) {
console.error(e);
}
}
/**
* 获取是否自动改变测量距离单位
*
* @memberof MeasureContentWillChangeListener
* @returns {Boolean}
*/
async getIsAutoChangeDistanceUnit(){
try {
let isAutoChangeDistanceUnit = await MCCL.getIsAutoChangeDistanceUnit(this._MGMeasureListenerId);
return isAutoChangeDistanceUnit;
} catch (e) {
console.error(e);
}
}
/**
* 设置是否自动改变测量面积单位。若设置自动改变,目前只支持平方厘米、平方米、平方千米三种单位的自动转换
*
* @memberof MeasureContentWillChangeListener
* @param {Boolean} isAutoChangeAreaUnit 是否自动改变测量面积单位
* @returns {void}
*/
async setIsAutoChangeAreaUnit(isAutoChangeAreaUnit){
try {
await MCCL.setIsAutoChangeAreaUnit(this._MGMeasureListenerId, isAutoChangeAreaUnit);
} catch (e) {
console.error(e);
}
}
/**
* 获取是否自动改变测量面积单位
*
* @memberof MeasureContentWillChangeListener
* @returns {Boolean}
*/
async getIsAutoChangeAreaUnit(){
try {
let isAutoChangeAreaUnit = await MCCL.getIsAutoChangeAreaUnit(this._MGMeasureListenerId);
return isAutoChangeAreaUnit;
} catch (e) {
console.error(e);
}
}
/**
* 设置距离单位及进制(相对于米),可使用SketchMeasureUnitType.DM等
*
* @memberof MeasureContentWillChangeListener
* @param {String} distanceUnitAndScale 距离单位及进制(相对于米),例:"米*1"、"厘米*100"、"千米*0.001"
* @returns {void}
* @example
目前SketchMeasureUnitType默认支持以下几种类型
毫米:SketchMeasureUnitType.MM
厘米:SketchMeasureUnitType.CM
分米:SketchMeasureUnitType.DM
米 :SketchMeasureUnitType.M
千米:SketchMeasureUnitType.KM
公里:SketchMeasureUnitType.GongLi
里 :SketchMeasureUnitType.Li
海里:SketchMeasureUnitType.Sea_Mile
英里:SketchMeasureUnitType.Land_Mile
*/
async setDistanceUnitAndScale(distanceUnitAndScale){
try {
await MCCL.setDistanceUnitAndScale(this._MGMeasureListenerId, distanceUnitAndScale);
} catch (e) {
console.error(e);
}
}
/**
* 获取距离单位及进制(相对于米)
*
* @memberof MeasureContentWillChangeListener
* @returns {String}
*/
async getDistanceUnitAndScale(){
try {
let distanceUnitAndScale = await MCCL.getDistanceUnitAndScale(this._MGMeasureListenerId);
return distanceUnitAndScale;
} catch (e) {
console.error(e);
}
}
/**
* 设置面积单位及进制(相对于平方米),可使用SketchMeasureUnitType.Sqrt_MM
*
* @memberof MeasureContentWillChangeListener
* @param {String} areaUnitAndScale 面积单位及进制(相对于平方米),例:"平方米*1"、"平方厘米*10000"、"平方千米*0.000001"
* @returns {void}
* @example
目前SketchMeasureUnitType默认支持以下几种类型
平方毫米:SketchMeasureUnitType.Sqrt_MM
平方厘米:SketchMeasureUnitType.Sqrt_CM
平方分米:SketchMeasureUnitType.Sqrt_DM
平方米: SketchMeasureUnitType.Sqrt_M
平方千米:SketchMeasureUnitType.Sqrt_KM
平方公里:SketchMeasureUnitType.Sqrt_GongLi
公顷: SketchMeasureUnitType.GongQing
亩: SketchMeasureUnitType.Mu
公亩: SketchMeasureUnitType.GongMu
*/
async setAreaUnitAndScale(areaUnitAndScale){
try {
await MCCL.setAreaUnitAndScale(this._MGMeasureListenerId, areaUnitAndScale);
} catch (e) {
console.error(e);
}
}
/**
* 获取距离单位
*
* @memberof MeasureContentWillChangeListener
* @returns {String}
*/
async getAreaUnitAndScale(){
try {
let areaUnitAndScale = await MCCL.getAreaUnitAndScale(this._MGMeasureListenerId);
return areaUnitAndScale;
} catch (e) {
console.error(e);
}
}
}