开始使用

请选择平台: Android iOS JavaScript

请按照以下步骤设置数据集的数据驱动型样式。

获取 API 密钥并启用 API

如要使用数据集的数据驱动型样式,您需要拥有已关联结算账号的 Cloud 项目,并启用 Maps JavaScript API 和 Maps Datasets API。如需了解详情,请参阅设置您的 Google Cloud 项目

获取 API 密钥

启用 Maps JavaScript API

启用 Maps Datasets API

创建地图 ID

如要创建新的地图 ID,请按照云端地图样式设置一文中的步骤操作。将地图类型设置为 JavaScript,然后选择矢量选项。

将地图实例化时,请使用 mapId 属性提供地图 ID。地图 ID 必须与要显示的数据集所关联的地图样式对应。

const position = new google.maps.LatLng(40.75, -74.05);
const map = new google.maps.Map(document.getElementById('map'), {
  zoom: 11,
  center: position,
  mapId: 'YOUR_MAP_ID',
});

创建矢量地图 ID

创建新的地图样式

如要创建新的地图样式,请按照管理地图样式一文中的说明创建样式,并将该样式与您刚刚创建的地图 ID 相关联

更新地图初始化代码

如需对数据集使用数据驱动型样式,请先将内嵌引导加载程序添加到应用代码中,以加载 Maps JavaScript API,如此处所示(在 API script 代码中使用 v=beta):

<script>
  (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
    key: "YOUR_API_KEY",
    v: "weekly",
    // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.).
    // Add other bootstrap parameters as needed, using camel case.
  });
</script>

检查地图功能(可选)

数据集的数据驱动型样式需要地图 ID。如果缺少地图 ID 或传递的地图 ID 无效,则无法加载数据地图项。为便于排查问题,您可以添加一个 mapcapabilities_changed 监听器来订阅地图功能更改。此操作将提供指示,让您了解自己是否满足以下条件:

  • 使用的地图 ID 有效。
  • 地图 ID 已与矢量地图相关联。

使用地图功能是可选操作,建议仅将其用于测试、问题排查或运行时回退。

// Optional: subscribe to map capability changes.
map.addListener('mapcapabilities_changed', () => {
  const mapCapabilities = map.getMapCapabilities();

  if (!mapCapabilities.isDataDrivenStylingAvailable) {
    // Data-driven styling is *not* available, add a fallback.
    // Existing feature layers are also unavailable.
  }
});

后续步骤