启动外部活动以显示地图

时间:2012-02-08 03:53:53

标签: java android google-maps android-activity maps

这是最新消息。我想开始一个外部活动来显示地理坐标,而不是在我的应用程序中实现Google地图。目前我手边有太多东西,我不想经历实施地图的麻烦。因此,是否可以将参数传递给外部地图活动,类似于我们对文本消息,电话,相机等的处理?

非常感谢!

2 个答案:

答案 0 :(得分:2)

您可以使用此命令执行此操作:

private void openMapGeo(String latitude, String longitude) {
    Intent intent2 = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:" + latitude + ","
            + longitude + "?z=17&q=" + latitude + "," + longitude));
    // z stands for zoom level
    // replace the q with a search string works too. Example:
    // intent2 = new Intent(Intent.ACTION_VIEW,
    // Uri.parse("geo:0,0?q=Tokyo"));
    startActivity(intent2);
}

另一种方法是使用地图网站网址。这将询问用户是否要打开地图应用程序(如果已安装)或浏览器:

private void openMapUrl(String latitude, String longitude) {
    Intent intent = new Intent(Intent.ACTION_VIEW,
            Uri.parse("http://maps.google.com/?q=" + latitude + "," + longitude));
    startActivity(intent);
}

此处的其他一些示例:https://github.com/pboos/GoogleMapExamples(查看其中的Presentation.pdf文件)


编辑:

如果安装了谷歌地图应用程序,根据事实使用上述两者(上述两个功能也需要存在):

private void openMap(String latitude, String longitude) {
    try {
       ApplicationInfo info = getPackageManager().getApplicationInfo("com.google.android.apps.maps", 0 );
        openMapGeo(latitude, longitude);
    } catch(PackageManager.NameNotFoundException e) {
        openMapUrl(latitude, longitude);
    }
}

答案 1 :(得分:0)

您实际上可以使用地图网络应用程序,转到浏览器并转到谷歌地图的网站,然后运行您想要的任何类型的查询。看看api的地图。