imobile_for_reactnative
Version:
iMobile for ReactNative,是SuperMap iMobile推出的一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。
99 lines (76 loc) • 2.39 kB
text/typescript
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)
}