【问题标题】:How to launch map intent with a marker/overlay item at given latitude and longitude?如何在给定的纬度和经度上使用标记/覆盖项目启动地图意图?
【发布时间】:2012-02-13 07:14:49
【问题描述】:

我有一个纬度和经度,我想打开以该点为中心的谷歌地图。所以我使用以下代码:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
    Uri.parse("geo:"+lat +","+lng));
startActivity(intent);

但是,这不会在中心放置标记。我想在我开始的地方放置某种标记(以及可选的某种名称)。知道如何实现吗?

【问题讨论】:

    标签: android android-intent android-maps


    【解决方案1】:

    你可以像这样使用它,

    显示特定地点,

    Uri uri = Uri.parse("geo:0,0?q=22.99948365856307,72.60040283203125
                                                                   (Maninagar)");
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(intent);
    

    显示到地点之间的路线,

    Intent intent = new Intent(Intent.ACTION_VIEW,
    Uri.parse("http://maps.google.com/maps?saddr="+23.0094408+","+72.5988541+"&
                                daddr="+22.99948365856307+","+72.60040283203125));
    startActivity(intent);
    

    【讨论】:

    • 谢谢。这个 URI 协议似乎没有记录,关于版本兼容性的任何想法?
    • 请注意,如果您忘记在位置名称周围添加括号(本例中为 Maninagar),这将不起作用
    【解决方案2】:

    您可以像这样简单地将纬度和经度作为额外的意图:

    Intent intent = new Intent();
        intent.putExtra("latitude", latitude);
        intent.putExtra("longitude", longitude);
        startActivity(intent);
    

    然后从您启动的 MapActivity 中获取它们:

    Intent intent = getIntent();
        double latitude = intent.getDoubleExtra("latitude", 0.0);
        double longitude = intent.getDoubleExtra("longitude", 0.0);
    

    然后,您可以将这些值用于您想要的任何东西。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多