PAYATHON 2026

使用免费 Google Maps Mobile 是否需要 billing account?

支付小周

明确结论

需要。

即使只使用 Google Maps SDK for Android 或 Maps SDK for iOS 的免费地图显示功能,Google Cloud 项目通常仍需关联有效的 billing account,并启用对应 API。关联 billing account 是为了开通服务和统计用量,不代表一定会产生费用。

问题中提到的“每月 200 USD credit”是 Google Maps Platform 早期采用的计费方式。Google 后续可能调整免费额度和 SKU 规则,实际额度应以项目控制台及官方定价页面当前显示的信息为准。

为什么免费使用仍要求绑定 billing account

Google Maps Platform 对以下两个概念分别处理:

  • 是否需要启用结算:项目是否必须关联 billing account。
  • 实际费用是否为零:使用的 SKU 是否免费,或者用量是否在免费额度内。

因此,即使某项地图加载免费,也不代表项目可以不关联 billing account。Google 仍可能通过结算系统验证项目、管理 API 配额、统计用量和防止滥用。

“iOS、Android 和 Embed 的免费 Maps 使用额度”说的是费用,并不免除项目配置要求。

移动端 SDK 显示地图与 Maps Static API 也不是同一个产品:

  • Maps SDK for Android 和 Maps SDK for iOS 用于在应用中显示可交互地图。
  • Maps Static API 通过 HTTP 请求返回静态地图图片,有自己的 SKU、配额和计费规则。

不要因为文档中出现“静态地图加载”等表述,就把移动端 SDK 与 Maps Static API 混为一谈。

配置步骤

  1. 在 Google Cloud Console 中创建或选择一个项目。
  2. 为项目关联 billing account。
  3. 启用所需 API:
    • Android 应用启用 Maps SDK for Android
    • iOS 应用启用 Maps SDK for iOS
  4. 创建 API key。
  5. 为 API key 设置应用限制和 API 限制。
  6. 在应用中配置 API key。
  7. 在 Billing 和 Google Maps Platform 的用量页面设置预算提醒,并定期检查实际使用的 SKU。

关联 billing account 时,可能需要提供有效的付款方式。只要使用的功能确实在免费范围内,而且没有调用其他收费 API,账单金额可以保持为零。

Android 配置示例

在 AndroidManifest.xml 中配置 API key:

<application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:theme="@style/Theme.App">

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />

</application>

不要把真实 API key 直接提交到代码仓库。可以通过本地属性或构建配置提供:

MAPS_API_KEY=YOUR_API_KEY

Android API key 应限制为指定的 package name 和 SHA-1 certificate fingerprint,并且只允许访问 Maps SDK for Android。

iOS 配置示例

在应用启动时提供 API key:

import UIKit
import GoogleMaps

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions:
            [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        GMSServices.provideAPIKey("YOUR_API_KEY")
        return true
    }
}

iOS API key 应设置对应的 bundle identifier 限制,并且只允许访问 Maps SDK for iOS。在生产环境中,也不要把未受限制的 key 暴露在公共仓库中。

如何避免意外费用

关联 billing account 并不能保证费用永远为零,还需要采取以下措施:

  • 只启用应用实际需要的 API。
  • 限制 API key 可调用的 API 和应用来源。
  • 检查是否使用了 Places API、Routes API、Geocoding API、Maps Static API 等可能单独计费的服务。
  • 设置 Billing budget 和用量提醒。
  • 在控制台中查看具体 SKU,不要只看 API 总请求数。
  • 不要把预算提醒当成自动停用机制。达到预算阈值时,系统通常只会发送通知,不一定会自动阻止请求。

只在 Android 或 iOS SDK 中显示基础地图,与调用地点搜索、路线规划、地址解析等服务属于不同的计费行为。后者通常会产生单独的 SKU 用量。

注意事项

如果看到以“每月 200 USD credit”为核心的说明,应先确认其发布日期。Google Maps Platform 的计费结构会调整,旧版问答中的额度、SKU 名称和免费范围不一定继续适用。

最终应以以下信息为准:

  • Google Cloud Console 中项目实际启用的 SKU 和账单数据
  • Google Maps Platform 当前官方定价与 Billing 要求

简而言之:符合条件的地图使用量可以免费,但 billing account 仍需配置。项目应关联 billing account,不过只使用免费范围内的功能时,不一定会产生实际费用。

备注:内容仅供参考。