From 0768ead30e6912e7b00444250fd747346a717631 Mon Sep 17 00:00:00 2001 From: Kurisu Date: Mon, 17 Oct 2022 16:15:49 +0800 Subject: [PATCH] 新增打开外部高德地图导航 --- lib/android/src/main/java/cn/feewee/amap3d/modules/SdkModule.kt | 21 +++++++++++++++++++++ lib/src/sdk.ts | 12 ++++++++++++ package.json | 2 +- 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/lib/android/src/main/java/cn/feewee/amap3d/modules/SdkModule.kt b/lib/android/src/main/java/cn/feewee/amap3d/modules/SdkModule.kt index a57ee6d..da849f0 100644 --- a/lib/android/src/main/java/cn/feewee/amap3d/modules/SdkModule.kt +++ b/lib/android/src/main/java/cn/feewee/amap3d/modules/SdkModule.kt @@ -1,7 +1,11 @@ package cn.feewee.amap3d.modules import com.amap.api.location.AMapLocationClient +import com.amap.api.maps.AMapException +import com.amap.api.maps.AMapUtils import com.amap.api.maps.MapsInitializer +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.RoutePara import com.facebook.react.bridge.Promise import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContextBaseJavaModule @@ -28,4 +32,21 @@ class SdkModule(val context: ReactApplicationContext) : ReactContextBaseJavaModu fun getVersion(promise: Promise) { promise.resolve(MapsInitializer.getVersion()) } + + @ReactMethod + fun openAmapNavi(sLat: Double, sLng: Double, eLat: Double, eLng: Double, sName: String?, eName: String?, promise: Promise) { + try { + val routePara = RoutePara() + routePara.startPoint = LatLng(sLat,sLng) + routePara.endPoint = LatLng(eLat,eLng) + routePara.startName = sName + routePara.endName = eName + AMapUtils.openAMapDrivingRoute(routePara, context) + promise.resolve(null) + } catch (ae: AMapException) { + promise.reject("-2", ae.errorMessage, ae); + } catch (e:Exception) { + promise.reject("-1", "未知错误,请重试", e); + } + } } diff --git a/lib/src/sdk.ts b/lib/src/sdk.ts index db488f4..e7e93da 100644 --- a/lib/src/sdk.ts +++ b/lib/src/sdk.ts @@ -1,5 +1,6 @@ import { NativeModules, Platform } from "react-native"; import { AppKey } from "./gen-types"; +import { LatLng } from "./types"; const { AMapSdk } = NativeModules; @@ -10,3 +11,14 @@ export function init(key: AppKey) { export function getVersion(): Promise { return AMapSdk.getVersion(); } +/** + * 调用手机上的高德地图导航 + * @param start 起始地经纬度 + * @param end 目的地经纬度 + * @param startName 开始地址 + * @param endName 目的地地址 + * @returns + */ +export function openNavi(start: LatLng, end: LatLng, startName?: string, endName?: string): Promise { + return AMapSdk.openAmapNavi(start.latitude, start.longitude, end.latitude, end.longitude, startName, endName); +} diff --git a/package.json b/package.json index 88e8830..4f26380 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@cqfw/react-native-amap3d", - "version": "0.1.1", + "version": "0.1.2", "description": "react-native 高德地图组件,支持 Android + iOS", "author": "feewee", "license": "MIT", -- libgit2 0.22.2