Aby skonfigurować styl oparty na danych dla granic, wykonaj te czynności.
Włączanie nowego mechanizmu renderowania map
Ulepszony mechanizm renderowania map jest dostępny od wersji 18.0.0 pakietu Maps SDK na Androida. Ten mechanizm renderowania wprowadza do pakietu Maps SDK na Androida wiele ulepszeń, w tym obsługę definiowania stylów map w Google Cloud.
Wraz z wersją 18.2.0 pakietu Maps SDK na Androida zmieniliśmy domyślny mechanizm renderowania ze starszego na ulepszony. Ta zmiana oznacza, że ulepszony mechanizm renderowania mapy jest teraz domyślnie używany w aplikacji, gdy tworzysz nową aplikację lub przebudowujesz istniejącą.
Tworzenie identyfikatora mapy
Aby utworzyć nowy identyfikator mapy, wykonaj czynności opisane w artykule Tworzenie identyfikatora mapy. Upewnij się, że typ mapy jest ustawiony na Android.
Tworzenie nowego stylu mapy
Aby utworzyć nowy styl mapy, postępuj zgodnie z instrukcjami podanymi w artykule Zarządzanie stylami map, a następnie powiąż styl z utworzonym właśnie identyfikatorem mapy.
Wybieranie warstw mapy w nowym stylu mapy
W konsoli interfejsów API Google możesz wybrać warstwy mapy, które mają być wyświetlane w nowym stylu mapy. Warstwa mapy określa, jakie rodzaje granic pojawiają się na mapie (np. miejscowości, stany itp.).
- W Konsoli interfejsów API Google otwórz stronę Style mapy.
- Jeśli pojawi się taka prośba, wybierz projekt.
- Wybierz styl mapy.
- Aby dodać lub usunąć warstwy, kliknij menu Warstwy mapy.
- Kliknij Zapisz, aby zapisać zmiany i udostępnić je na mapach.
Aktualizowanie kodu inicjowania mapy
W tym kroku wymagany jest utworzony przed chwilą identyfikator mapy. Znajdziesz go na stronie Zarządzanie mapami.
Aby dowiedzieć się, jak dodać identyfikator mapy do kodu inicjującego, przeczytaj artykuł Dodawanie identyfikatora mapy do aplikacji.
Uzyskiwanie dostępu do warstwy mapy
Do reprezentowania każdej warstwy mapy, np. warstwy mapy kodu pocztowego lub miejscowości, używasz obiektu FeatureLayer. Aby uzyskać dostęp do obiektu warstwy mapy, wywołaj funkcję GoogleMap.getFeatureLayer() podczas inicjowania mapy:
Java
private FeatureLayer postalCodeLayer;
@Override public void onMapReady(GoogleMap map) { // Get the POSTAL_CODE feature layer. postalCodeLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.POSTAL_CODE) .build()); ... }
Kotlin
private var postalCodeLayer: FeatureLayer? = null
override fun onMapReady(googleMap: GoogleMap) { // Get the POSTAL_CODE feature layer. postalCodeLayer = googleMap.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.POSTAL_CODE) .build()) ... }
Przekaż obiekt FeatureLayerOptions do getFeatureLayer(), aby określić typ warstwy mapy. W tym przykładzie chcesz uzyskać dostęp do warstwy POSTAL_CODE. Utwórz inny obiekt FeatureLayer dla każdej warstwy, którą chcesz stylizować.
Gdy masz obiekt FeatureLayer, możesz zastosować styl do wielokątów granicznych w tej funkcji.
Sprawdź możliwości mapy (wymagane)
Styl oparty na danych dla granic wymaga identyfikatora mapy. Jeśli brakuje identyfikatora mapy lub przekazany identyfikator jest nieprawidłowy, nie można wczytać stylu opartego na danych dla granic. W ramach rozwiązywania problemów możesz użyć funkcji MapCapabilities, aby sprawdzić, czy styl oparty na danych dla granic jest obsługiwany.
Kotlin
val capabilities: MapCapabilities = googleMap.getMapCapabilities() System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable())
Java
MapCapabilities capabilities = googleMap.getMapCapabilities(); System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable());