创建和管理数据集

请选择平台: Android iOS JavaScript

您可以利用数据集将地理空间数据从本地文件或 Google Cloud Storage 上传到 Google Maps Platform。然后,在 Cloud 控制台中将数据集与一个或多个地图样式相关联。将数据集与地图样式相关联后,便可使用数据驱动型样式 API 动态地设置地图应用的样式。

您还可以使用 REST API 将地理空间数据上传至数据集。如需了解详情,请参阅 Maps Datasets API

配置角色

如需在 Google Cloud 项目中创建和管理数据集,您必须具有项目的 Owner 或 Editor IAM 角色

或者,您可以将以下 IAM 角色分配给用于管理数据集的用户账号或服务账号:

  • Maps Platform Datasets Admin 角色可向用户账号或服务账号授予对项目中数据集的读写权限。具有此角色的用户可对数据集执行所有操作。
  • Maps Platform Datasets Viewer 角色可授予对项目中数据集的只读权限。具有此角色的用户可对数据集执行列出、获取或下载操作。

如需了解详情,请参阅使用 Google Cloud 控制台授予 IAM 角色

数据集的数据源

创建数据集后,您可以将数据从 Google Cloud Storage 或本地文件上传至数据集。
  • 从 Cloud Storage 上传数据时,请指定 Cloud Storage 中数据所属资源的文件路径。路径格式为:gs://GCS_BUCKET/FILE

    发出请求的用户需要具有 Storage Object Viewer 角色或包含 storage.objects.get 权限的任何其他角色。如需详细了解如何管理对 Cloud Storage 的访问权限,请参阅访问权限控制概览

  • 从本地文件上传数据时,请指定包含要上传的数据的 GeoJSON、KML 或 CSV 文件的路径。

前提条件

创建数据集时:

  • 显示名称在 Google Cloud 项目中必须是唯一的。
  • 显示名称长度必须少于 64 个字节(由于这些字符采用 UTF-8 编码表示,因此在某些语言中,每个字符可以由多个字节表示)。
  • 说明文字长度必须少于 1,000 个字节。

上传数据时:

  • 支持的文件类型为 CSV、GeoJSON 和 KML。
  • 支持的文件大小上限为 500 MB。
  • 属性列名称不能以字符串“?_”开头。
  • 不支持三维几何图形。此类图形在 WKT 格式中包含“Z”后缀,在 GeoJSON 格式中包含海拔高度坐标。

数据准备最佳做法

如果您的源数据复杂或较大(例如密集的点、长线条或多边形;通常,源文件大小超过 50 MB 就属于此类别),请考虑在上传前简化数据,以便在可视化地图中实现最佳性能。

以下是一些数据准备方面的最佳实践:

  1. 尽量减少地图项属性。仅保留用于设置地图样式所需的地图项属性,例如“id”和“category”。您可以使用唯一标识符键对数据驱动型样式进行联接,将其他属性联接到客户端应用中的地图项。例如,请参阅使用数据驱动型样式实时查看数据
  2. 尽可能为地图项对象使用简单的数据类型(例如整数),以最大限度地缩减功能块大小并提高地图性能。
  3. 在上传文件之前,请简化复杂的几何图形。您可以在自己选择的地理空间工具(例如开源 Mapshaper.org 实用程序)中执行此操作,也可以在 BigQuery 中对复杂的多边形几何图形使用 ST_Simplify 执行此操作。
  4. 在上传文件之前,请对非常密集的点进行重合。您可以在自己选择的地理空间工具(例如开源 turf.js 聚类函数)中执行此操作,也可以在 BigQuery 中对稠密点几何图形使用 ST_CLUSTERDBSCAN 执行此操作。

如需有关数据集最佳实践的更多指导,请参阅使用数据集和 BigQuery 可视化数据

与 GeoJSON 相关的要求

Maps SDK for iOS 支持现行 GeoJSON 规范。Maps SDK for iOS 还支持包含以下任何对象类型的 GeoJSON 文件:

  • 几何图形对象。几何图形对象是一种空间形状,由一组点、线和具有可选孔的多边形所组成。
  • 地图项对象。地图项对象包含几何图形以及其他“名称-值”对,其含义因应用而异。
  • 地图项集合。地图项集合是一组地图项对象。

Maps SDK for iOS 不支持所含数据采用 WGS84 以外的坐标参考系统 (CRS) 的 GeoJSON 文件。

如需详细了解 GeoJSON,请参阅符合 RFC 7946 标准

与 KML 相关的要求

Maps SDK for iOS 具有以下要求:

  • 所有网址都必须是文件本身的本地(或相对)网址。
  • 支持点、线和多边形几何图形。
  • 所有数据属性均被视为字符串。
不支持以下 KML 地图项:
  • 在文件以外定义的图标或 <styleUrl>
  • 网络链接,例如 <NetworkLink>
  • 地面叠加层,例如 <GroundOverlay>
  • 三维几何图形或与海拔高度相关的任何标记,例如 <altitudeMode>
  • 摄像头规范,例如 <LookAt>
  • 在 KML 文件内定义的样式。

与 CSV 相关的要求

下方列出了 CSV 文件支持的列名称(按优先级顺序):

  • latitudelongitude
  • latlong
  • xy
  • wkt(已知文本)
  • addresscitystatezip
  • address
  • 包含所有地址信息的单个列,例如 1600 Amphitheatre Parkway Mountain View, CA 94043

例如,您的文件包含名为 xywkt 的列。根据上面列表中受支持的列名称的顺序,xy 的优先级较高,因此,系统将使用 xy 列中的值,并忽略 wkt 列。

此外:

  • 每个列名称都必须属于单个列。也就是说,不能有同时包含 x 和 y 坐标数据的名为 xy 的列。x 坐标和 y 坐标的数据必须位于不同的列中。
  • 列名称不区分大小写。
  • 列名称的顺序无关紧要。例如,如果您的 CSV 文件包含 lat 列和 long 列,这两列可以按任意顺序显示。

处理数据上传错误

将数据上传到数据集时,您可能会遇到本部分所述的某种常见错误。

GeoJSON 错误

常见的 GeoJSON 错误包括:

  • 缺少 type 字段,或者 type 不是字符串。上传的 GeoJSON 数据文件必须在每个地图项对象和几何图形对象的定义中包含名为 type 的字符串字段。

KML 错误

常见的 KML 错误包括:

  • 数据文件不得包含上面列出的不受支持的 KML 地图项,否则数据导入操作可能会失败。

CSV 错误

常见的 CSV 错误包括:

  • 某些行缺少几何图形列的值。CSV 文件中的所有行都必须包含几何图形列的非空值。几何图形列包括:
    • latitudelongitude
    • latlong
    • xy
    • wkt
    • addresscitystatezip
    • address
    • 包含所有地址信息的单个列,例如 1600 Amphitheatre Parkway Mountain View, CA 94043
  • 如果 xy 是几何图形列,请确保相应单位分别为经度和纬度。某些公共数据集会在标头 xy 下使用不同的坐标系。如果用错单位,或许能成功导入数据集,但渲染的数据可能会在非预期的位置显示数据集点。

创建数据集

如需创建数据集,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往数据集页面
  2. 点击创建数据集
  3. 输入数据集名称。此名称在所有数据集中必须是唯一的。
  4. (可选)输入数据集的说明
  5. 点击继续。系统随即会显示导入数据页面。
  6. 选择桌面设备作为用于填充数据集的数据的上传来源,即您系统中的本地文件,您也可以选择 Google Cloud Storage 存储桶
    • 如果选择的是桌面设备,点击浏览,然后通过文件选择器选择文件。
    • 如果选择的是 Google Cloud Storage 存储桶,点击浏览,然后选择包含相应数据的存储桶和文件。
  7. 选择文件格式
  8. 点击继续以检查您的设置。
  9. 点击创建。系统随即会显示数据集页面,其中显示了您的新数据集,且其状态应为正在处理

    如果数据成功上传:

    • 数据集的状态设为已完成
    • 该数据集将成为“有效”版本,也是应用使用的版本。

    如果上传出现错误:

    • 新数据集版本的状态设为已完成以外的状态。

查看或修改数据集

创建数据集后,您可以通过以下方式查看或修改数据集:

  1. 在 Google Cloud 控制台中,前往数据集页面
  2. 点击相应数据集的名称。系统随即会显示数据集详细信息页面。
    1. 点击详细信息标签页可查看数据集的相关信息。您还可以在此标签页上修改数据集的名称和说明。
    2. 点击预览标签页可在地图上查看您的数据集(仅限状态为已完成已还原的数据集)。
    3. 点击表数据标签页可查看数据集的所有属性(仅限状态为已完成已还原的数据集)。这些是您可以用来为地图上的数据集设置样式的属性。
    4. 点击下载按钮可将数据下载至本地文件。
    5. 点击删除按钮可删除数据集。
    6. 点击导入数据文件按钮,将新数据上传到数据集。

      向数据集上传新数据会创建数据集的新版本。如果新数据成功上传:

      • 新版数据集的状态会设为已完成
      • 新版本将成为“有效”版本,也是应用使用的版本。

      如果上传出现错误:

      • 新数据集版本的状态设为非已完成状态。例如,如果有之前的“有效”版本,则数据集的状态会设为已还原
      • 之前的“有效”数据集版本会保持为“有效”版本,也是应用使用的版本。