UNPKG

imobile_for_reactnative

Version:

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

99 lines (76 loc) 2.39 kB
import { NativeModules } from 'react-native' import { Point2D } from '../data/SData' import { NaviStep } from '../navigation/SNavigation' const SARNavigation = NativeModules.SARNavigation /** POI搜索参数 */ export interface POISearchParam { datasourceAlias: string poiDatasetName: string keyword: string /** 经纬度坐标 */ location: Point2D radius: number /** 结果使用的坐标系 1:经纬度 2:墨卡托 */ to: 1 | 2 } /** POI搜索结果 */ export interface POISearchResult { totalHits: number poiInfos: POIInfo[] } /** 数据集 poi 信息 */ export interface POIInfo { location: Point2D name: string uid: string } /** AR导航路径参数 */ export interface ARNaviRoute { route: Point2D[] naviStep: Pick<NaviStep, 'name' | 'dirToSwerve' | 'point'>[] } /** * 加载分析结果 */ export function loadNaviRoute(param: ARNaviRoute): Promise<boolean> { return SARNavigation.loadNaviRoute(param) } /** * 使用加载的路径开始导航 * @throws 许可异常 */ export function startGuide(): Promise<boolean> { return SARNavigation.startGuide() } /** 结束导航 */ export function stopGuide(): Promise<boolean> { return SARNavigation.stopGuide() } //***************************** 导航二维小地图 **************************************************** /** * 设置AR导航小地图中心点的位置,单位dp * @param width ios 设置地图宽高 * @param autoAdapt Android y坐标会根据是否显示navigationBar自动调整位置,默认false */ export function setNaviBaseMapPosition(param: Point2D & {width?: number, autoAdapt?: boolean}): Promise<boolean> { return SARNavigation.setNaviBaseMapPosition(param) } //***************************** poi **************************************************** /** poi搜索 */ export function searchPoi(param: POISearchParam): Promise<POISearchResult | undefined | null>{ return SARNavigation.searchPoi(param) } /** AR场景中添加搜索结果poi */ export function addSearchPois(params: POIInfo[]): Promise<boolean> { return SARNavigation.addSearchPois(params) } /** 移除AR场景中的搜索结果poi */ export function removeSearchPois(): Promise<boolean> { return SARNavigation.removeSearchPois() } /** 选中搜索结果poi */ export function selectSearchPoi(tag: string): Promise<boolean> { return SARNavigation.selectSearchPoi(tag) }