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
- Otwieramy Android SDK and AVD Manager (np. w Eclipse Window -> Android SDK and AVD Manager)
- Przechodzimy do działu Available packages, gdzie rozwijamy Third party Add-ons -> Google Inc.
- 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)
- Jeżeli na liście brakuje jakichś wersji API, najpewniej mamy ją już zainstalowaną (co sprawdzimy w dziale Installed packages).
- Jeżeli wybraliśmy API, które nas interesuje, instalujemy je.
- W Eclipse wchodzimy do Window -> Preferences -> Android -> Build. Tam znajdujemy wartość Default debug keystore. Kopiujemy całą ścieżkę.
- W konsoli wpisujemy
keytool -list -keystore <ścieżka>
- Jeżeli zostaniemy poproszeni o hasło, a takowego nie ustawialiśmy, po prostu klikamy Enter.
- 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
- 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);
}
}
15 sierpnia 2011 o 14:16
13 kwietnia 2012 o 00:10