2

我有一个显示带有标记的地图的应用程序。当用户触摸标记时,我想为他们开始导航。

是否有一个 Intent/Activity 可以传递经度和纬度并启动用户导航应用程序?

谢谢你的帮助。

4

3 回答 3

6

我是这样解决的。发布的网址是相似的。

Intent navigation = new Intent(
            Intent.ACTION_VIEW,
            Uri.parse("http://maps.google.com/maps?saddr=START_LAT,START_LON&daddr=END_LAT,END_LON"));
startActivity(navigation);

其中 Start 是 START_LON,START_LAT 是经度和纬度,END_LON,END_LAT 是结束

于 2013-02-22T16:18:14.323 回答
1

利用 :

Uri gmmIntentUri = Uri.parse("google.navigation:q="+"18.7703500,19.4534500");
                Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                mapIntent.setPackage("com.google.android.apps.maps");
                startActivity(mapIntent);
于 2015-02-10T05:19:23.570 回答
1

这很好用:

    googleMap.setMyLocationEnabled(true);

    LocationManager locManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    Criteria cri = new Criteria();
    bestProvider = locManager.getBestProvider(cri, true);

    Location loc = locManager.getLastKnownLocation(bestProvider);
    String latMy = String.valueOf(loc.getLatitude());
    String lngMy = String.valueOf(loc.getLongitude());

    Toast.makeText(this, "Navigation", Toast.LENGTH_SHORT).show();
    String url = "http://maps.google.com/maps?saddr=" + latMy + ","
            + lngMy + "&daddr=" + "18.7703500,19.4534500";

    Intent navigation = new Intent(Intent.ACTION_VIEW);
    navigation.setData(Uri.parse(url));

    startActivity(navigation);
于 2013-12-10T23:40:25.180 回答