2012-02-13 3 views
6

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

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

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

ответ

13

Вы можете использовать его как,

Показаны особое место,

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

Спасибо. Этот протокол URI кажется недокументированным, любая идея о совместимости версий? – apoorv020

+3

1+ для отличного ответа. – Mihir

+0

Обратите внимание, что это не сработает, если вы забудете добавить скобки вокруг имени местоположения (Maninagar в этом примере) – phreakhead

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^