imobile_for_reactnative
Version:
iMobile for ReactNative,是SuperMap iMobile推出的一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。
122 lines (103 loc) • 2.74 kB
text/typescript
import { NativeModules } from 'react-native'
import {DatasourceConnectionInfo } from '../../../types/data'
const SMap2 = NativeModules.SMap2
/** 地图点击事件对象 */
export interface ITouchEvent {
screenPoint: {
x: number
y: number
}
mapPoint: {
x: number
y: number
}
LLPoint: {
x: number
y: number
}
}
interface Point {
x: number,
y: number,
}
/** 关闭 Mapview */
export function onClose() {
return SMap2.onClose()
}
/** 添加数据集到地图上 */
export function addToMap(info: DatasourceConnectionInfo, datasetIndex: number): Promise<boolean> {
return SMap2.addToMap(info, datasetIndex)
}
/**
* 添加位置callout
* @param point 地图点
*/
export function addLocationCallout(point: Point): Promise<boolean> {
return SMap2.addLocationCallout(point)
}
/**移除位置callout */
export function removeLocationCallout(): Promise<boolean> {
return SMap2.removeLocationCallout()
}
/** 定位到当前位置 */
export function moveToCurrent(): Promise<boolean> {
return SMap2.moveToCurrent()
}
/** 地图放大缩小 */
export function zoom(scale: number): Promise<boolean>{
return SMap2.zoom(scale)
}
/** 获取当前位置 */
export function getCurrentPoint(): Promise<Point> {
return SMap2.getCurrentPoint()
}
/**
* 屏幕点转经纬度
*
* 失败返回空
*/
export function pixelToLL(point: Point): Promise<Point | null> {
return SMap2.pixelToLL(point)
}
/** 数据是否可以打开 */
export function isDatasourceOpen(data: DatasourceConnectionInfo): Promise<Point> {
return SMap2.isDatasourceOpen(data)
}
/**
* 关闭地图选点数据源
*/
export function closeAllDatasource(): Promise<boolean>{
return SMap2.closeAllDatasource()
}
/**
* 仅用于地图选点
* 打开数据源并将指定数据集添加到地图上
* @param info DatasourceConnectionInfo
* @param defaultDataset 指定要添加的数据集序号或数据集名称,-1或空字符串则不添加
* @param toHead 是否添加到顶部图层,默认值true
* @param isVisible 设置图层可见,默认值true
*/
export function openDatasourceWithIndex(
info: DatasourceConnectionInfo,
defaultDataset: number | string,
toHead?: boolean,
isVisible?: boolean
): Promise<boolean> {
return SMap2.openDatasourceWithIndex(info, defaultDataset, toHead = true, isVisible = true)
}
/** 添加导航轨迹 */
export async function addNaviTrack(param: {x: number, y: number}[]): Promise<boolean> {
try {
return await SMap2.addNaviTrack(param)
} catch(e) {
return false
}
}
/** 移除导航轨迹 */
export async function removeNaviTrack(): Promise<boolean> {
try {
return await SMap2.removeNaviTrack()
} catch(e) {
return false
}
}