我想在谷歌地图中显示一个位置,因为我使用了以下代码:
String geo = maindata.getString("map");
String uri = String.format(Locale.ENGLISH, geo, "", "");
final Intent intent1 = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
try {
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
cordova.getActivity().startActivity(intent1);
}
});
}catch(Exception e){
e.printStackTrace();
}
谷歌地图应用程序正在启动,它也显示正确的位置, 但问题是,当按下后退按钮然后重新启动我的应用程序。
而我想从午餐位置恢复
答案 0 :(得分:1)
您可以使用以下代码段在Google地图上显示特定位置:
Uri gmmIntentUri = Uri.parse("google.navigation:q=" + lattitude+ ","
+ longitude+ "+&mode=d");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
if (isAppInstalled("com.google.android.apps.maps")) {
mapIntent.setClassName("com.google.android.apps.maps",
"com.google.android.maps.MapsActivity");
}
startActivity(mapIntent);
此处纬度和经度属于您要在地图上显示的位置。
/**
* helper function to check if Maps is installed
**/
private boolean isAppInstalled(String uri) {
PackageManager pm = mActivity.getPackageManager();
boolean app_installed = false;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
} catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed;
}
在谷歌地图用户的背面按下将重定向到启动谷歌地图的同一活动。
答案 1 :(得分:0)
您必须将活动置于堆栈的底部,然后启动Google地图应用活动
执行以下操作:
String geo = maindata.getString("map");
String uri = String.format(Locale.ENGLISH, geo, "", "");
final Intent intent1 = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
try {
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MainActivity.class); //Instead Of MainActivity you can add your Launching activity Name
stackBuilder.addNextIntent(intent1);
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
startActivity(intent1);
}
});
}catch(Exception e){
e.printStackTrace();
}