UNPKG

rn_supermap

Version:

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

461 lines (428 loc) 16.3 kB
/********************************************************************************* Copyright © SuperMap. All rights reserved. Author: Yang Shanglong E-mail: yangshanglong@supermap.com **********************************************************************************/ import { NativeModules } from 'react-native'; let FA = NativeModules.JSFacilityAnalyst; import FacilityAnalystSetting from './FacilityAnalystSetting' /** * 设施网络分析类。它是网络分析功能类之一,主要用于进行各类连通性分析和追踪分析。 */ export default class FacilityAnalyst { async createObj() { try { let facilityAnalystId = await FA.createObj(); let facilityAnalyst = new FacilityAnalyst(); facilityAnalyst._SMFacilityAnalystId = facilityAnalystId; return facilityAnalyst; } catch (e) { console.error(e); } } /** * 检查网络环路,返回构成环路的弧段 ID 数组 * @returns {Promise.<Promise|*|{type}>} */ async checkLoops () { try { let ids = await FA.checkLoops(this._SMFacilityAnalystId); return ids; } catch (e) { console.error(e); } } async dispose () { try { await FA.dispose(this._SMFacilityAnalystId); } catch (e) { console.error(e); } } /** * 根据设施网络分析环境设置加载设施网络模型 * @returns {Promise.<*>} */ async load () { try { let result = await FA.load(this._SMFacilityAnalystId); return result; } catch (e) { console.error(e); } } /** * 返回设施网络分析的环境 * @returns {Promise.<FacilityAnalystSetting>} */ async getAnalystSetting () { try { let settingId = await FA.getAnalystSetting(this._SMFacilityAnalystId); let setting = new FacilityAnalystSetting(); setting._SMFacilityAnalystSettingId = settingId return setting; } catch (e) { console.error(e); } } /** * 设置设施网络分析的环境 * @param setting * @returns {Promise.<void>} */ async setAnalystSetting (setting) { try { console.log(this._SMFacilityAnalystId) await FA.setAnalystSetting(this._SMFacilityAnalystId, setting._SMFacilityAnalystSettingId); } catch (e) { console.error(e); } } /** * 根据给定的弧段 ID 数组,查找这些弧段的共同上游弧段,返回弧段 ID 数组 * @param edgeIDs * @param isUncertainDirectionValid * @returns {Promise} */ async findCommonAncestorsFromEdges (edgeIDs, isUncertainDirectionValid) { try { let ids = await FA.findCommonAncestorsFromEdges(this._SMFacilityAnalystId, edgeIDs, isUncertainDirectionValid); return ids; } catch (e) { console.error(e); } } /** * 根据给定的结点 ID 数组,查找这些结点的共同上游弧段,返回弧段 ID 数组 * @param nodeIDs * @param isUncertainDirectionValid * @returns {Promise} */ async findCommonAncestorsFromNodes (nodeIDs, isUncertainDirectionValid) { try { let ids = await FA.findCommonAncestorsFromNodes(this._SMFacilityAnalystId, nodeIDs, isUncertainDirectionValid); return ids } catch (e) { console.error(e); } } /** * 根据给定的弧段 ID 数组,查找这些弧段的共同下游弧段,返回弧段 ID 数组 * @param edgeIDs * @param isUncertainDirectionValid * @returns {Promise.<void>} */ async findCommonCatchmentsFromEdges (edgeIDs, isUncertainDirectionValid) { try { let ids = await FA.findCommonCatchmentsFromEdges(this._SMFacilityAnalystId, edgeIDs, isUncertainDirectionValid); return ids } catch (e) { console.error(e); } } /** * 根据指定的结点 ID 数组,查找这些结点的共同下游弧段,返回弧段 ID 数组 * @param nodeIDs * @param isUncertainDirectionValid * @returns {Promise} */ async findCommonCatchmentsFromNodes (nodeIDs, isUncertainDirectionValid) { try { let ids = await FA.findCommonCatchmentsFromNodes(this._SMFacilityAnalystId, nodeIDs, isUncertainDirectionValid); return ids } catch (e) { console.error(e); } } /** * 根据给定的弧段 ID 数组,查找与这些弧段相连通的弧段,返回弧段 ID 数组 * @param edgeIDs * @param isUncertainDirectionValid * @returns {Promise} */ async findConnectedEdgesFromEdges (edgeIDs, isUncertainDirectionValid) { try { let ids = await FA.findConnectedEdgesFromEdges(this._SMFacilityAnalystId, edgeIDs, isUncertainDirectionValid); return ids } catch (e) { console.error(e); } } /** * 根据给定的结点 ID 数组,查找与这些结点相连通弧段,返回弧段 ID 数组 * @param nodeIDs * @param isUncertainDirectionValid * @returns {Promise} */ async findConnectedEdgesFromNodes (nodeIDs, isUncertainDirectionValid) { try { let ids = await FA.findConnectedEdgesFromNodes(this._SMFacilityAnalystId, nodeIDs, isUncertainDirectionValid); return ids } catch (e) { console.error(e); } } /** * 根据给定的弧段 ID 数组查找与这些弧段相连接的环路,返回构成环路的弧段 ID 数组 * @param edgeIDs * @returns {Promise} */ async findLoopsFromEdges (edgeIDs) { try { let ids = await FA.findLoopsFromEdges(this._SMFacilityAnalystId, edgeIDs); return ids } catch (e) { console.error(e); } } /** * 根据给定的结点 ID 数组查找与这些结点相连接的环路,返回构成环路的弧段 ID 数组 * @param nodeIDs * @returns {Promise} */ async findLoopsFromNodes (nodeIDs) { try { let ids = await FA.findLoopsFromNodes(this._SMFacilityAnalystId, nodeIDs); return ids } catch (e) { console.error(e); } } /** * 设施网络下游路径分析,根据给定的参与分析的弧段 ID,查询该弧段下游耗费最小的路径,返回该路径包含的弧段、结点及耗费 * @param edgeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async findPathDownFromEdge (edgeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.findPathDownFromEdge(this._SMFacilityAnalystId, edgeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 设施网络下游路径分析,根据给定的参与分析的弧段 ID,查询该弧段下游耗费最小的路径,返回该路径包含的弧段、结点及耗费 * @param edgeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async findPathDownFromNode (nodeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.findPathDownFromNode(this._SMFacilityAnalystId, nodeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 设施网络路径分析,即根据给定的起始和终止弧段 ID,查找其间耗费最小的路径,返回该路径包含的弧段、结点及耗费 * @param edgeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async findPathFromEdges (edgeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.findPathFromEdges(this._SMFacilityAnalystId, edgeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 设施网络路径分析,即根据给定的起始和终止结点 ID,查找其间耗费最小的路径,返回该路径包含的弧段、结点及耗费。 * @param startNodeId * @param endNodeId * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async findPathFromNodes (startNodeId = -1, endNodeId = -1, weightName = 'length', isUncertainDirectionValid = false) { try { let { coast, edges, nodes, message } = await FA.findPathFromNodes(this._SMFacilityAnalystId, startNodeId, endNodeId, weightName, isUncertainDirectionValid); return { coast, edges, nodes, message } } catch (e) { console.error(e); } } /** * 设施网络上游路径分析,根据给定的弧段 ID,查询该弧段上游耗费最小的路径,返回该路径包含的弧段、结点及耗费 * @param edgeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async findPathUpFromEdge (edgeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.findPathUpFromEdge(this._SMFacilityAnalystId, edgeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 设施网络上游路径分析,根据给定的结点 ID,查询该结点上游耗费最小的路径,返回该路径包含的弧段、结点及耗费 * @param nodeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async findPathUpFromNode (nodeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.findPathUpFromNode(this._SMFacilityAnalystId, nodeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 根据给定的弧段 ID 查找汇,即从给定弧段出发,根据流向查找流出该弧段的下游汇点,并返回给定弧段到达该汇的最小耗费路径所包含的弧段、结点及耗费 * @param edgeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async findSinkFromEdge (edgeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.findSinkFromEdge(this._SMFacilityAnalystId, edgeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 根据给定的结点 ID 查找汇,即从给定结点出发,根据流向查找流出该结点的下游汇点,并返回给定结点到达该汇的最小耗费路径所包含的弧段、结点及耗费 * @param nodeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async findSinkFromNode (nodeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.findSinkFromNode(this._SMFacilityAnalystId, nodeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 根据给定的弧段 ID 查找源,即从给定弧段出发,根据流向查找流向该弧段的网络源头,并返回该源到达给定弧段的最小耗费路径所包含的弧段、结点及耗费 * @param edgeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async findSourceFromEdge (edgeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.findSourceFromEdge(this._SMFacilityAnalystId, edgeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 根据给定的结点 ID 查找源,即从给定结点出发,根据流向查找流向该结点的网络源头,并返回该源到达给定结点的最小耗费路径所包含的弧段、结点及耗费 * @param nodeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async findSourceFromNode (nodeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.findSourceFromNode(this._SMFacilityAnalystId, nodeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 根据给定的弧段 ID 数组,查找与这些弧段不相连通的弧段,返回弧段 ID 数组 * @param edgeIDs * @returns {Promise} */ async findUnconnectedEdgesFromEdges (edgeIDs) { try { let unconnectedEdges = await FA.findUnconnectedEdgesFromEdges(this._SMFacilityAnalystId, edgeIDs); return unconnectedEdges } catch (e) { console.error(e); } } /** * 根据给定的结点 ID 数组,查找与这些结点不相连通的弧段,返回弧段 ID 数组 * @param nodeIDs * @returns {Promise} */ async findUnconnectedEdgesFromNodes (nodeIDs) { try { let unconnectedEdges = await FA.findUnconnectedEdgesFromNodes(this._SMFacilityAnalystId, nodeIDs); return unconnectedEdges } catch (e) { console.error(e); } } /** * 根据给定的弧段 ID 进行下游追踪,即查找给定弧段的下游,返回下游包含的弧段、结点及总耗费 * @param edgeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async traceDownFromEdge (edgeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.traceDownFromEdge(this._SMFacilityAnalystId, edgeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 根据给定的结点 ID 进行下游追踪,即查找给定结点的下游,返回下游包含的弧段、结点及总耗费 * @param nodeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async traceDownFromNode (nodeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.traceDownFromNode(this._SMFacilityAnalystId, nodeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 根据给定的弧段 ID 进行上游追踪,即查找给定弧段的上游,返回上游包含的弧段、结点及总耗费 * @param edgeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async traceUpFromEdge (edgeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.traceUpFromEdge(this._SMFacilityAnalystId, edgeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } /** * 根据给定的结点 ID 进行上游追踪,即查找给定结点的上游,返回上游包含的弧段、结点及总耗费 * @param nodeID * @param weightName * @param isUncertainDirectionValid * @returns {Promise.<{coast: Promise.coast, edges: Promise.edges, nodes: Promise.nodes}>} */ async traceUpFromNode (nodeID, weightName, isUncertainDirectionValid) { try { let { coast, edges, nodes } = await FA.traceUpFromNode(this._SMFacilityAnalystId, nodeID, weightName, isUncertainDirectionValid); return { coast, edges, nodes } } catch (e) { console.error(e); } } }