Google Maps Android API v2 不提供任何导航功能。它与地图 API 的服务条款相矛盾。请查看 ToS 第 10.4 c (iii) 节:
无导航。 您不得将服务或内容用于或与以下目的相关:(a) 实时导航或路线指导;或 (b) 自动或自主车辆控制。
https://developers.google.com/maps/terms#section_10_4
如果您需要导航,您应该创建一个以导航模式打开 Google 地图应用程序的 intent。有一个 Google 地图 URL,允许构建通用的跨平台 URL 以从您的应用程序启动 Google 地图意图。您可以按照此文档打开本机应用程序的导航模式:
https://developers.google.com/maps/documentation/urls/guide#directions-action
希望这有帮助!
有一种方法可以激发类似的视图,但不像 uber 那样嵌入,但非常接近。
public void loadNavigationView(String lat,String lng){
Uri navigation = Uri.parse("google.navigation:q="+lat+","+lng+"");
Intent navigationIntent = new Intent(Intent.ACTION_VIEW, navigation);
navigationIntent.setPackage("com.google.android.apps.maps");
startActivity(navigationIntent);
}
你调用该方法并提供纬度和经度。它将启动谷歌地图导航。就像uber
经过搜索,我发现了一些与此相关的内容。现在,谷歌提供应用内导航和谷歌地图逐向导航支持。它是付费的,您可以在下面的链接上查看更多相关信息。
https://cloud.google.com/maps-platform/rides-and-deliveries
不确定是否能解决您的问题。
这是打开并启用 Google 地图导航的方法
private fun startNavigation(lat: Double, lng: Double) {
val uri = Uri.parse("google.navigation:q=" + lat + "," + lng + "&mode=d")
//create an intent
val mapIntent = Intent()
//add action & data
mapIntent.action = Intent.ACTION_VIEW
mapIntent.data = uri
//package name for google maps app
mapIntent.setPackage("com.google.android.apps.maps")
try {
requireContext().startActivity(mapIntent)
} catch (e: ActivityNotFoundException) {
//if map app isn't resolved/installed catch error
e.printStackTrace()
}
}