2012-10-24 11 views
21

Mapa Intencyjnego nie pracuje z określonym poziomie powiększenia, jak i niestandardowego znacznikaAndroid - Jak uruchomić mapę intencję Google w Android App z określonej lokalizacji, stopnia powiększenia i znacznik

float lat = 40.714728f; 
    float lng = -73.998672f; 

    String maplLabel = "ABC Label"; 
    final Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
      Uri.parse("geo:0,0?q="+lat+","+lng+"&z=16 (" + maplLabel + ")")); 
    startActivity(intent); 

ktoś wie co jest nie tak? lub jak to zrobić? Chcę pokazać mapę niektórych (lat, lng) z niestandardowym znacznikiem etykiety na określonym poziomie powiększenia.

+0

Przetestowałem to i działa dobrze .. na pewno nie zostawiłeś startActivity skomentował w rzeczywisty kod? – dymmeh

+0

Niestety, mój błąd, zapomniałem o usunięciu komentarza w tym poście. Przetestowałem to i pokazuje Nie można załadować adresu URL. jak to zrobiłeś? – umirza47

+0

Chcę pokazać to położenie na poziomie powiększenia 16 za pomocą markera, działało dla lokalizacji i znacznika, ale gdy zastosowałem parametr z, to nie zadziała w ogóle – umirza47

Odpowiedz

73

Spróbuj następujące rozwiązanie:

double latitude = 40.714728; 
double longitude = -73.998672; 
String label = "ABC Label"; 
String uriBegin = "geo:" + latitude + "," + longitude; 
String query = latitude + "," + longitude + "(" + label + ")"; 
String encodedQuery = Uri.encode(query); 
String uriString = uriBegin + "?q=" + encodedQuery + "&z=16"; 
Uri uri = Uri.parse(uriString); 
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri); 
startActivity(intent); 

zasługa tutaj: Answer

Wierzę, że problem miał do czynienia z pomieszczeń, w swojej wytwórni. Kodującego łańcuch zapytania wyeliminuje ten problem przez zastąpienie spacje z poprawnych znaków

+3

Czy można przekazać dwa parametry znaczników? – Arun

+0

Po naciśnięciu przycisku Wstecz w aplikacji mapy, pojawia się czarny ekran i odtwarzana jest podstawowa aktywność. Każdy pomysł, jak to naprawić? – Jas

+0

@dymmeh Ta odpowiedź ma teraz 4 lata. Nie mogę teraz uruchomić tego. Wysłałem nowe [pytanie] (http://stackoverflow.com/q/41131414/7292819), ale nie byłem w stanie przyciągnąć dużego zainteresowania, z wyjątkiem tego, że ktoś powiedział, że to nie działa, zaczynając od Map 7.x. Czy wiesz coś o zmianach w Mapach lub z innych powodów, które mogą teraz nie działać? – Gary99

1

Pokaż lokalizację w aplikacji Mapy:

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
String data = String.format("geo:%s,%s", latitude, longitude); 
if (zoomLevel != null) { 
    data = String.format("%s?z=%s", data, zoomLevel); 
} 
intent.setData(Uri.parse(data)); 
startActivity(intent); 
+0

Po naciśnięciu przycisku Wstecz z aplikacji mapy, wyświetlany jest czarny ekran i odtwarzana jest podstawowa aktywność. Każdy pomysł, jak to naprawić? – Jas

+0

Czego można się spodziewać @jas? – Recomer

1
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?daddr=" + location.getLatitude() + "," + location.getLongitude())); 
startActivity(intent); 
Powiązane problemy