获取天气地图(实验性)

mapTypes 端点提供表示各种天气现象(例如降水预报)的光栅地图图块。这些地图图块可以叠加到标准 Google 地图上。

条款

这些条款是根据 Google 与您达成的《Google Maps Platform 服务专用 条款》的第 6 条(正式发布前产品条款)发布的。

1.1 署名要求 。如果客户使用 Weather API 中的 Google 地图内容,则必须按照文档中的规定向 Google 提供提供方。

1.2 限制 。客户不得使用从 Weather API 检索到的 Google 地图内容来重新创建 Google 服务或产品(例如,不得在天气应用或天气模型中使用从 Weather API 检索到的数据,这些应用或模型的主要目的是提供天气信息)。

1.3 缓存 。客户可以在适用的缓存期内临时缓存 Weather API 中的适用 Google 地图内容,如表 1.3.1(缓存权限)中所述。

表 1.3.1(缓存权限)

这些权限是对《Google Maps Platform 服务专用条款》的表 17.2.1 中所述权限的补充。

Google 地图内容 缓存期
天气地图图块 一小时,之后客户必须删除缓存的 Google 地图内容

关于天气地图请求

如需请求天气地图,请向以下网址发送 HTTP GET 请求:

https://weather.googleapis.com/v1/mapTypes/{map_type}/mapTiles/{zoom}/{x}/{y}

地图类型

Weather API 支持不同的天气地图类型,这些类型对应于不同的底层天气模型和地理区域:

  • US_PRECIPITATION_CURRENT:美国高分辨率降水临近预报。
  • EU_PRECIPITATION_CURRENT:欧洲高分辨率降水临近预报。

下面的覆盖范围地图显示了提供天气地图图块的区域:

天气地图功能块覆盖范围

图块坐标系

该 API 使用标准的 Web Mercator 图块坐标系。如需全面了解地图和图块坐标,请参阅路线图图块以及地图和图块坐标

在此系统中:

  • zoom:缩放级别(0 到 16)。缩放级别 0 表示整个世界 使用单个图块(20 x 20 = 1 个图块)渲染。缩放级别 z 将世界划分为 2z x 2z 图块网格。
  • x:图块的 X 坐标(列),范围从 0(最西端)到 2zoom - 1(最东端)。
  • y:图块的 Y 坐标(行),范围从 0(最北端)到 2zoom - 1(最南端)。

显示天气地图

如需使用 Google Maps JavaScript API 在 Web 应用中显示这些图块,您可以创建自定义 google.maps.ImageMapType

const weatherMapType = new google.maps.ImageMapType({
  getTileUrl: function(coord, zoom) {
    const mapType = "US_PRECIPITATION_CURRENT";
    return `https://weather.googleapis.com/v1/mapTypes/${mapType}/mapTiles/${zoom}/${coord.x}/${coord.y}`;
  },
  tileSize: new google.maps.Size(256, 256),
  maxZoom: 16,
  minZoom: 0,
  name: "Weather"
});

// Overlay on existing map
map.overlayMapTypes.insertAt(0, weatherMapType);

天气地图请求示例

以下示例请求新奥尔良的美国降水天气地图图块:

curl -o tile.png -X GET "https://weather.googleapis.com/v1/mapTypes/US_PRECIPITATION_CURRENT/mapTiles/12/1025/1688?key=API_KEY"

响应是二进制的。JSON 封装容器仅在特定序列化设置(例如 ?alt=json)下显示。