UNPKG

rn_supermap

Version:

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

1,033 lines (938 loc) 25.8 kB
import { NativeModules, DeviceEventEmitter, NativeEventEmitter, Platform } from 'react-native' import { EventConst } from '../../constains/index' import SSceneTool from './SSceneTool' let SScene = NativeModules.SScene const nativeEvt = new NativeEventEmitter(SScene); export default (function () { /** * 打开工作空间 * @param infoDic * @returns {Promise} */ function openWorkspace(infoDic) { try { const type = infoDic.server.split('.').pop() Object.assign(infoDic, { type: getWorkspaceType(type) }) return SScene.openWorkspace(infoDic) } catch (e) { console.error(e) } } function openMap(name) { try { return SScene.openMap(name) } catch (error) { console.log(error) } } function getMapList() { try { return SScene.getMapList() } catch (error) { console.log(error) } } function getLayerList() { try { return SScene.getLayerList() } catch (error) { console.log(error) } } function getTerrainLayerList() { try { return SScene.getTerrainLayerList() } catch (error) { console.log(error) } } function setTerrainLayerListVisible(name, value) { try { return SScene.setTerrainLayerListVisible(name, value) } catch (error) { console.log(error) } } function setVisible(name, value) { try { return SScene.setVisible(name, value) } catch (error) { console.log(error) } } function setSelectable(name, value) { try { return SScene.setSelectable(name, value) } catch (error) { console.log(error) } } function closeWorkspace() { try { return SScene.closeWorkspace() } catch (error) { console.log(error) } } function saveWorkspace(){ try { return SScene.saveWorkspace() } catch (error) { console.log(error) } } function getFlyRouteNames() { try { return SScene.getFlyRouteNames() } catch (error) { console.log(error) } } function setPosition(index) { try { return SScene.setPosition(index) } catch (error) { console.log(error) } } function flyStart() { try { return SScene.flyStart() } catch (error) { console.log(error) } } function flyPause() { try { return SScene.flyPause() } catch (error) { console.log(error) } } function flyPauseOrStart() { try { return SScene.flyPauseOrStart() } catch (error) { console.log(error) } } function flyStop() { try { return SScene.flyStop() } catch (error) { console.log(error) } } function getFlyProgress(handlers) { try { if (Platform.OS === 'ios' && handlers) { if (typeof handlers.callback === 'function') { nativeEvt.addListener(EventConst.SSCENE_FLY, function (e) { handlers.callback(e) }) } } else if (Platform.OS === 'android' && handlers) { if (typeof handlers.callback === "function") { DeviceEventEmitter.addListener(EventConst.SSCENE_FLY, function (e) { handlers.callback(e); }); } } return SScene.getFlyProgress() } catch (error) { console.log(error) } } function zoom(scale) { try { return SScene.zoom(scale) } catch (error) { console.log(error) } } function setListener(){ try { return SScene.setListener() } catch (error) { console.log(error) } } function getAttribute() { try { // if (Platform.OS === 'ios' && handlers) { // if (typeof handlers.callback === 'function') { // nativeEvt.addListener(EventConst.SSCENE_ATTRIBUTE, function (e) { // handlers.callback(e) // }) // } // } else if (Platform.OS === 'android' && handlers) { // if (typeof handlers.callback === "function") { // DeviceEventEmitter.addListener(EventConst.SSCENE_ATTRIBUTE, function (e) { // handlers.callback(e) // }); // } // } return SScene.getAttribute() } catch (error) { console.log(error) } } function addAttributeListener(handlers) { let listen if (Platform.OS === 'ios' && handlers) { if (typeof handlers.callback === 'function') { listen = nativeEvt.addListener(EventConst.SSCENE_ATTRIBUTE, function (e) { handlers.callback(e) }) } } else if (Platform.OS === 'android' && handlers) { if (typeof handlers.callback === "function") { listen = DeviceEventEmitter.addListener(EventConst.SSCENE_ATTRIBUTE, function (e) { handlers.callback(e) }); } } return listen } function setHeading() { try { return SScene.setHeading() } catch (error) { console.log(error) } } function clearSelection() { try { return SScene.clearSelection() } catch (error) { console.log(error) } } function initsymbol() { try { return SScene.initsymbol() } catch (error) { console.log(error) } } function startDrawPoint() { try { return SScene.startDrawPoint() } catch (error) { console.log(error) } } function startDrawLine() { try { return SScene.startDrawLine() } catch (error) { console.log(error) } } function startDrawArea() { try { return SScene.startDrawArea() } catch (error) { console.log(error) } } function startDrawText(handlers) { try { if (Platform.OS === 'ios' && handlers) { if (typeof handlers.callback === 'function') { nativeEvt.addListener(EventConst.SSCENE_SYMBOL, function (e) { handlers.callback(e) }) } } else if (Platform.OS === 'android' && handlers) { if (typeof handlers.callback === "function") { DeviceEventEmitter.addListener(EventConst.SSCENE_SYMBOL, function (e) { handlers.callback(e); }); } } return SScene.startDrawText() } catch (error) { console.log(error) } } function addGeoText(x,y,z,text) { try { return SScene.addGeoText(x, y,z,text) } catch (error) { console.log(error) } } function symbolback() { try { return SScene.symbolback() } catch (error) { console.log(error) } } function closeAllLabel() { try { return SScene.closeAllLabel() } catch (error) { console.log(error) } } function clearAllLabel() { try { return SScene.clearAllLabel() } catch (error) { console.log(error) } } function clearcurrentLabel() { try { return SScene.clearcurrentLabel() } catch (error) { console.log(error) } } function save() { try { return SScene.save() } catch (error) { console.log(error) } } function setAllLayersSelection(value) { try { return SScene.setAllLayersSelection(value) } catch (error) { console.log(error) } } function ensureVisibleLayer(name) { try { return SScene.ensureVisibleLayer(name) } catch (error) { console.log(error) } } // function addTerrainLayer(url, name) { // try { // return SScene.addTerrainLayer(url, name) // } catch (error) { // console.log(error) // } // } function addTerrainCacheLayer(path, name) { try { return SScene.addTerrainCacheLayer(path, name) } catch (error) { console.log(error) } } function removeTerrainCacheLayer(name) { try { return SScene.removeTerrainCacheLayer(name) } catch (error) { console.log(error) } } function addImageCacheLayer(path, name) { try { return SScene.addImageCacheLayer(path, name) } catch (error) { console.log(error) } } //type: 1 tianditu 2 bingmap function changeBaseLayer(type) { try { return SScene.changeBaseLayer(type) } catch (error) { console.log(error) } } function removeImageCacheLayer(name) { try { return SScene.removeImageCacheLayer(name) } catch (error) { console.log(error) } } function getTerrainCacheNames() { try { return SScene.getTerrainCacheNames() } catch (error) { console.log(error) } } function setTerrainCacheName(vaue) { try { return SScene.setTerrainCacheName(vaue) } catch (error) { console.log(error) } } function getImageCacheNames() { try { return SScene.getImageCacheNames() } catch (error) { console.log(error) } } function setImageCacheName(value) { try { return SScene.setImageCacheName(value) } catch (error) { console.log(error) } } function addLayer3D(Url, Layer3DType, layerName, imageFormatType, dpi, addToHead,token) { try { // console.log(SScene.addLayer3D) return SScene.addLayer3D( Url, Layer3DType, layerName, imageFormatType, dpi, addToHead,token) } catch (error) { console.log(error) } } function startDrawFavorite(text,handlers) { try { if (Platform.OS === 'ios' && handlers) { if (typeof handlers.callback === 'function') { nativeEvt.addListener(EventConst.SSCENE_FAVORITE, function (e) { handlers.callback(e) }) } } else if (Platform.OS === 'android' && handlers) { if (typeof handlers.callback === "function") { DeviceEventEmitter.addListener(EventConst.SSCENE_FAVORITE, function (e) { handlers.callback(e); }); } } return SScene.startDrawFavorite(text) } catch (error) { console.log(error) } } function setFavoriteText(content) { try { return SScene.setFavoriteText(content) } catch (error) { console.log(error) } } function getcompass(){ try { return SScene.getcompass() } catch (error) { console.log(error) } } function checkoutListener(event){ try { return SScene.checkoutListener(event) } catch (error) { console.log(error) } } function setCircleFly(){ try { return SScene.getFlyPoint() } catch (error) { console.log(error) } } function addCircleFlyListen(handlers){ let listen if (Platform.OS === 'ios' && handlers) { if (typeof handlers.callback === 'function') { listen=nativeEvt.addListener(EventConst.SSCENE_CIRCLEFLY, function (e) { handlers.callback(e) }) } } else if (Platform.OS === 'android' && handlers) { if (typeof handlers.callback === "function") { listen= DeviceEventEmitter.addListener(EventConst.SSCENE_CIRCLEFLY, function (e) { handlers.callback(e); }); } } return listen } function startCircleFly(){ try { return SScene.setCircleFly() } catch (error) { console.log(error) } } function stopCircleFly(){ try { return SScene.stopCircleFly() } catch (error) { console.log(error) } } function clearCirclePoint(){ try { return SScene.clearCirclePoint() } catch (error) { console.log(error) } } function clearLineAnalyst(){ return SScene.setMeasureLineAnalyst() } function clearSquareAnalyst(){ return SScene.setMeasureSquareAnalyst() } function setMeasureLineAnalyst(handlers) { try { if (Platform.OS === 'ios' && handlers) { if (typeof handlers.callback === 'function') { this.LineAnalystListener=nativeEvt.addListener(EventConst.ANALYST_MEASURELINE, function (e) { handlers.callback(e) }) } } else if (Platform.OS === 'android' && handlers) { if (typeof handlers.callback === "function") { this.LineAnalystListener=DeviceEventEmitter.addListener(EventConst.ANALYST_MEASURELINE, function (e) { handlers.callback(e); }); } } return SScene.setMeasureLineAnalyst() } catch (e) { console.error(e); } } function setMeasureSquareAnalyst(handlers) { try { if (Platform.OS === 'ios' && handlers) { if (typeof handlers.callback === 'function') { this.SquareAnalystListener=nativeEvt.addListener(EventConst.ANALYST_MEASURESQUARE, function (e) { handlers.callback(e) }) } } else if (Platform.OS === 'android' && handlers) { if (typeof handlers.callback === "function") { this.SquareAnalystListener=DeviceEventEmitter.addListener(EventConst.ANALYST_MEASURESQUARE, function (e) { handlers.callback(e); }); } } return SScene.setMeasureSquareAnalyst() } catch (e) { console.error(e); } } function closeAnalysis() { try { this.LineAnalystListener&&this.LineAnalystListener.remove() this.LineAnalystListener=null this.SquareAnalystListener&&this.SquareAnalystListener.remove() this.SquareAnalystListener=null return SScene.closeAnalysis() } catch (e) { console.error(e); } } function removeKMLOfWorkcspace(){ try { return SScene.removeKMLOfWorkcspace() } catch (e) { console.error(e); } } function doZipFiles(fileList,toPath){ try { return SScene.doZipFiles(fileList,toPath) } catch (error) { console.error(error); } } function getWorkspacePath(){ try { return SScene.getWorkspacePath() } catch (error) { console.error(error); } } function getLableAttributeList(){ try { return SScene.getLableAttributeList() } catch (error) { console.error(error); } } function flyToFeatureById(){ try { return SScene.flyToFeatureById() } catch (error) { console.error(error); } } function getSetting(){ try { return SScene.getSetting() } catch (error) { console.error(error); } } function import3DWorkspace(infoDic,bPrivate=true){ try { const type = infoDic.server.split('.').pop() Object.assign(infoDic, { type: getWorkspaceType(type) }) return SScene.import3DWorkspace(infoDic,bPrivate) } catch (error) { console.error(error); } } function openScence(name,bPrivate=true){ try { return SScene.openScence(name,bPrivate) } catch (error) { console.error(error); } } function is3DWorkspace(infoDic){ try { // console.warn("is3DWorkspace") // console.log(SScene) // return const type = infoDic.server.split('.').pop() Object.assign(infoDic, { type: getWorkspaceType(type) }) return SScene.is3DWorkspace(infoDic) } catch (error) { console.error(error); } } function setCustomerDirectory(path){ try { return SScene.setCustomerDirectory(path) } catch (error) { console.error(error); } } function export3DScenceName(strScenceName,strDesFolder,bPrivate=true){ try { return SScene.export3DScenceName(strScenceName,strDesFolder,bPrivate) } catch (error) { console.error(error); } } function resetCamera(){ try { return SScene.resetCamera() } catch (error) { console.error(error); } } function setNavigationControlVisible(value){ try { return SScene.setNavigationControlVisible(value) } catch (error) { console.error(error); } } function setAction(action3d){ try { return SScene.setAction(action3d) } catch (error) { console.error(error); } } function getAttributeByName(name){ try { return SScene.getAttributeByName(name) } catch (error) { console.error(error); } } function saveCurrentRoutStop(){ try { return SScene.saveCurrentRoutStop() } catch (error) { console.error(error); } } function saveRoutStop(){ try { return SScene.saveRoutStop() } catch (error) { console.error(error); } } function pauseRoutStop(){ try { return SScene.pauseRoutStop() } catch (error) { console.error(error); } } function clearRoutStops(){ try { return SScene.clearRoutStops() } catch (error) { console.error(error); } } function initPointSearch(){ try { return SScene.initPointSearch() } catch (error) { console.error(error); } } function pointSearch(key){ try { return SScene.pointSearch(key) } catch (error) { console.error(error); } } function setPointSearchListener(handlers){ try { if (Platform.OS === 'ios' && handlers) { if (typeof handlers.callback === 'function') { nativeEvt.addListener(EventConst.POINTSEARCH_KEYWORDS, function (e) { handlers.callback(e) }) } } else if (Platform.OS === 'android' && handlers) { if (typeof handlers.callback === "function") { DeviceEventEmitter.addListener(EventConst.POINTSEARCH_KEYWORDS, function (e) { handlers.callback(e); }); } } } catch (error) { console.error(error); } } function toLocationPoint(index){ try { return SScene.toLocationPoint(index) } catch (error) { console.error(error); } } function savePoint(index,pointType){ try { return SScene.savePoint(index,pointType) } catch (error) { console.error(error); } } function navigationLine(){ try { return SScene.navigationLine() } catch (error) { console.error(error); } } /** * box裁剪 * @param obj = { * startX:int * startX:int * endX:int * endY:int * clipInner:Bool * layers:[] * } * @returns {*} */ function clipByBox(obj){ try { return SScene.clipByBox(obj) } catch (error) { console.error(error); } } /** * 清除裁剪 * @returns {*} */ function clipSenceClear(){ try { return SScene.clipSenceClear() } catch (error) { console.error(error); } } /** * 刷新距离和面积 * @returns {*} */ function displayDistanceOrArea(points){ try { let point3Ds=[] for(let i=0;i<points.length;i++){ let point=JSON.parse(points[i]) point3Ds.push(point) } return SScene.displayDistanceOrArea(point3Ds) } catch (error) { console.error(error); } } getWorkspaceType = (type) => { var value switch (type) { case 'SMWU': case 'smwu': value = 9 break case 'SXWU': case 'sxwu': value = 8 break case 'SMW': case 'smw': value = 5 break case 'SXW': case 'sxw': value = 4 break case 'UDB': case 'udb': value = 219 break default: value = 1 break } return value } function open3DNavigationMap() { try { return SScene.open3DNavigationMap() } catch (error) { console.log(error) } } /** * 获取当前场景 * @returns {*} */ function getSceneCenter(){ try { return SScene.getSceneCenter() }catch (e) { console.error(e) } } function getSceneXMLfromWorkspace(serverUrl) { try { return SScene.getSceneXMLfromWorkspace(serverUrl) } catch (error) { console.error(e) } } let SSceneExp = { getSceneCenter, openWorkspace, closeWorkspace, saveWorkspace, setVisible, getLayerList, getMapList, openMap, setSelectable, getFlyRouteNames, setPosition, flyStart, flyPause, flyPauseOrStart, flyStop, getFlyProgress, zoom, setListener, getAttribute, addAttributeListener, setTerrainLayerListVisible, getTerrainLayerList, setHeading, clearSelection, initsymbol, startDrawPoint, startDrawLine, startDrawArea, startDrawText, addGeoText, symbolback, closeAllLabel, clearAllLabel, clearcurrentLabel, save, setAllLayersSelection, changeBaseLayer, startDrawFavorite, setFavoriteText, getcompass, checkoutListener, setCircleFly, startCircleFly, stopCircleFly, clearCirclePoint, addCircleFlyListen, setMeasureLineAnalyst, setMeasureSquareAnalyst, closeAnalysis, clearLineAnalyst, clearSquareAnalyst, removeKMLOfWorkcspace, doZipFiles, getWorkspacePath, getLableAttributeList, flyToFeatureById, getSetting, import3DWorkspace, openScence, is3DWorkspace, setCustomerDirectory, export3DScenceName, resetCamera, setNavigationControlVisible, setAction, getAttributeByName, saveCurrentRoutStop, saveRoutStop, pauseRoutStop, clearRoutStops, initPointSearch, pointSearch, setPointSearchListener, toLocationPoint, savePoint, navigationLine, ensureVisibleLayer, getImageCacheNames, setImageCacheName, getTerrainCacheNames, setTerrainCacheName, addTerrainCacheLayer, addImageCacheLayer, removeTerrainCacheLayer, removeImageCacheLayer, clipByBox, clipSenceClear, open3DNavigationMap, displayDistanceOrArea, getSceneXMLfromWorkspace, } Object.assign(SSceneExp, SSceneTool) return SSceneExp })()