如何在Android应用程序中启用谷歌地图导航

问题描述 投票:0回答:4

我在谷歌地图上有两个点,第一个是源点,第二个是目的地,我在地图上有这些点之间的路线。现在我想像谷歌在谷歌地图上那样将用户从源点导航到目的地,如下所示:- enter image description here

android google-maps google-maps-android-api-2 google-maps-urls
4个回答
12
投票

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

希望这有帮助!


3
投票

有一种方法可以激发类似的视图,但不像 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


1
投票

经过搜索,我发现了一些与此相关的内容。现在,谷歌提供应用内导航和谷歌地图逐向导航支持。它是付费的,您可以在下面的链接上查看更多相关信息。

https://cloud.google.com/maps-platform/rides-and-deliveries

不确定是否能解决您的问题。


0
投票

这是打开并启用 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()
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.