使用地图 ID

地图 ID 是您在 Google Cloud Console 中创建的标识符,在与样式相关联并放入您的应用代码中后,可将相应样式应用到您的地图。

创建完毕后,地图 ID 会与一个项目相关联,而且仅限单个平台(Android、iOS、JavaScript)或 Maps Static API 使用。

要在 Cloud Console 中创建或管理任何地图 ID,您必须具有项目所有者或项目编辑者 IAM 角色

创建地图 ID

地图 ID 是表示单个 Google 地图实例的唯一标识符。您可以随时在 Cloud Console 中创建地图 ID 并更新与之关联的样式。

若要创建地图 ID,请执行以下操作:

  1. 在 Cloud Console 中,转到“地图管理”页面
  2. 选择创建新的地图 ID,随后系统会显示创建新的地图 ID 表单。
    创建新的地图 ID

    在表单中执行以下操作:

    • 指定地图名称。
    • 指定地图类型或平台。
    • 对于 JavaScript 地图,请选择光栅或矢量地图类型。
    • 输入地图说明。
    • 选择下一步,系统会显示新的地图 ID。

将地图 ID 与地图样式相关联

以下说明假定您的项目中已有至少一个地图样式。

  1. 在 Cloud Console 中,转到“地图管理”页面
  2. 在此页面上,从地图名称列中选择一个现有的地图 ID。
  3. 在此表单底部,从与此地图 ID 关联的地图样式下拉列表中,选择一个地图样式。
  4. 选择保存
    显示单个地图 ID 的详情页面的屏幕截图,图中包括可让用户将地图样式与此地图 ID 相关联的下拉菜单字段。

为您的应用添加地图 ID

您可以使用 MapView 类(或以编程方式使用 GoogleMapOptions 类)通过 activity 布局文件中的 <fragment> 元素添加地图 ID。

例如,假设您创建了地图 ID,它作为一个名为 map_id 的字符串值存储在 res/values/strings.xml 中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="map_id">YOUR_MAP_ID</string>
</resources>

对于通过 activity 布局文件中的 <fragment> 元素添加的地图,所有应具有自定义样式的地图 fragment 都必须在 map:mapId 属性中指定地图 ID:

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

您还可以使用 MapView 类的 map:mapId 属性来指定地图 ID:

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

如需以编程方式指定地图 ID,请使用 GoogleMapOptions 类将其传递给 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 的所有地图。