Как запустить намерение карты с маркером / элементом наложения на заданной широте и долготе? - PullRequest
6 голосов
/ 13 февраля 2012

У меня есть широта и долгота, и я хочу открыть карты Google с центром в этой точке. Поэтому я использую следующий код:

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

Однако, это не помещает маркер в центр. Я хочу поместить какой-то маркер в точку, с которой я начинаю (и, возможно, какое-то название для нее). Есть идеи, как этого достичь?

Ответы [ 2 ]

16 голосов
/ 13 февраля 2012

Вы можете использовать его следующим образом:

Показывать конкретное место,

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);
0 голосов
/ 13 февраля 2012

Вы можете просто указать широту и долготу в качестве дополнений к цели:

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);

Тогда вы можете использовать эти значения для чего угодно. Надеюсь, это поможет.

...