Wykorzystanie Map Google w naszej aplikacji | android4devs


Sierpień 9, 2011
Biblioteki zewnętrzne Tutoriale

Aby w naszej aplikacji móc korzystać z dobrodziejstw Map Google wyświetlanych za pomocą widoku MapView powinniśmy wykonać szereg czynności. Jak się bowiem okazuje, mapy są czymś w rodzaju zewnętrznej biblioteki, której użycie należy poprzedzić kilkoma czynnościami, które nam na to pozwolą. W tym artykule przejdziemy krok po kroku po każdym z wymagań, by ostatecznie stworzyć aplikację wyświetlającą nam podstawowy widok mapy.

Zaczniemy od doinstalowania niezbędnych bibliotek, które posiadają potrzebne narzędzia. Mowa tu o Google APIs, które zapewne większość z nas zainstalowała przy okazji tworzenia środowiska. Jeśli jednak ktoś tego nie zrobił, oto jak tego dokonać:

I to wszystko. Możemy teraz przejść do stworzenia naszego pierwszego projektu wykorzystującego Google Maps.

Podczas tworzenia nowego projektu w kreatorze, w miejscu gdzie wybieramy wersję SDK (Build Target) należy wskazać Google APIs (oczywiście w wersji, która nas interesuje).

Resztę danych ustawiamy dokładnie tak samo jak dla zwykłego projektu.

W manifeście naszej aplikacji powinniśmy zaznaczyć, że korzystamy z biblioteki Google Maps. Robimy to, dodając poniższą linijkę wewnątrz element <application>:

Ponadto można od razu dodać pozwolenie na korzystanie z sieci, skąd mapy będą pobierać swoje dane.

Pozwolenie dodajemy oczywiście już poza węzłem <application>.

Do wyświetlania Mapy Google wykorzystywany jest element MapView. Oto przykładowa konfiguracja (należy pamiętać o tym, by podać pełną nazwę klasy MapView)

Atrybut apiKey to unikalny klucz do API Google Maps, którego wygenerowaniem zajmiemy się za chwilę.

Aby móc skorzystać z widoku mapy w naszej Aktywności, powinna ona dziedziczyć po klasie MapActivity. Jest to klasa abstrakcyjna wymagająca implementacji metody isRouteDisplayed(), która powinna zwracać wartość true wtedy, gdy na nasza mapa ma służyć do informacji drogowych (w przeciwnym wypadku powinna zwracać false).

Wykorzystane metody wewnątrz setupMap() nadadzą naszej mapie przynajmniej podstawowej funkcjonalności.

Wróćmy teraz do klucza Google Maps API. O tym, po co w ogóle wymagany jest taki zabieg możemy przeczytać pod tym adresem.

Aby zarejestrować oraz wygenerować nasz własny klucz należy znaleźć „odcisk palca” naszego SDK. Najprostsza droga jest taka:

W miejsce ścieżki wklejamy to co skopiowaliśmy w pierwszym punkcie.

którą następnie należy wkleić na tej stronie.

I to wszystko. Możemy tworzyć aplikacje korzystające z Google Maps i elementu MapView.

Aby wykorzystać Google Maps w naszym urządzeniu wirtualnym, podczas jego tworzenia również powinniśmy wskazać Google APIs (właściwość Target).

, , ,

 

[…] Wykorzystanie Map Google w naszej aplikacji […]

Mam taki problem, że nie chce mi się wyświetlać traffic w Polsce. Nie wiem, co robię źle, bo na stronie i oprogramowanie od google pokazuje korki. Dziwnie działa też street, gdyż pojawiają się takie plamy kwadratowe z niewczytaną mapą i krzyżykiem w środku, systematycznie rozmieszczone po mapie. satelita działa poprawnie. Sprawdzałem na emulatorach odd 2.2 do 2.3.5 i na telefonie z 2.2. Proszę o jakieś sugestie, co moze być źle.

Mala rada do poprawik:
Keytool nie generuje już MD5 standardowo. Trzeba dodać parametr przed -list -v i wygeneruje m.in poprawny fingerprint (SHA1 nie przyjmuje w dodawaniu mapy)

Zaloguj się lub skorzystaj z profilu:

Możesz również zostawić komentarz bez rejestracji, korzystając z poniższego formularza:

Musisz być zalogowany aby móc pisać komentarze.

Wykorzystanie Map Google w naszej aplikacji

Powiązane linki

Biblioteki z Google Maps

Tworzenie i konfiguracja projektu z Google Maps

Generowanie klucza API Google Maps

AVD i Google Maps

AndroidManifest.xml

UI

Kod źródłowy Aktywności

Komentarze (3)

Prześlij komentarz

  1. Otwieramy Android SDK and AVD Manager (np. w Eclipse Window -> Android SDK and AVD Manager)
  2. Przechodzimy do działu Available packages, gdzie rozwijamy Third party Add-ons -> Google Inc.
  3. Spośród dostępnych paczek wybieramy wersję API, która interesuje nas najbardziej (gdyby ktoś miał wątpliwości odnośnie wersji, odsyłam pod ten adres)
  4. Jeżeli na liście brakuje jakichś wersji API, najpewniej mamy ją już zainstalowaną (co sprawdzimy w dziale Installed packages).
  5. Jeżeli wybraliśmy API, które nas interesuje, instalujemy je.
  1. W Eclipse wchodzimy do Window -> Preferences -> Android -> Build. Tam znajdujemy wartość Default debug keystore. Kopiujemy całą ścieżkę.
  2. W konsoli wpisujemy
    keytool -list -keystore <ścieżka>
  3. Jeżeli zostaniemy poproszeni o hasło, a takowego nie ustawialiśmy, po prostu klikamy Enter.
  4. W odpowiedzi powinniśmy dostać m.in. linijkę podobną do poniższej:
    Certificate fingerprint (MD5): xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
  5. Po zaakceptowaniu zasad i kliknięciu przycisku Generate API Key powinniśmy w odpowiedzi dostać nasz własny klucz do API Google Maps, który następnie należy wkleić do elementu MapView, w pliku XML z layoutem naszej aktywności.
<uses-library android:name="com.google.android.maps" />
<uses-permission android:name="android.permission.INTERNET" />
<com.google.android.maps.MapView
	android:id="@+id/mapView"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:enabled="true"
	android:clickable="true"
	android:apiKey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />
public class MainActivity extends MapActivity {
	private MapView mapView;

	@Override
	protected boolean isRouteDisplayed() {
		return false;
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		mapView = (MapView) findViewById(R.id.mapView);
		setupMap();
	}

	private void setupMap() {
		mapView.setBuiltInZoomControls(true);
		mapView.setTraffic(true);
		mapView.setSatellite(true);
	}
}


3
komentarze

Przewijanie do góry