Maps SDK na Android Utility Library

Wybierz platformę: Android iOS

Szukasz funkcji zaawansowanych, które możesz dodać do swoich map? Biblioteka narzędziowa pakietu Maps SDK na Androida to biblioteka klas typu open source, które są przydatne w różnych aplikacjach. Repozytorium GitHub zawiera klasy narzędziowe i aplikację demonstracyjną, która ilustruje użycie każdej klasy.

W tym filmie Chris Broadfoot omawia bibliotekę narzędziową, skupiając się na dekodowaniu linii łamanych, geometrii sferycznej i ikonach dymków.

Szybka konfiguracja

Aby zainstalować bibliotekę narzędzi pakietu Maps SDK na Androida, postępuj zgodnie z instrukcjami konfiguracji.

Narzędzia

Mapa z warstwą GeoJSON

Importowanie pliku GeoJSON na mapę

Możesz przechowywać obiekty w formacie GeoJSON i używać tego narzędzia do renderowania ich jako warstwy na mapie. Wywołaj addLayer(), aby dodać dane GeoJSON do mapy. Możesz też dodawać poszczególne funkcje, wywołując metodę addFeature() i przekazując obiekt GeoJsonFeature.

Szczegółowe informacje znajdziesz w dokumentacji dotyczącej narzędzia GeoJSON Map Google na Androida.

Mapa z warstwą KML

Importowanie pliku KML do mapy

Za pomocą tego narzędzia możesz przekonwertować obiekty KML na kształty geograficzne i wyrenderować je jako warstwę na mapie. Aby dodać warstwę do mapy, wywołaj funkcję addLayerToMap(). Dostęp do właściwości obiektu KML możesz uzyskać, wywołując metodę getProperties() na dowolnym obiekcie Placemark, GroundOverlay, Document lub Folder.

Szczegółowe informacje znajdziesz w dokumentacji narzędzia KML Map Google na Androida.

Mapa z mapą termiczną

Dodawanie map termicznych do mapy

Mapy termiczne pomagają użytkownikom zrozumieć rozkład i względną intensywność punktów danych na mapie. Zamiast umieszczać znacznik w każdej lokalizacji, mapy termiczne używają kolorów i kształtów do przedstawiania rozkładu danych. Utwórz obiekt HeatmapTileProvider, przekazując mu kolekcję obiektów LatLng reprezentujących ciekawe miejsca na mapie. Następnie utwórz nowy obiekt TileOverlay, przekazując mu dostawcę kafelków mapy termicznej, i dodaj nakładkę kafelkową do mapy.

Szczegółowe informacje znajdziesz w dokumentacji dotyczącej narzędzia do tworzenia map termicznych w Mapach Google na Androida.

Mapa z ikonami dymków

Dostosowywanie znaczników za pomocą ikon dymków

Dodaj IconGenerator, aby wyświetlać fragmenty informacji na znacznikach. To narzędzie umożliwia nadanie ikonom znaczników wyglądu przypominającego okna informacyjne, ponieważ sam znacznik może zawierać tekst i inne treści. Zaletą jest to, że możesz mieć otwartych kilka znaczników jednocześnie, podczas gdy okno informacyjne może być otwarte tylko jedno. Możesz też stylizować znaczniki, zmieniać ich orientację lub orientację treści oraz zmieniać obraz tła znacznika lub obraz NinePatch.

Mapa ze znacznikiem

Animowanie znaczników

Możesz animować znacznik, aby płynnie przemieszczał się z bieżącej pozycji do nowej lokalizacji. Tę funkcję zapewnia klasa AnimationUtil. Przykład użycia znajdziesz w AnimationUtilDemoActivity w repozytorium GitHub biblioteki narzędzi.

Mapa ze znacznikami w klastrach

Zarządzanie klastrami znaczników

ClusterManager pomaga zarządzać wieloma znacznikami na różnych poziomach powiększenia. Oznacza to, że możesz umieścić na mapie dużą liczbę znaczników bez utraty jej czytelności. Gdy użytkownik wyświetla mapę przy dużym poziomie powiększenia, widoczne są na niej poszczególne znaczniki. Gdy użytkownik zmniejszy poziom powiększenia, znaczniki zostaną zebrane w klastry, aby ułatwić przeglądanie mapy.

Szczegółowe informacje znajdziesz w dokumentacji dotyczącej rozwiązania do łączenia znaczników w klastry w Mapach Google na Androida.

Mapa z wieloma warstwami

Dodawanie wielu warstw do tej samej mapy

Na tej samej mapie możesz wyświetlać obiekty z GeoJSON, KML i klastrów, a także własne znaczniki, linie łamane i wielokąty. Możesz też sprawić, że te warstwy będą interaktywne, dodając do każdej z nich detektor kliknięć. Aby to zrobić, utwórz instancje klas MarkerManager, GroundOverlayManager, PolygonManager i PolylineManager, a następnie przekaż je do konstruktorów klas GeoJsonLayer, KmlLayer i ClusterManager podczas ich konfigurowania. Możesz wtedy używać tych klas Manager bezpośrednio, aby dodawać do mapy własne znaczniki, linie łamane i wielokąty.

Szczegółowe informacje znajdziesz w dokumentacji dotyczącej wersji demonstracyjnej wielowarstwowej mapy Google na Androida.

Mapa z zakodowaną linią łamaną

Kodowanie i dekodowanie linii łamanych

Klasa PolyUtil konwertuje zakodowane linie łamane i wielokąty na współrzędne szerokości i długości geograficznej oraz konwertuje współrzędne na zakodowane linie łamane i wielokąty.

W Mapach Google współrzędne geograficzne, które definiują linię łamaną lub wielokąt, są przechowywane jako zakodowany ciąg znaków. Zapoznaj się ze szczegółowym wyjaśnieniem kodowania linii łamanej. Ten zakodowany ciąg znaków możesz otrzymać w odpowiedzi z interfejsu API Google, np. Directions API (starsza wersja).

Możesz użyć PolyUtil w bibliotece narzędziowej pakietu Maps SDK na Androida, aby zakodować sekwencję współrzędnych szerokości i długości geograficznej („LatLngs”) w zakodowany ciąg znaków ścieżki oraz zdekodować zakodowany ciąg znaków ścieżki w sekwencję LatLngs. Zapewni to współdziałanie z usługami internetowymi interfejsów API Map Google.

obliczoną odległość między 2 punktami na mapie,

Obliczanie odległości, obszarów i nagłówków za pomocą geometrii sferycznej

Korzystając z narzędzi geometrii sferycznej w SphericalUtil, możesz obliczać odległości, obszary i nagłówki na podstawie szerokości i długości geograficznej. Oto niektóre metody dostępne w tym narzędziu:

  • computeDistanceBetween() – zwraca odległość w metrach między 2 współrzędnymi szerokości i długości geograficznej.
  • computeHeading() – zwraca azymut w stopniach między 2 współrzędnymi szerokości i długości geograficznej.
  • computeArea() – zwraca obszar zamkniętej ścieżki na Ziemi w metrach kwadratowych.
  • interpolate() – zwraca współrzędne szerokości i długości geograficznej punktu, który znajduje się w określonej odległości między 2 podanymi punktami. Możesz użyć tej metody, aby na przykład animować znacznik między 2 punktami.

Pełną listę metod w narzędziu znajdziesz w dokumentacji.

Sprawdzanie, czy lokalizacja jest obsługiwana w Street View

Sprawdzanie, czy lokalizacja jest obsługiwana w Street View

Klasa StreetViewUtil udostępnia funkcję sprawdzania, czy lokalizacja jest obsługiwana w Street View. Możesz uniknąć błędów podczas dodawania panoramy Street View do aplikacji na Androida, wywołując to narzędzie do metadanych i dodając panoramę Street View tylko wtedy, gdy odpowiedź to OK.

Szczegółowe informacje znajdziesz w dokumentacji narzędzia do metadanych Street View na GitHubie.