UNPKG

imobile_for_reactnative

Version:

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

385 lines (342 loc) 13.9 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: Workspace.js</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: Workspace.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>/********************************************************************************* Copyright © SuperMap. All rights reserved. Author: Will E-mail: pridehao@gmail.com **********************************************************************************/ import { NativeModules } from 'react-native'; let W = NativeModules.JSWorkspace; import DS from './Datasources.js'; import Ds from './Datasource.js'; import Maps from './Maps.js'; import Map from './Map.js'; import WorkspaceConnectionInfo from './WorkspaceConnectionInfo'; import Datasource from './Datasource'; /** * @class Workspace * @description 工作空间是用户的工作环境,主要完成数据的组织和管理,包括打开、关闭、创建、保存工作空间文件(SXW,SMW,SXWU,SMWU,DEFAULT)。工作空间 Workspace 是 SuperMap 中的一个重要的概念,工作空间存储了一个工程项目(同一个事务过程)中所有的数据源,地图的组织关系,工作空间通过其中的数据源集合对象 Datasources ,地图集合对象 Maps 来管理其下的数据源,地图。 * @property {number} DEFAULT - 默认SMWU类型。 * @property {number} SMWU - SMWU工作空间,文件型工作空间。 * @property {number} SXWU - SXWU工作空间。 * @property {number} UDB - 数据库类型。 */ export default class Workspace{ /** * 创建workspace实例 * @memberOf Workspace * @returns {Promise.&lt;Workspace>} */ async createObj(){ try{ var {workspaceId} = await W.createObj(); var workspace = new Workspace(); workspace._SMWorkspaceId = workspaceId; return workspace; }catch(e){ console.error(e); } } /** * 获得数据源集合 * @memberOf Workspace * @deprecated Workspace.js:getDatasources() function has been deprecated. If you want to get datasource , please call the getDatasource() function * @returns {Promise.&lt;Datasources>} */ async getDatasources(){ try { var {datasourcesId} = await W.getDatasources(this._SMWorkspaceId); console.debug("datasourcesId:"+datasourcesId); var ds = new DS(); ds._SMDatasourcesId = datasourcesId; return ds; }catch (e){ console.error(e); } } /* * 通过数据源链接信息打开数据源 * @memberOf Workspace * @deprecated 可直接通过{@link Workspace.openDatasource}方法传参数,不在需要构建datasourceConnectionInfo对象。 * @param {object} datasourceConnectionInfo 数据源链接信息 * @returns {Promise.&lt;Datasource>} */ /* async openDatasourceConnectionInfo(datasourceConnectionInfo){ try { var {datasourceId} = await W.openDatasourceConnectionInfo(this.workspaceId,datasourceConnectionInfo.datasourceConnectionInfoId); var ds = new Ds(); ds.datasourceId = datasourceId; return ds; }catch (e){ console.error(e); } } */ /** * 通过序号或者名字(别名)获取数据源 * @memberOf Worksapce * @param {number | string} index|name - 既可以是序号,也可以是数据源名称 * @returns {Promise.&lt;Datasource>} */ async getDatasource(index){ try{ var datasource = new Ds(); if(typeof index != 'string'){ //get datasource through index. var {datasourceId} = await W.getDatasource(this._SMWorkspaceId,index); }else{ //get datasource through datasource name(Alias). var {datasourceId} = await W.getDatasourceByName(this._SMWorkspaceId,index); } datasource._SMDatasourceId = datasourceId; return datasource; }catch (e){ console.error(e); } } /** * 根据定义好的工作空间连接信息对象,打开工作空间。 * @memberOf Workspace * @param {object} workspaceConnectionInfo * @param {string} passWord - 数据源密码(可选参数) * @returns {Promise.&lt;void>} */ async open(workspaceConnectionInfo,passWord){ try{ var WorkspaceConnectionInfoModule = new WorkspaceConnectionInfo(); if(typeof workspaceConnectionInfo === 'string'){ var wci = await WorkspaceConnectionInfoModule.createJSObj(); var str = workspaceConnectionInfo.split('.').pop(); console.log("工作空间类型字符串:" + str); var type = this.workspaceType(str); console.log("工作空间类型:" + type); await wci.setType(type); await wci.setServer(workspaceConnectionInfo); if(passWord){ await wci.setPassWord(passWord); } var {isOpen} = await W.open(this._SMWorkspaceId,wci._SMWorkspaceConnectionInfoId) return isOpen; }else{ var {isOpen} = await W.open(this._SMWorkspaceId,workspaceConnectionInfo._SMWorkspaceConnectionInfoId); console.log('workspace open connectionInfo:'+isOpen); return isOpen; } }catch(e){ console.error(e); } } /** * 获取工作空间下的Maps对象 * @memberOf Worksapce * @deprecated Maps类已不推荐使用 * @memberOf Workspace * @returns {Promise.&lt;Maps>} */ async getMaps(){ try{ var {mapsId} = await W.getMaps(this._SMWorkspaceId); var maps = new Maps(); maps._SMMapsId = mapsId; return maps; }catch(e){ console.error(e); } } /** * 根据地图序号获得地图名称 * @memberOf Workspace * @param {number} mapIndex * @returns {string} */ async getMapName(mapIndex){ try{ var {mapName} = await W.getMapName(this._SMWorkspaceId,mapIndex); return mapName; }catch(e){ console.error(e); } } /** * 打开数据源 jsonObject 获取网络数据源 * @memberOf Workspace * @param {object} jsonObject {engineType:&lt;int>引擎类型 ,server:&lt;sring>文件/服务器路径 ,driver:&lt;string>驱动名称(可选参数)} * @returns {Promise.&lt;datasource>} */ async openDatasource(jsonObject){ try{ if(jsonObject.webBBox){ var rect = jsonObject.webBBox; if(typeof rect != 'string') jsonObject.webBBox = rect._SMRectangle2DId; } var {datasourceId} = await W.openDatasource(this._SMWorkspaceId,jsonObject); var datasource = new Datasource(); datasource._SMDatasourceId = datasourceId; return datasource; }catch(e){ console.error(e); } } /* * 打开WMS协议类型数据源 * @memberOf Workspace * @param {string} server * @param {number} engineType * @param {string} driver * @param {string} version * @param {string} visibleLayers * @param {object} webBox * @param {object} webCoordinate * @returns {Promise.&lt;void>} */ /* async openWMSDatasource(server,engineType,driver,version,visibleLayers,webBox,webCoordinate){ try{ await W.openWMSDatasource(this._SMWorkspaceId,server,engineType,driver, version,visibleLayers,webBox,webCoordinate); }catch(e){ console.error(e); } } */ /** * 保存工作空间 * @memberOf Workspace * @param {string} server - 另存url(可选参数) * @returns {boolean} */ async saveWorkspace(server){ try{ if(server){ var {saved} = await W.saveWorkspaceWithServer(this._SMWorkspaceId,server); }else{ var {saved} = await W.saveWorkspace(this._SMWorkspaceId); } return saved; }catch(e){ console.error(e); } } /** * 关闭工作空间 * @memberOf Workspace * @returns {boolean} */ async closeWorkspace(){ try{ var {closed} = await W.closeWorkspace(this._SMWorkspaceId); return closed; }catch(e){ console.error(e); } } /** * 创建数据集 * @memberOf Workspace * @param filePath 指定创建数据集路径 * @param engineType 数据集引擎类型 * @returns {Promise.&lt;Datasource>} */ async createDatasource(filePath,engineType){ try{ var {datasourceId} = await W.createDatasource(this._SMWorkspaceId,filePath,engineType); var datasource = new Ds(); datasource._SMDatasourceId = datasourceId; return datasource; }catch(e){ console.error(e); } } /** * 关闭指定名称的数据集 * @memberOf Workspace * @param datasourceName 数据集名称 * @returns {Promise.&lt;boolean>} */ async closeDatasource(datasourceName){ try{ var {closed} = await W.closeDatasource(this._SMWorkspaceId,datasourceName); return closed; }catch(e){ console.error(e); } } /** * 关闭所有数据集 * @memberOf Workspace */ async closeAllDatasource(){ try{ await W.closeAllDatasource(this._SMWorkspaceId); }catch(e){ console.error(e); } } /** * 移除地图 * @memberOf Workspace * @param mapName * @returns {boolean} */ async removeMap(mapName){ try{ var {removed} = await W.removeMap(this._SMWorkspaceId,mapName); return removed; }catch(e){ console.error(e); } } /** * 清空所有地图 * @memberOf Workspace */ async clearMap(){ try{ await W.clearMap(this._SMWorkspaceId); }catch(e){ console.error(e); } } /** * 获取三维场景名称 * @memberOf Workspace * @param index */ async getSceneName(index){ try{ var {name} = await W.getSceneName(this._SMWorkspaceId,index); return name; }catch(e){ console.error(e); } } } </code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BufferAnalyst.html">BufferAnalyst</a></li><li><a href="BufferAnalystParameter.html">BufferAnalystParameter</a></li><li><a href="DataDownloadService.html">DataDownloadService</a></li><li><a href="Dataset.html">Dataset</a></li><li><a href="DatasetVector.html">DatasetVector</a></li><li><a href="DatasetVectorInfo.html">DatasetVectorInfo</a></li><li><a href="Datasource.html">Datasource</a></li><li><a href="DatasourceConnectionInfo.html">DatasourceConnectionInfo</a></li><li><a href="DataUploadService.html">DataUploadService</a></li><li><a href="Feature.html">Feature</a></li><li><a href="FeatureSet.html">FeatureSet</a></li><li><a href="GeoLine.html">GeoLine</a></li><li><a href="Geometry.html">Geometry</a></li><li><a href="GeoPoint.html">GeoPoint</a></li><li><a href="GeoRegion.html">GeoRegion</a></li><li><a href="GeoStyle.html">GeoStyle</a></li><li><a href="Layer.html">Layer</a></li><li><a href="LayerSetting.html">LayerSetting</a></li><li><a href="LayerSettingVector.html">LayerSettingVector</a></li><li><a href="LocationManager.html">LocationManager</a></li><li><a href="Map.html">Map</a></li><li><a href="MapControl.html">MapControl</a></li><li><a href="MapView.html">MapView</a></li><li><a href="Navigation2.html">Navigation2</a></li><li><a href="OverlayAnalyst.html">OverlayAnalyst</a></li><li><a href="OverlayAnalystParameter.html">OverlayAnalystParameter</a></li><li><a href="Point.html">Point</a></li><li><a href="Point2D.html">Point2D</a></li><li><a href="QueryParameter.html">QueryParameter</a></li><li><a href="QueryService.html">QueryService</a></li><li><a href="Rectangle2D.html">Rectangle2D</a></li><li><a href="Scene.html">Scene</a></li><li><a href="Selection.html">Selection</a></li><li><a href="ServiceBase.html">ServiceBase</a></li><li><a href="ServiceQueryParameter.html">ServiceQueryParameter</a></li><li><a href="Size2D.html">Size2D</a></li><li><a href="Theme.html">Theme</a></li><li><a href="Track.html">Track</a></li><li><a href="TrackingLayer.html">TrackingLayer</a></li><li><a href="TraditionalNavi.html">TraditionalNavi</a></li><li><a href="Workspace.html">Workspace</a></li><li><a href="WorkspaceConnectionInfo.html">WorkspaceConnectionInfo</a></li></ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Tue Aug 01 2017 16:16:49 GMT+0800 (CST) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>