開始使用

選取平台: Android iOS JavaScript

如要使用界線資料導向樣式,您必須建立地圖 ID。接下來,您 必須建立新的地圖樣式,選取需要的界線地圖項目圖層, 將樣式與地圖 ID 建立關聯。

建立地圖 ID

mapID 是一組不重複識別碼,代表單一 Google 地圖例項。您可以建立地圖 ID 並更新樣式 與地圖 ID 建立關聯。

Google Cloud 的螢幕截圖
主控台

建立新地圖樣式

如要建立新地圖樣式,請按照「管理地圖」一文的說明操作 建立樣式 完成將樣式與新建的地圖 ID 建立關聯後。

選取地圖項目圖層

在 Google Cloud 控制台中,您可以選取要顯示哪些地圖項目圖層,這個 決定要在地圖上顯示的界線類型 (例如縣市、 州別等)。

管理地圖項目圖層

  1. 在 Google Cloud 控制台中,前往「地圖樣式」 頁面

  2. 畫面出現提示時,請選取專案。

  3. 選取地圖樣式。

  4. 按一下「地圖項目圖層」下拉式選單,即可新增或移除圖層。

  5. 按一下「儲存」,即可儲存您所做的變更並套用到地圖。

顯示
。

更新地圖初始化程式碼

這個步驟需要地圖 ID 與具有一或多個地圖項目的樣式建立關聯 個圖層已啟用如要檢查地圖 ID 設定是否正確: Cloud 控制台,請查看「地圖」下方的設定方式 管理

Swift

// A map ID using a style with one or more feature layers enabled

let mapID = GMSMapID(identifier: "YOUR_MAP_ID")
let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7))

Objective-C

// A map ID using a style with one or more feature layers enabled

GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]];

在地圖中加入地圖項目圖層

如要取得地圖上地圖項目圖層的參照,請呼叫 mapView.featureLayer(of:) (在地圖初始化時):

Swift

let layer = mapView.featureLayer(of: .locality)

Objective-C

GMSFeatureLayer *layer = [mapView featureLayerOfFeatureType:GMSFeatureTypeLocality];

檢查地圖功能

如要使用界線資料導向樣式,就必須在 Google Cloud 控制台,並與地圖 ID 建立關聯。地圖 ID 必須遵守 變更,您可以在此呼叫 mapView.mapCapabilities GMSMapView 可驗證特定功能 (例如 資料導向樣式)。

您也可以訂閱 GMSViewDelegate。這個範例說明如何使用 檢查資料導向樣式的要求。

Swift

class SampleViewController: UIViewController {

  private lazy var mapView: GMSMapView = GMSMapView(frame: .zero, mapID: GMSMapID(identifier: "YOUR_MAP_ID"), camera: GMSCameraPosition(latitude: 40, longitude: -80, zoom: 7))

  override func loadView() {
    self.view = mapView
    mapView.delegate = self
  }
}

extension SampleViewController: GMSMapViewDelegate {
  func mapView(_ mapView: GMSMapView, didChange mapCapabilities: GMSMapCapabilityFlags) {
    if (!mapCapabilities.contains(.dataDrivenStyling)) {
      // Data-driven styling is *not* available, add a fallback.
      // Existing feature layers are also unavailable.
    }
  }
}

Objective-C

@interface SampleViewController: UIViewController <GMSMapViewDelegate>
@end

@implementation SampleViewController
- (void)loadView {
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:[GMSMapID mapIDWithIdentifier:@"MAP_ID"] camera:[GMSCameraPosition cameraWithLatitude:40 longitude:-80 zoom:7]];
  mapView.delegete = self;
  self.view = mapView;
}

- (void)mapView:(GMSMapView *)mapView didChangeMapCapabilities:(GMSMapCapabilityFlags)mapCapabilities {
  if (!(mapCapabilities & GMSMapCapabilityFlagsDataDrivenStyling)) {
    // Data-driven styling is *not* available, add a fallback.
    // Existing feature layers are also unavailable.
  }
}
@end