如要設定界線資料導向樣式,請按照下列步驟操作。
啟用新版地圖轉譯器
自 Maps SDK for Android 18.0.0 版起,您可以使用升級版地圖轉譯器。這個轉譯器為 Maps SDK for Android 帶來多項改善,包括支援雲端式地圖樣式設定。
隨著 Maps SDK for Android 18.2.0 版推出,Google 將預設轉譯器從舊版改為升級版地圖轉譯器。也就是說,當您建立新應用程式或重建現有應用程式時,現在預設使用的是升級版地圖轉譯器。
建立地圖 ID
如要建立新的地圖 ID,請按照「建立地圖 ID」一文中的步驟操作。請務必將地圖類型設定為 Android。
建立新地圖樣式
如要建立新地圖樣式,請按照「管理地圖樣式」一文中的說明操作,並將樣式與剛建立的地圖 ID 建立關聯。
在新地圖樣式中選取地圖項目圖層
在 Google API 控制台中,您可以為新地圖樣式選取要顯示哪些地圖項目圖層。地圖項目圖層可決定要在地圖上顯示的界線類型 (例如縣市、州/省等等)。
- 在 Google API 控制台中,前往「地圖樣式」頁面。
- 畫面出現提示時,請選取專案。
- 選取地圖樣式。
- 按一下「地圖項目圖層」下拉式選單,即可新增或移除圖層。
- 按一下「儲存」,即可儲存您所做的變更並套用到地圖。
更新地圖初始化程式碼
這個步驟需要使用您剛建立的地圖 ID,請前往「地圖管理」頁面查看。
如要在初始化程式碼中加入地圖 ID,請參閱「在應用程式中加入地圖 ID」一文。
取得地圖地圖項目圖層的存取權
您可以使用 FeatureLayer
物件來代表地圖的每個地圖項目圖層,例如郵遞區號或地點地圖項目圖層。如要存取地圖項目圖層物件,請在地圖初始化時呼叫 GoogleMap.getFeatureLayer()
:
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()) ... }
將 FeatureLayerOptions
物件傳遞至 getFeatureLayer()
,以指定地圖層的類型。在此範例中,您想要存取 POSTAL_CODE
層。為每個要設定樣式的圖層建立不同的 FeatureLayer
物件。
取得 FeatureLayer
物件後,您就可以為該地圖項目中的邊界多邊形套用樣式。
檢查地圖功能 (必要)
界線資料導向樣式需要地圖 ID。如果缺少地圖 ID 或傳遞無效的地圖 ID,就無法載入界線資料導向樣式。如要解決這個問題,您可以使用 MapCapabilities
檢查是否支援界線資料導向樣式。
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());