UNPKG

rn_supermap

Version:

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

94 lines (83 loc) 4.21 kB
/********************************************************************************* Copyright © SuperMap. All rights reserved. Author: Wang zihao E-mail: pridehao@gmail.com ref:DatasetVector **********************************************************************************/ import { NativeModules } from 'react-native'; let BA = NativeModules.JSBufferAnalyst; /** * @class BufferAnalyst * @description 缓冲区分析类。该类用于为点、线、面数据集(或记录集)创建缓冲区,包括单边缓冲区、多重缓冲区和线单边多重缓冲区。 **/ export default class BufferAnalyst { /** * 创建矢量数据集缓冲区 * @memberOf BufferAnalyst * @param {Dataset} sourceDataSet - 源矢量数据集 * @param {Dataset} sourceDataSet - 用于存储缓冲区分析结果的数据集 * @param {BufferAnalystParameter} bufferAnalystParam - 缓冲区分析参数对象 * @param {boolean} isUnion - 是否合并缓冲区 * @param {boolean} isAttributeRetained - 是否保留进行缓冲区分析的对象的字段属性 * @returns {Promise.<boolean>} */ async createBuffer(sourceDataSet, resultDataSet, bufferAnalystParam, isUnion, isAttributeRetained) { try { var { isCreate } = await BA.createBuffer(sourceDataSet._SMDatasetVectorId, resultDataSet._SMDatasetVectorId, bufferAnalystParam._SMBufferAnalystParameterId, isUnion, isAttributeRetained); return isCreate; } catch (e) { console.error(e); } } /** * 创建矢量数据集单边多重缓冲区 * @memberOf BufferAnalyst * @param {Dataset} sourceDataSet - 源矢量数据集 * @param {Dataset} sourceDataSet - 用于存储缓冲区分析结果的数据集 * @param {array} arrBufferRadius - 指定的多重缓冲区半径列表 * @param {number} bufferRadiusUnit - 指定的缓冲区半径单位 * @param {number} semicircleSegment - 指定的弧短拟合数 * @param {boolean} isLeft - 是否生成左缓冲区 * @param {boolean} isUnion - 是否合并缓冲区 * @param {boolean} isAttributeRetained - 是否保留进行缓冲区分析的对象的字段属性 * @param {boolean} isRing - 是否生成环装缓冲区 * @returns {Promise.<boolean>} */ async createLineOneSideMultiBuffer(sourceDataSet, resultDataSet, arrBufferRadius, bufferRadiusUnit, semicircleSegment, isLeft, isUnion, isAttributeRetained, isRing) { try { var { isCreate } = await BA.createLineOneSideMultiBuffer(sourceDataSet._SMDatasetVectorId, resultDataSet._SMDatasetVectorId, arrBufferRadius, bufferRadiusUnit, semicircleSegment, isLeft, isUnion, isAttributeRetained, isRing); return isCreate; } catch (e) { console.error(e); } } /** * 创建矢量数据集多重缓冲区 * @memberOf BufferAnalyst * @param {Dataset} sourceDataSet - 源矢量数据集 * @param {Dataset} sourceDataSet - 用于存储缓冲区分析结果的数据集 * @param {array} arrBufferRadius - 指定的多重缓冲区半径列表 * @param {number} bufferRadiusUnit - 指定的缓冲区半径单位 * @param {number} semicircleSegment - 指定的弧短拟合数 * @param {boolean} isUnion - 是否合并缓冲区 * @param {boolean} isAttributeRetained - 是否保留进行缓冲区分析的对象的字段属性 * @param {boolean} isRing - 是否生成环装缓冲区 * @returns {Promise.<boolean>} */ async createMultiBuffer(sourceDataSet, resultDataSet, arrBufferRadius, bufferRadiusUnit, semicircleSegment, isUnion, isAttributeRetained, isRing) { try { var { isCreate } = await BA.createMultiBuffer(sourceDataSet._SMDatasetVectorId, resultDataSet._SMDatasetVectorId, arrBufferRadius, bufferRadiusUnit, semicircleSegment, isUnion, isAttributeRetained, isRing); return isCreate; } catch (e) { console.error(e); } } async analyst(map, sourceDataSet, params) { try { var { isCreate } = await BA.analyst(map, sourceDataSet._SMDatasetVectorId, resultDataSet._SMDatasetVectorId, arrBufferRadius, bufferRadiusUnit, semicircleSegment, isUnion, isAttributeRetained, isRing); return isCreate; } catch (e) { console.error(e); } } }