Google Maps Platform 提供云端地图样式设置功能,可让您轻松地使用 Google Cloud 控制台设置地图样式、自定义和管理地图,从而为用户提供自定义地图体验,并且无需在每次更改样式时更新应用的代码。
2020 年 9 月 15 日之前创建的样式不会显示 Google 地图增强后的自然地貌。若要在地图样式中使用 Google 地图增强后的自然地貌,您必须创建地图样式。
借助云端地图样式设置,您可以为使用 Google 地图的所有应用创建和修改地图样式,并且无需对代码进行任何更改,只要您拥有地图 ID 便可使用其关联的地图样式。所有样式更改都可以在 Cloud 控制台中完成,您无需具备任何编码技能。您可以更改众多地图元素(例如道路、建筑物、水体、地图注点和公共交通路线)的外观和颜色。
这些功能包括:
- 云端地图样式设置:您可以在 Cloud 控制台中使用地图 ID 和地图样式来管理动态或静态地图,并为其设置样式,而不需要在代码中使用 JSON 设置地图样式。
- 商家地图注点过滤:可以根据需要移除五种商家地图注点,不让它们显示在地图上。
- 地图注点密度控制:可以调整地图注点在基本地图上的显示密度,以增加或减少默认显示的地图注点。
虽然云端地图样式设置适用于 Maps SDK for Android1、Maps SDK for iOS、JavaScript 和 Maps Static API,但部分功能不会在所有平台上显示。
准备工作
- 创建地图 ID
如需使用云端地图样式设置,您必须使用地图 ID 加载地图。 - 从硬编码样式中进行迁移
您可以添加地图 ID,以便在使用硬编码样式(如 JSON 或网址查询参数)自定义的现有地图上使用云端地图样式设置;但在此之前,我们建议您先移除这些硬编码样式,以免与日后推出的功能发生冲突。您可以将 JSON 样式导入到新的地图样式中。- 在 Android 应用代码中,更新
MapStyleOptions
- 在 iOS 应用代码中,更新
GMSMapStyle
类 - 在 JavaScript 中,移除
MapTypeStyle
样式 - 在 Maps Static 中,移除
style
参数
- 在 Android 应用代码中,更新
结算
如需使用云端地图样式设置,您需要拥有地图 ID。在 Maps SDK for Android、Maps SDK for iOS 和 JavaScript 上,使用地图 ID 会产生动态地图 SKU 费用。在 Maps Static API 中,使用地图 ID 会产生静态地图 SKU 费用。
示例
运行 ApiDemos 示例应用
如需运行 ApiDemos 示例应用,请参阅 GitHub 示例 GoogleMap 示例应用并查看 CloudBasedMapStylingViewController
项目(Swift 的 GitHub 示例 | Objective-C)。
可选的 Cloud 样式设置 CocoaPod 或 GitHub 演示
您可以点击此处,试用我们的 Objective-C 示例应用,了解如何通过云端设置 iOS 地图的样式,而不是从头开始。
构建 Beta 版演示应用
在 Xcode 中,按编译按钮进行构建,然后运行当前方案。build 会生成错误,提示您在 SDKDemoAPIKey.h
文件中输入 API 密钥。
如果您还没有 API 密钥,请按照这些说明在 Cloud Console 上设置项目并获取 API 密钥。在 Cloud Console 上配置该密钥时,您可以指定应用的软件包标识符,以确保只有您的应用可以使用该密钥。SDK 示例应用的默认软件包标识符为 com.example.GoogleMapsDemos
。
修改 SDKDemoAPIKey.h
文件,并将您的 API 密钥粘贴到 kAPIKey 常量的定义中:
```
static NSString *const kAPIKey = @"YOUR_API_KEY";
```
如果 Xcode 提示您解锁 SDKDemoAPIKey.h
文件进行修改,请选择 Unlock(解锁)。
移除以下代码行:
```
#error Register for API Key and insert here.
```
构建并运行项目。
云端地图样式设置地图演示
CloudStyling
演示演示了如何使用 Google Cloud Console 中设置的样式设置地图样式。
演示应用启动时,在列表顶部的 Beta 版示例部分中点击“地图自定义”演示。
点击样式地图,查看加载不同地图 ID 的效果。
您也可以尝试添加自己的样式(“样式地图” >“添加新的地图 ID”),然后使用自定义样式地图查看地图更新。
-
Android 精简模式不支持云端地图样式设置。 ↩