25

我正在尝试以我的应用程序的意图启动导航活动。我希望它从我的位置开始导航到我提供的点。我试过这种方式

String uri = "geo: "+String.valueOf(latitude) + "," + String.valueOf(longitude);
context.startActivity(new Intent(android.content.Intent.ACTION_VIEW,
                            Uri.parse(uri)));

当我选择导航时效果很好Waze(它立即从“开始导航”对话框开始),但不适用于maps(只显示点,而不是导航选项)

如果我使用这种方式

Intent intent = 
            new Intent(Intent.ACTION_VIEW,
                    Uri.parse("http://maps.google.com/maps?"  + 
                            "&daddr=" + String.valueOf(latitude) + "," 
                             + String.valueOf(longitude)));
context.startActivity(intent);

相反,开始导航maps并仅显示点Waze

谢谢!

4

3 回答 3

31

我自己已经完成了这项工作,并且通过以下方式使用它没有任何问题:

intent.setData(Uri.parse("geo:" + getLatitude() + "," + 
    getLongitude() + "?q=" + getStreet() + "+" + 
    getHousenumber() + "+" + getPostalcode() + "+" + 
    getCity()));

不同之处在于我使用“&q=”作为谷歌所述的查询。

请参阅: https ://developer.android.com/guide/components/intents-common.html#Maps

于 2014-07-22T14:38:47.713 回答
11

这是一种简单的方法,适用于它们:

爪哇

String uri = "geo: latitude,longtitude ?q= latitude,longtitude";
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(uri)));

科特林

val uri = "geo: $latitude,$longtitude ?q= $latitude,$longtitude"
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(uri)))

我希望这会有用

于 2020-01-05T08:30:35.217 回答
-4

好的谷歌地图

    final String uri="http://maps.google.com/maps?f=d&hl=de&geocode=&saddr=" + Global.lattaxi + "," + Global.lontaxi + "&daddr=" + Global.latcliente + "," + Global.loncliente + "&ie=UTF8";
     final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));

    intent.setComponent(new ComponentName(
            "com.google.android.apps.maps",
            "com.google.android.maps.MapsActivity"));
    startActivity(intent);
于 2016-03-02T15:42:18.793 回答