UNPKG

imobile_for_javascript

Version:

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

108 lines (89 loc) 3.66 kB
/** * Sample React Native App * https://github.com/facebook/react-native * @flow 图层管理、比例尺、图例控件测试案例。 */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, View } from 'react-native'; import Workspace from './../NativeModule/Workspace.js'; import ServerMapView from './../NativeModule/components/SMMapViewUI.js'; import DatasourceConnectionInfo from './../NativeModule/DatasourceConnectionInfo'; import Dataset from './../NativeModule/Dataset'; import Datasource from './../NativeModule/Datasource'; import OverlayAnalyst from './../NativeModule/OverlayAnalyst'; import OverlayAnalystParameter from './../NativeModule/OverlayAnalystParameter'; export default class GeometryInfo extends Component { state = { mapId:false, } _onGetInstance = (mapView) => { this.mapView = mapView; this._addMap(); } /** * 初始化地图 * @private */ _addMap = () => { try { //创建workspace模块对象 var workspaceModule = new Workspace(); var datasourceModule = new DatasourceConnectionInfo(); var overlayAnalystParameterModule = new OverlayAnalystParameter(); var overlayAnalystModule = new OverlayAnalyst(); //加载工作空间等一系列打开地图的操作 (async function () { try { this.workspace = await workspaceModule.createObj(); var datasourceConnectionInfo = await datasourceModule.createObj(); await datasourceConnectionInfo.setServer("/SampleData/GeometryInfo1/World.udb"); var targetDatasource = await this.workspace.openDatasource({server:"/SampleData/GeometryInfo1/World.udb",engineType:219}); var d1 = await targetDatasource.getDataset("Rivers_clipped"); var clippedDataset = await d1.toDatasetVector(); var d2 = await targetDatasource.getDataset("Lakes_clip"); var clipDataset = await d2.toDatasetVector(); var d3 = await targetDatasource.getDataset("resultDatasetClip"); var resultDatasetClip = await d3.toDatasetVector(); // var resultDatasetClip = await targetDatasource.createDatasetVector("resultDatasetClip5",Dataset.TYPE.LINE,Datasource.EncodeType.NONE); var overlayAnalystParameter = await overlayAnalystParameterModule.createObj(); await overlayAnalystParameter.setTolerance(0.0122055608); var clipped = await overlayAnalystModule.clip(clippedDataset,clipDataset,resultDatasetClip,overlayAnalystParameter); console.warn("clipped:" + clipped); this.mapControl = await this.mapView.getMapControl(); this.map = await this.mapControl.getMap(); await this.map.setWorkspace(this.workspace); // await this.map.addDataset(d3,true); await this.map.refresh(); } catch (e) { console.error(e); } }).bind(this)(); } catch (e) { console.error(e); } } render() { return ( <View style={styles.container}> <ServerMapView ref="mapView" style={styles.map} onGetInstance={this._onGetInstance}/> </View> ); } } const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, map: { flex: 1, alignSelf: 'stretch', } }); AppRegistry.registerComponent('GeometryInfo', () => GeometryInfo);