如何将 API 密钥应用到 Google Maps Tile 服务器 URL?

How to apply API key to Google Maps Tile server URL?

我想在应用程序中使用 Google Maps Tile 服务器 URL。

我正在使用 URL
https://mt0.google.com/vt/lyrs=s&hl=en&x={x}&y={y}&z={z}&s=Ga
它工作正常。 问题是我不确定如何为此 URL.

使用我的 Google Cloud API 密钥

我尝试在 URL 的末尾添加 API 键:
https://mt0.google.com/vt/lyrs=s&hl=en&x={x}&y={y}&z={z}&s=Ga&key=[MY_KEY]
但我在 Google 云控制台的“Maps JavaScript API”上没有看到任何 activity。这意味着 API 密钥未被使用。

这个 URL 需要 API 密钥吗?
暂时没有Key可以用,但恐怕长期用不了运行或者没有Key使用可能违法

如果您想直接访问地图图块,请考虑 Azure Maps。他们没有 Google 地图所具有的限制。它也更便宜。以下是一些直接访问磁贴服务器的示例:https://azuremapscodesamples.azurewebsites.net/index.html#Third-Party-Map-Controls

以下是一些其他有用的资源:

好的,所以我花了一些时间在这上面并找到了一些直接使用 Map Tile Server URL 的解决方案(无需任何编码)。这是一个摘要:

Google 地图:

  • URL https://mt0.google.com/vt/lyrs=s&hl=en&x={x}&y={y}&z={z}&s=Ga 目前有效,但使用它是非法的,因为它违反了 Google Maps TOS 第 3.2.4a 节 https://cloud.google.com/maps-platform/terms/#3-license. 因为它不使用API 键。
  • 有一项名为 Google Maps Tile API 的服务,但自 2019 年 9 月起已停止服务(需要将 API 密钥列入白名单才能使用此服务,但他们没有这样做自 9 月以来不再)。

所以目前看来还没有简单易行的方法从 Google 地图获取 Tile Server URL。

Bing 地图:

  • URL 的形式为 http://ecn.{subdomain}.tiles.virtualearth.net/tiles/r{quadkey}.jpeg?g=129,其中 quadkey 是变量 x、y 和 z 的紧凑表示。所以不能直接在需要 URL 具有 x、y、z 变量的应用程序中工作。

Azure 地图:

  • URL 的形式是 https://atlas.microsoft.com/map/tile?subscription-key=***&api-version=2.0&tilesetId=microsoft.imagery&zoom={z}&x={x}&y={y}。对于不同的设置,请参阅 here。这种方式的缺点是目前无法设置显示混合地图(卫星+街道和城市名称)。

地图框:

  • URL 的形式是 https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v11/tiles/256/{z}/{x}/{y}?access_token=***。您可以通过从 here 中选择所需的值并在 URL.
  • 中替换来设置地图的样式(当前设置为 satellite-streets-v11