使用地圖 ID

地圖 ID 是指與特定地圖樣式或地圖項目相關聯的 ID。 您可以先設定地圖樣式,並將地圖樣式與 Google Cloud 控制台中的地圖 ID 建立關聯。 這樣一來,當您在程式碼中參照該地圖 ID 時,相關的地圖樣式就會顯示在應用程式中。後續的任何樣式更新也會自動顯示在應用程式中,客戶不需要進行任何更新。

建立地圖時,地圖 ID 會與專案建立關聯, 則只限單一平台 (Android、iOS、JavaScript) 或 Maps Static API。

如要在 Cloud 控制台中建立或管理任何地圖 ID,您必須 必須具備專案 「擁有者」或「專案編輯者」IAM 角色。

所需權限

如要在 您在上述 Google Cloud 專案中 擁有者或編輯者 IAM 角色 專案。

建立地圖 ID

「地圖 ID」是不重複的 ID,代表單一 Google 地圖。您可以建立地圖 ID 並更新與地圖 ID 相關聯的樣式 快速設定圖表

如要建立地圖 ID,請按照下列步驟操作:

  1. 前往 Cloud Console 中的「地圖管理」頁面。
  2. 按一下 [建立新地圖 ID],系統即會顯示「建立新地圖 ID」表單。
    建立新地圖 ID

    在表單中執行以下操作:

    • 為地圖命名。
    • 指定地圖類型或平台。
    • 如果是 JavaScript 地圖,請選擇光柵或向量地圖類型。
    • 輸入地圖說明。
    • 選取「下一步」,系統即會顯示新的地圖 ID。

將地圖 ID 與地圖樣式建立關聯

這些操作說明假設您的專案中目前至少有一個地圖樣式。

  1. 前往 Cloud Console 中的「地圖管理」頁面。
  2. 在這個頁面的「地圖名稱」欄中選取現有的地圖 ID。
  3. 在這個表單的底部,從 [與這組地圖 ID 相關聯的地圖樣式] 下拉式選單中選擇地圖樣式。
  4. 選取「儲存」
    這張螢幕截圖顯示單一地圖 ID 的詳細資料頁面,包括可讓使用者將地圖樣式與這個地圖 ID 建立關聯的下拉式欄位。

在應用程式中加入地圖 ID

Android

您可以使用 MapView 類別 (或藉由程式輔助方式使用 GoogleMapOptions 類別),透過活動版面配置檔案中的 <fragment> 元素新增地圖 ID。

舉例來說,假設您建立了名為 map_id 的地圖 ID,並以字串值形式儲存於 res/values/strings.xml 中:

<?xml version="1.0" encodin>g<="ut>f<-8"?
resources
>string name<=">m<ap_id">;YOUR_MAP_ID/string
/resources

如果是透過活動版面配置檔案中的 <fragment> 元素新增的地圖,所有要設定自訂樣式的地圖片段都必須在 map:mapId 屬性中指定地圖 ID:

<fragment xmlns:map="http://schemas.android.com/apk/res-auto"
    class="com.google.android.gms.maps.SupportMapFragment"
    
    map:mapI>d="@string/map_id" /

您也可以使用 MapView 類別的 map:mapId 屬性指定地圖 ID:

<com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    ....
    map:mapId="@s>tring/map_id" /

如要透過程式輔助方式指定地圖 ID,請使用 GoogleMapOptions 類別將 ID 傳送至 MapFragment 例項:

Java

 MapFragment mapFragment = MapFragment.newInstance(
     new GoogleMapOptions()
         .mapId(getResources().getString(R.string.map_id)));

Kotlin

 val mapFragment = MapFragment.newInstance(
     GoogleMapOptions()
         .mapId(resources.getString(R.string.map_id))
 )

在 Android Studio 中,按照平常的操作方式建構及執行應用程式。在第一個步驟中設定的自訂樣式會套用至所有具備 ID 的地圖。

iOS

如要使用地圖 ID 將地圖例項化,請執行以下操作:

  1. 透過 Cloud 控制台建立包含地圖 ID 字串的 GMSMapID
  2. 建立 GMSMapView,指定您剛才建立的地圖 ID。

Swift

let camera = GMSCameraPosition(latitude: 47.0169, longitude: -122.336471, zoom: 12)
let mapID = GMSMapID(identifier: &<quot;YOUR M>AP ID")
let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: camera)
self.view = mapView

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.0169
                                                        longitude:-122.336471
                                                             zoom:12];
GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@&<quot;YOUR M>AP ID"];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:camera];
self.view = mapView;

如果您使用的是自己的地圖 ID,則可設定地圖 ID 隨時可以在 Cloud 控制台中使用新樣式 地圖檢視就會自動反映樣式 大約 6 小時內的使用者

如果您想立即查看變更,可以關閉應用程式,然後從最近使用的應用程式清單中強制結束應用程式,再重新開啟應用程式。這樣更新後的地圖就會顯示。

JavaScript

如要在應用程式程式碼中建立地圖 ID,請按照下列步驟操作:

  1. 如果您目前使用嵌入式 JSON 程式碼自訂地圖,請從 MapOptions 物件中移除 styles 屬性;否則請略過這個步驟。

  2. 使用 mapId 屬性將地圖 ID 新增至地圖。例如:

map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8,
mapId: 'MAP_ID'
});

靜態地圖介面集

如要在使用任一網路服務 API 的新地圖或現有地圖中新增地圖 ID,請附加 map_id 網址參數,並將其設為地圖 ID。本例示範如何使用 Maps Static API,將地圖 ID 加入地圖。

<img src="https://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+Yo&rk,NYzo&om=13size=60&0x300maptype=ro&admapmarkers=color:blue%7Clabel:S%7C40.702147,-74.0&15794markers=color:green%7Clabel:G%7C40.711614,-74.0&12318markers=color:red%7Clabel:C%7C40.718217,-73.9&98284key=YOUR_AP&I_KEYmap_id=YOUR_M&AP_IDsignature=YOUR_SIGNATU>RE" /

地圖以美國紐約州紐約市布魯克林大橋為中心,並在右下角顯示地圖控制項。地圖會在道路、水域和陸地上顯示自訂樣式。

如果您在新增地圖 ID 之前,在 Maps Static 網址中設定了數位簽章, 您必須建立 並加入新的數位簽章。 產生新的網址簽署密鑰時,請務必從網址中移除先前的數位簽章。

使用地圖 ID 時可用的功能

雲端式地圖樣式設定:使用 Google Cloud 控制台設定地圖樣式,以及自訂和管理地圖。
適用於所有平台 (Android、JavaScript、iOS 和 Maps Static API)

向量地圖:在載入時繪製向量圖塊的地圖 在用戶端透過 WebGL 執行
適用於 JavaScript