我有一个显示带有标记的地图的应用程序。当用户触摸标记时,我想为他们开始导航。
是否有一个 Intent/Activity 可以传递经度和纬度并启动用户导航应用程序?
谢谢你的帮助。
我有一个显示带有标记的地图的应用程序。当用户触摸标记时,我想为他们开始导航。
是否有一个 Intent/Activity 可以传递经度和纬度并启动用户导航应用程序?
谢谢你的帮助。
我是这样解决的。发布的网址是相似的。
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 是结束
利用 :
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);
这很好用:
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);