常见问题解答

入门指南

了解服务条款

使用限制和收费

使用 Google Maps APIs

Google Maps APIs 服务

Google Maps SDK for iOS

入门指南

什么是 Google Maps APIs?

Google Maps APIs 为开发者提供了几种将 Google 地图嵌入网页或从 Google 地图中检索数据的途径,开发者既可轻松使用,也可进行深度定制。我们提供以下 API:

Web API:

Web Service API:

移动 API:

视具体需求,您可能需要使用其中的一种 API,或者组合使用多种 API。

如果您运营的是企业或商用网站,可能还会对 Google Maps APIs Premium Plan 产生兴趣。

我需要哪一个 API?

如果您在寻找适合自身功能要求的 API 方面需要帮助,不妨看一看 API 选取器

Google Maps APIs 覆盖哪些国家/地区?

Google 地图团队正在不断向外推送新增的地图数据以及扩大我们的国际覆盖范围。请查阅 Google 地图覆盖范围数据,了解最新的覆盖范围信息。您可以通过页面顶部的过滤框过滤数据。请注意,与数据提供商的授权协议变更时,覆盖范围数据可能会发生变化。

另请参阅:

如果不使用 Google Maps APIs,能否将 Google 地图嵌入我的网站?

是的。Google 地图现在提供了一项新功能,让您无需进行任何编程,也不必使用 Google Maps APIs,便可将您正在查看的地图嵌入网络或博客。如需了解详细信息,请参阅此处

我如何在移动设备上提供地图应用?

如需在 Android 应用内集成地图,请使用 Google Maps Android API

如需在原生 iOS 应用内集成地图,请使用 Google Maps SDK for iOS

Google Maps JavaScript API 以迎合移动设备需求为开发宗旨,适用于特定浏览器应用,这些应用的目标平台既有台式机,也有 Apple iPhone 这类提供的 Web 浏览器包含完整 JavaScript 实现的设备。

如果应用的目标平台是不适合使用 JavaScript API 的设备,则可由 Google Static Maps API 提供 GIF、JPG 和 PNG 格式的地图图像,包括标记和聚合线。请注意,在基于浏览器的应用以外使用 Google Static Maps API 需要将地图图像链接到 Google 地图。

我能否通过 JavaScript API 打印地图?

不支持通过 JavaScript API 打印地图。这是因为。各常用浏览器对打印功能支持有差异。我们建议通过 Static Maps API 实现打印目的。

在自己的网站上使用 Google Maps APIs 该从何处着手?

请参阅 Maps Javascript API 文档中提供的示例和详情。

我如何得知 Google Maps APIs 的变更?

您应该订阅 Google Geo Developers Blog,以便接收各种 Google 地理开发者产品的新闻动态。

了解服务条款

Google Maps APIs 的服务条款有哪些?

以下网址公布了 Google Maps APIs 的服务条款:

https://developers.google.com/maps/terms

如果您是 Google Maps APIs Premium Plan 客户,请参阅您的协议,了解约束 Google Maps APIs 使用的条款。

我的网站是否符合 Google Maps APIs 的服务条款?

消费者可免费访问的所有网站都能使用 Maps API。无论是商用网站还是非营利性网站,只要您的网站符合服务条款,便可在网站上使用 Google Maps APIs。

不过,我们绝对不愿意看到以下这些对 Google Maps APIs 的不当使用:例如,在地图上标示市内非法药物的购买地点,或者从事任何其他非法活动的地点。我们也尊重人们的隐私权,因此 Google Maps APIs 不应用于表露个人的私密信息。

您应该咨询自己的法律顾问来确定您的应用是否符合服务条款,然后再进行开发和发布。Google 工程师只能提供技术协助,他们没有资格提供法律意见。Google 保留随时暂停或终止您使用服务的权利,因此请仔细阅读服务条款

如果您运营的是企业或商用网站,可能还会对 Google Maps APIs Premium Plan 感兴趣,其服务条款进行了修改,可能更适合您的需要。

我能否直接访问地图图像和卫星图像?

您不得通过 Google Maps APIs 以外的任何机制(如开发自己的地图 API,或使用批量图块下载脚本)访问地图或卫星图像。如果您的应用通过 Google Maps APIs 以外的机制访问图块,这种访问将被阻止。请参阅 Google 地图服务条款第 10.1.a 节,了解更多详情。

我能否在商业网站上使用 Google Maps APIs?

只要您的网站是消费者普遍都可免费访问的网站,便可使用 Google Maps APIs。例如,如果您的网站靠广告提供支持,就很可能符合 Google Maps APIs 的服务条款。如果您对在您的地图上发布信息(例如将其住宅标价出售)的用户收费,但您是利用 Google Maps APIs 在网站的免费区域显示该信息,那么您同样符合 Google Maps APIs 的服务条款

不过,并非所有商业用途都能得到允许。例如,如果您的网站符合下列任一条件,则必须购买相应的 Google Maps APIs Premium Plan 许可证:

  • 您的网站只供付费客户使用。
  • 您的网站只能在您的公司内或内联网上访问。
  • 您的应用与企业派遣、车队管理、商业资产追踪或类似应用有关。

切记,Google 保留随时暂停或终止您使用 Google Maps APIs 的权利,因此请务必仔细阅读服务条款

我能否使用 Google Maps APIs 跟踪应用?

在利用 Google Maps APIs 显示实时数据(追踪)方面并无限制,前提是应用公开免费提供并且在其他方面符合服务条款。对于只在内部使用的应用,必须使用 Google Maps APIs Premium Plan。请参阅服务条款第 10.4 节,了解更多详情。

我能否在自己的非 Web 应用内使用 Google 地图?

可以,Google Maps APIs 现在可以在桌面应用中使用,前提是这些应用遵守服务条款的其他限制。请注意,要想让桌面应用被视为“可公开访问”的应用,必须提供可下载该应用的可公开访问网页。请参阅服务条款第 9.1 节,了解更多详情。

只支持在其中一个支持的浏览器中运行 Google Maps JavaScript API。

我能否在受密码保护的网站上使用 Google Maps APIs?

可以,但您应该查阅服务条款,然后再在受密码保护的网站上使用 Google Maps APIs。如果消费者可轻松地免费注册密码,或者受密码保护地图的目的是改善公开提供的地图(即管理),那么您的网站可能符合服务条款。如果不属于这种情况,您就需要使用 Google Maps APIs Premium Plan

我能否在印刷材料或线下媒体中使用 Google Maps APIs 应用的屏幕截图?

在印刷材料和线下媒体中使用 Google 地图图像须遵从以下网址上发布的“许可指南”:

http://www.google.com/permissions/geoguidelines.html

如需了解有关打印的更多信息,请参阅我能否通过 JavaScript API 打印地图?

我如何选择不将自己的内容包含在 Google 搜索结果中?

我们不再收集此数据。indexing 参数已经弃用,因此使用该参数没有任何作用。您不再需要显式选择退出,但我们鼓励您在方便时从速删除此参数。

如需从搜索结果中删除您的页面或网站,请按照我们的网站站长帮助中心中提供的说明操作。

如果您使用的客户端 ID 具有 Google Maps APIs Premium Plan 许可证,便可使用以下选项移除地图上显示的 Google 徽标的链接。您只能在徽标链接产生负面用户体验时才能使用此选项。(例如,提供全屏视图的移动应用,在上面点击徽标会让用户离开应用的原始内容,而且无法返回。)您必须确保不会隐藏或遮挡徽标和版权通知。

map.setOptions({passiveLogo: true});

用户仍然可以看见徽标,但不可点击。

默认情况下,使用客户端 ID 的所有 Premium Plan 客户都可以使用此选项。如果不能使用,请联系 Premium Plan 支持人员

我使用 Maps JavaScript API 时,将有哪些信息发送给 Google?

使用 Maps JavaScript API 时,将有下列信息发送给 Google:

  • 用于检索地图图块和版权信息的地图尺寸和位置
  • 用于地理编码的地址
  • 方向和海拔高度请求
  • 用于搜索地点的中心位置
  • 使用 KmlLayer 时的 KML
我能否在自己的网站上存储和提供使用 Google Static Maps API 生成的地图图像?

您不得在自己的网站上存储和提供使用 Google Static Maps API 生成的图像副本。所有需要静态图像的网页都必须将 HTML img 标记的 src 属性或 HTML div 标记的 CSS background-image 属性直接链接到 Google Static Maps API,以使所有地图图像都显示在网页的 HTML 内容中,并由 Google 直接提供给最终用户。

使用限制和收费

哪些 Google Maps APIs 具有使用限制?

Google Maps APIs 可在多种用例下免费使用,并为使用标准 API 提供免费使用限制和可预测的超额定价,对于企业部署,则有年度合同可供选择。

下列 API 没有使用限制:

下列 Maps API 有使用限制。点击 API 可查看其使用限制详情:

Maps API 必须按照标准服务条款进行部署。

Google Maps APIs 的使用限制是多少?

大多数 Google Maps APIs 都有可在 Google API Console 中设置的免费每日配额。每日默认和最大查询数量因 API 而异。您可以通过启用收费或购买 Google Maps APIs Premium Plan 许可证增加免费的每日限制。

  • Web Service API:

    Google Maps web service API 包含每日 2,500 次免费请求,这是客户端请求次数(通过 Google Maps JavaScript API 服务发出的)以及服务器端请求次数之和。如需获得更高的每日配额(最高每天 100,000 次),可使用我们提供的按需付费定价

    可选择加入按需付费。

  • Web API

    Google Maps JavaScript API、Google Static Maps API 和 Google Street View Image API 每天的免费限制为 25,000地图加载。如需获得更高的每日配额(最高每天 100,000 次),可使用我们提供的按需付费定价

    如果您未启用收费来使用更高的每日配额,当网站一天的地图加载次数超出 25,000 时,API 会在当天的其他时间停止工作。

    在某些实例中,可能存在配额例外。了解详情

请参阅具体问题,获得对下列内容的准确定义:

注:被视为合乎公众利益的应用(由 Google 自行酌情判定)不受这些使用限制的制约。例如:

  • 救灾地图一般不受使用限制的约束,即使其开发商和/或托管方是商业实体,也不受约束。危机应对组织可以申请增加配额限制。了解详情并申请
  • 如果合格的非营利性组织能够证明其需要更高的地理编码限制,或者需要在内部使用 Google Maps APIs,可以通过 Google Earth Outreach 资助计划申请 Google Maps APIs Premium Plan 许可证。
  • 使用标准计划的合格的新闻媒体组织可以申请增加配额限制。了解详情并申请

配额使用量是如何计算的?

配额使用量的计算因 API 而异。Web Services API 以请求为单位(请注意,Google Maps Distance Matrix API 以元素为单位)。Web API 使用地图加载次数来计算配额使用量。

对于 Google Maps Distance Matrix API,发送至该 API 的每个查询均受允许的元素数量限制,起点数量与目的地数量的乘积便是元素数量。

限制 Google Maps APIs 网络服务使用的配额有两种类型:长期(每日配额)和短期(请求率配额)。无论请求是通过服务器端发出(通过 Maps Web Services API)或是通过客户端发出(通过 Directions Distance Matrix ElevationGeocoding 的 JavaScript 服务。

注:API 上还设置有其他限制。例如,Elevation API 有“每次请求的位置数”限制。除了每日配额外,Image API 还有图片最高分辨率限制。有关详情,请查看各 Google Maps APIs 的使用限制页面。

如何根据 Web 版 Google Maps APIs 使用限制提供地图加载次数?

出现以下任意情况时对单个地图加载收费:

  • 网页或应用使用 Google Maps JavaScript API 展示地图。
  • 网页或应用使用 Google Maps JavaScript API 展示 Google Street View Image API 全景图。如果用街景全景图代替同一个 div 元素中的地图,不会对全景图收费。
  • 应用从 Google Static Maps API 请求单个地图图像。
  • 应用从 Google Street View Image API 请求单个全景图图像。

网页或应用加载地图、静态地图图像或街景全景图后,与之进行的平移、缩放或切换地图图层等任何用户互动都不会额外产生地图加载次数或影响使用限制。

Google Maps APIs Premium Plan 应用会按照 Maps API 额度使用配额。请参阅 Premium Plan 使用率和限制了解详细信息。

我如何监控自己的配额使用量?

您可以在 Google API Console 中监控各 API 的配额使用量。

  1. 选择包含您想审查的 API 的项目。
  2. 在信息中心上的 API 列表中,点击 API 的名称。
  3. 在靠近页面顶部的位置,点击 QuotasUsage

:如需查看整个项目的流量报告和收费信息,请先启用收费

如果我超过了使用限制会发生什么情况?

如果您超过了给定 Maps API 的使用限制,该 API 会返回一条错误消息。如果您反复超过限制,可能会暂时禁止您访问该 API。

  • Web Service API

    对于 Google Maps APIs Web 服务,限制使用的配额有两种类型:长期(每日配额)和短期(请求率配额)。如果您超过了使用限制或者以其他方式滥用了服务,Web 服务将返回特定错误消息。如果您继续超过限制,可能会禁止您访问 Web 服务。

    您的以下行为可能导致超出 Google Maps APIs Web 服务的使用限制:

    • 每天发送的请求数量过多。
    • 发送请求的速度过快,即每秒请求数量过多。
    • 发送请求速度过快的情况持续过久,或者以其他方式滥用了 Web 服务。
    • 超过了其他使用限制,例如超过了 Elevation API 中的每次请求位置数量限制。

    :以下四个 Web 服务 API 在 JavaScript API 中提供等效的客户端服务:DirectionsDistance MatrixElevationGeocoding

    所有使用限制(长期和短期)都由服务共享,无论请求是通过客户端发出的,还是通过服务器端发出的。例如,Web 服务的每日免费配额设置为每日 2,500 次请求,由客户端服务和服务器端服务共享。如果您使用 JavaScript API Directions 服务每天发出 1,500 次请求,同时使用服务器端 Google Maps Directions API 每天发出 2,000 次请求,则您一天发出的 Directions 请求为 3,500 次,超出每日免费请求配额 1,000 次。

  • Web API

    Web API 为 Google Maps JavaScript API v3、Google Static Maps API 和 Google Street View Image API,其中每一个的每日免费限制均为 25,000 次地图加载。

    对于某些客户,可能存在配额例外。了解详情

超过使用限制

如果您超过了使用限制,作为响应,您会收到 OVER_QUERY_LIMIT 状态代码。

这意味着 Web 服务将停止提供正常响应,并切换到只返回状态代码 OVER_QUERY_LIMIT,直至再次获得更多使用量。这可能会在下列时段内发生:

  • 几秒内,前提是由于您的应用每秒发送的请求数量过多而收到错误。
  • 未来 24 小时内,前提是由于您的应用每天发送的请求数量过多而收到错误。每日配额将在太平洋时间午夜重置。

如果您经常超过每日使用限制,请考虑:

我的网站流量很大。我能否使用 Maps API?

是的。但我们建议您熟悉一下您的应用依赖的任何 Google Maps APIs 的使用限制

是否应该购买 Google Maps APIs Premium Plan?

如果您的企业或组织有下列任一需求,您就应该购买 Google Maps APIs Premium Plan:

  • 提供 24 小时技术支持的 SLA
  • 通过嵌入式 Google 地图销售产品或服务的功能
  • 为内部应用或网站使用 Google Maps APIs 的权限
  • 特定量的配额
  • 为资源跟踪应用使用 Google Maps APIs(不包括 Places API)的权限
  • 您现有的 Maps APIs for Work 许可证可以使用 Premium Plan 功能

如何购买 Google Maps APIs Premium Plan?

联系您的 Google 销售代表,了解有关购买 Google Maps APIs Premium Plan 的详情,以及获得一份基于应用预估消耗的报价。

  • Web Service API

    如果您使用的是 Web 服务 API,我们每天为其提供 2,500 次免费请求,这是客户端请求次数(通过 Google Maps JavaScript API 服务发出的)和服务器端请求次数之和。超过免费配额后,如果您注册了自动化收费,可以按需付费方式获得每天高达 100,000 次请求的配额。

  • Web API

    如果您使用的是 Google Maps Web API(Maps JavaScript API、Static Maps API 或 Street View Image API),我们每天为其免费提供 25,000 次地图加载。超过免费配额后,如果您注册了自动化收费,可以按需付费方式获得每天最高 100,000 次的地图加载。

    在某些实例中,可能存在配额例外。了解详情

如果您超过了每日免费配置,并且未启用收费,API 会在当天的其他时间停止工作。

超额使用量是如何计算和收费的?

每项 Maps API 服务免费配额以上的超额使用量在每天结束时计算。

  • Web Service API

    Web 服务 API 每天提供 2,500 次免费请求,这是客户端请求次数(通过 Google Maps JavaScript API 服务发出的)和服务器端请求次数之和。如果您启用收费以获得更高配额,则当您超过每天 100,000 次请求的配额后,每增加 1,000 次请求,付费 0.50 美元,每天封顶配额为 2,500 次。

  • Web API

    Google Maps Web API(Maps JavaScript API、Static Maps API 或 Street View Image API)每天免费提供 25,000 次地图加载。如果您启用收费以获得更高配额,则当您超过每天 25,000 次请求的配额后,每增加 1,000 次请求,付费 0.50 美元,每天封顶配额为 100,000 次地图加载。

    在某些实例中,可能存在配额例外。了解详情

了解更多关于您超过使用限制时会发生的情况的内容。

如果您选择启用收费,需要提供您的信用卡详情。您的超额使用量仍将在每天结束时计算,每个月末按以下规定价格对提供的信用卡收取合计费用。

使用 Google Maps APIs 的费用有多高?

如果应用产生的请求量或地图加载量低于使用限制,可免费使用 Google Maps APIs,前提是应用符合 Google Maps APIs 服务条款要求

对于 Web Service API,如果您的 Maps API 服务超过了每日使用限制,并且您选择使用 Google API Console 在线购买超限配额,将按以下所示的相关服务费率向您收取超额使用费。每日使用量按项目进行跟踪,由计算客户端请求次数(通过 Google Maps JavaScript API 服务发出)和服务器端请求次数之和得出。

对于 Google Maps JavaScript API v3、Google Static Maps API 和 Google Street View Image API,如果您使用 Maps API 服务时超过了每日使用限制,并且您选择使用 Google API Console 在线购买超限地图加载次数,将按以下所示的相关服务费率向您收取超额使用费。每日使用量按项目进行跟踪。

请注意,如果您的网站每天产生的请求或地图加载量一贯很高,购买 Google Maps APIs Premium Plan 许可证可能更具成本效益。我们建议您联系 Google Maps APIs Premium Plan 销售团队来了解详情。

Web Service API 免费限制
(每天)
1000 次超限请求
(单位:美元)
Directions API + Directions 客户端服务 2,500 2 0.50
Distance Matrix API + Distance Matrix 客户端服务 1 2,500 2 0.50
Elevation API + Elevation 客户端服务 2,500 2 0.50
Geocoding API + Geocoding 客户端服务 2,500 2 0.50
Geolocation API 2,500 0.50
Roads API 2,500 0.50
Time Zone API 2,500 0.50
1 Google Maps Distance Matrix API 和 Distance Matrix 客户端服务使用量以每日元素数量为基准衡量。
2 每日免费配额由计算客户端请求次数(通过 Google Maps JavaScript API 服务发出)和服务器端请求次数之和得出。
Web API 免费限制
(每天)
1000 次超限地图加载
(单位:美元)
Google Maps JavaScript API 25,000* 0.50
Google Static Maps API 25,000* 0.50
Google Street View Image API 25,000* 0.50
* 可能存在配额例外。了解详情

请注意,在线购买超限配额除了能够获得按照现有服务条款继续使用 Google Maps APIs 的权利外,并不会获得任何额外权利或利益。

是否提供其他货币的定价?

目前只提供美元定价。

我已启用收费。我该如何查看自己的帐单?

Google 按照您的指定付款方式在每个月初收取您上个月的费用。

我如何避免因使用量意外增加而支付巨额帐单?

Google Maps APIs 提供免费的每日限额,并设置每日最大可收费限制。您可以通过对每日最大使用限制封顶来防范使用量的意外增加。您还可以设置收费提醒,在收费账户上的费用达到您设置的阈值时收到电子邮件通知。

封顶每日最大可收费限制

  • 对于 Web 服务 API

    标准 Web 服务 API 最高支持每日 100,000 个请求或元素。在您为项目启用收费前,项目仅限于使用免费的 2,500 每日限制。启用收费后,当您超过每天 100,000 次请求的配额时,每增加 1,000 次请求,付费 0.50 美元,每天封顶配额为 2,500 次。请注意,每日使用量按项目进行跟踪,由计算客户端请求次数(通过 Google Maps JavaScript API 服务发出)和服务器端请求次数之和得出。

    为避免产生巨额帐单,您可以通过设置每日封顶使用量来防范使用量的意外增加。目前,最大可收费限制默认为每天 100,000 次请求。您可以在 Google API Console更改此限制。在 API 的 Quotas 页面上,点击 requests per day 配额旁边的编辑图标

    :如果任何一天您的 API 使用量达到了可收费限制,您的应用在该天的剩余时间里将无法访问 API。了解更多关于您超过使用限制时会发生的情况的内容。

  • 对于 Web API

    对于 Google Maps JavaScript API v3Google Static Maps APIGoogle Street View Image API,如果您对标准 Google Maps Web API 的使用量超过了免费使用限制,可通过在项目上启用收费在线购买超限地图加载次数。启用收费后,当您超过免费使用限制时,每增加 1,000 次请求,付费 0.50 美元,每天封顶配额为 100,000 次。

    为避免产生巨额帐单,您可以通过设置每日封顶使用量来防范收费开始后使用量的意外增加。目前,最大可收费限制默认为每天 100,000 次请求。您可以在 Google API Console更改此限制。在 API 的 Quotas 页面上,点击 requests per day 配额旁边的编辑图标

    :如果任何一天您的 API 使用量达到了可收费限制,您的应用在该天的剩余时间里将无法访问 API。了解更多关于您超过使用限制时会发生的情况的内容。

    注:对于某些客户,可能存在配额例外。了解详情

设置和管理收费提醒:

设置收费提醒,在收费账户上的费用达到您设置的阈值时向收费管理员发送电子邮件通知。收费管理员将在收费帐户上的预估费用超过阈值的 50%、90% 和 100% 时收到电子邮件通知。

建议:如果您的网站每天产生的请求或地图加载量一贯很高,购买 Google Maps APIs Premium Plan 许可证可能更具成本效益。我们建议您联系 Google Maps APIs Premium Plan 销售团队来了解详情。

启用收费

为启用收费以及为 Google Maps API 解锁更高配额,我们将引导您在 Google Developers Console 中完成几项任务:

  1. 创建或选择项目
  2. 设置或选择您的收费资料
  3. 在您的项目上启用收费
继续

使用 Google Maps APIs

我应该为不同的地图产品使用什么密钥或凭据?

每次使用 Google Maps APIs 时,您都必须使用密钥或其他凭据来验证请求。Google Maps APIs 适用于 Android、iOS 或 Web 应用,以及通过 HTTP 实现的 Web 服务。所需凭据类型将视 API 以及您使用的是标准许可证还是高级许可证而有所差异。

此部分中的信息适用于标准计划客户和使用新 Google Maps APIs Premium Plan(自 2016 年 1 月可用)的客户。如果您拥有旧版 Maps APIs for Work 或 Maps API for Business 许可证,您所需的凭据可能与下面列出的凭据不同。

  • API 密钥:API 密钥是您使用 Google API Console 生成的一个唯一标识符。标准 API 一般使用 API 密钥。Premium Plan 客户1一般可以选择使用客户端 ID 或 API 密钥。

    您可以选择在不施加限制的情况下使用 API 密钥(称为“一般 API 密钥”),也可以为了确保更大的安全性而使用存在限制的密钥。任何平台的 API 都可能使用一般 API 密钥。

    您可以选择向 API 密钥添加限制(例如 IP 地址)。受限后,密钥仅会在支持这一类型限制的平台上有效。存在四种类型的 API 密钥限制:

    • 服务器限制(通过 IP 地址)- 适用于 Web Service API
    • 浏览器限制(通过 HTTP 引荐来源网址)- 适用于网络 API
    • Android 应用限制(通过软件包名称和指纹)- 适用于 Android API
    • iOS 应用限制(通过 iOS 捆绑包标识符)- 适用于 iOS API

    同一平台的 API 可以使用相同的限制性密钥。

    Google Maps APIs Premium Plan 和 Google Maps APIs for Work 客户,请注意:如果在 Google API Console 上生成密钥,必须选择注册时生成的项目。项目名称以 Google Maps APIs for Business 或 Google Maps for Work 或 Google Maps 开头。

    加载使用密钥的 API 示例:&key=AIzaSyBjsINSH5x39Ks6c0_CoS1yr1Mb3cB3cVo

  • 客户 ID:在您以 Google Maps APIs Premium Plan 或 Google Maps APIs for Work 客户身份注册时,我们会为您提供客户端 ID。Premium Plan 客户一般可以选择使用客户端 ID 或 API 密钥。

    加载使用客户 ID 的 API 示例:&client=gme-companyname

  • 数字签名:一般来说,Google Maps APIs Premium Plan 和 Google Maps APIs for Work 客户在通过客户端 ID 进行身份验证时需要使用数字签名。数字签名使用 Google 为您提供的加密密钥生成。此外,Google Static Maps API 和 Google Street View Image API 需要使用数字签名。如果您使用的是标准 Google Static Maps API 和 Google Street View Image API,并且启用了收费,则超出每日免费平配额的地图加载次数需要使用数字签名。

下表列出了应与各 Maps API 产品一起使用的密钥/凭据。(如上文所述,API 密钥限制类型为:服务器、浏览器、Android 和 iOS。)

API 标准 API 用户 Premium Plan 用户1
Google Maps Android API 具有 Android 限制的 API 密钥2 具有 Android 限制的 API 密钥2
Google Places API for Android 具有 Android 限制的 API 密钥2 不可用
Google Maps SDK for iOS 具有 iOS 限制的 API 密钥2 具有 iOS 限制的 API 密钥2
Google Places API for iOS 具有 iOS 限制的 API 密钥2 不可用
Google Maps JavaScript API 具有浏览器限制的 API 密钥2 具有浏览器的 API 密钥2

客户端 ID
Google Static Maps API 具有浏览器限制的 API 密钥2 + 可选3数字签名 具有浏览器限制的 API 密钥2 + 数字签名

客户端 ID + 数字签名
Google Street View Image API 具有浏览器限制的 API 密钥2 + 可选2数字签名 具有浏览器限制的 API 密钥2 + 数字签名

客户端 ID + 数字签名
Google Maps Embed API 具有浏览器限制的 API 密钥2 不可用
Google Maps Directions API 具有服务器限制的 API 密钥2 具有服务器限制的 API 密钥2

客户端 ID + 数字签名
Google Maps Distance Matrix API 具有服务器限制的 API 密钥2 具有服务器限制的 API 密钥2

客户端 ID + 数字签名
Google Maps Elevation API 具有服务器限制的 API 密钥2 具有服务器限制的 API 密钥2

客户端 ID + 数字签名
Google Maps Geocoding API 具有服务器限制的 API 密钥2 具有服务器限制的 API 密钥2

客户端 ID + 数字签名
Google Maps Geolocation API 具有服务器限制的 API 密钥2 具有服务器限制的 API 密钥2
Google Maps Roads API 具有服务器限制的 API 密钥2 具有服务器限制的 API 密钥2
Google Maps Time Zone API 具有服务器限制的 API 密钥2 具有服务器限制的 API 密钥2

客户端 ID + 数字签名
Google Places API Web Service 具有服务器限制的 API 密钥2 具有服务器限制的 API 密钥2
1 Premium Plan 参考自 2016 年 1 月起提供的新 Google Maps APIs Premium Plan。如果您拥有旧版 Maps APIs for Work 或 Maps API for Business 许可证,您所需的凭据可能与上面列出的凭据不同。无法确定您所购买的计划?了解如何查看您的许可证类型
2 在开发和原型开发期间,您可以针对任何 Maps 或 Places API 使用一般 API 密钥(没有限制的密钥)。在生产环境中使用 API 密钥之前,我们建议您务必了解 API 密钥的限制。了解安全使用 API 密钥的最佳做法
3 对于 Google Static Maps API 和 Google Street View Image API,如果您使用的是标准 API,并且启用了收费,在超过 25,000 次的每日免费地图加载次数时,需要针对任何可收费地图加载使用数字签名
我如何将密钥限制类型从浏览器限制切换为服务器限制?

重要说明:如果您的任何 Web service API 使用的都是具有引用站点限制的 API 密钥,您的请求会失败,错误消息如下所示:"API keys cannot have referer restrictions when used with this API."您应切换为使用服务器限制。

在您将 API 密钥限制从浏览器切换为服务器之前,请确保使用 API 密钥的所有 API 都是 Web 服务 API。同一平台的 API 可以使用相同的限制性密钥。如果您需要满足多个平台,请使用要求的平台限制添加单独密钥。请参阅如何添加新的 API 密钥

要将具有浏览器限制的 API 密钥切换为具有服务器限制的密钥,请执行以下操作:

  1. 转至 Google API Console 的“Credentials”页面。
  2. 选择包含您想编辑的 API 的项目。
  3. Credentials 页面上的 API 密钥列表中,选择 API 密钥的名称,以编辑该密钥的详情。
  4. 在该页面的 Restrictions 部分中,选择 “IP addresses (web servers, cron jobs, etc.)”,插入相应的服务器 IP 地址,然后点击“Save”。
我如何获取新的 API 密钥?

如需创建新的 API 密钥,请执行以下操作:

  1. 转至 Google API Console
  2. 选择或创建一个项目。
  3. 如需生成新 API 密钥,请点击 Create credentials 按钮。
  4. 从凭据类型列表中选择 API key
  5. 系统随即会生成新密钥并在一个弹出窗口中显示新生成的密钥。
  6. 如需根据需要设置任何密钥限制(可选),请选择 Restrict key,然后按照页面上的说明设置限制。
  7. API 密钥列于“Credentials”页面上。请注意,列表中的密钥因限制类型的不同而异。没有任何限制的 API 密钥为一般密钥,可用于任何 API。

在您的请求中指定 API 密钥

如需在您的请求中指定 API 密钥,请以密钥参数值的形式加入。

示例:

对于 Elevation API

https://maps.googleapis.com/maps/api/elevation/json?locations=39.739,-104.984&key=YOUR_API_KEY

对于 Geolocation API

https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY

我该如何解决以下错误:“This IP, site or mobile application is not authorized to use this API key.”?

不同情况均可能引发这一错误:

  • 您在 API 密钥上启用了 IP 地址(服务器)限制,但有未经授权的 IP 地址尝试发出请求。
  • 您在 API 密钥上启用了 HTTP 引用站点限制,但有未经授权的引用站点尝试发出请求。
  • 您已通过设置软件包名称和指纹将使用方限定为您的 Android 应用,但有未经授权的 Android 应用尝试发出请求。
  • 您已通过指定捆绑标识符限制了来自 iOS 应用的请求,但有未经认可的 iOS 应用尝试发出请求。
  • 如果您的任何 Web 服务 API 使用的是浏览器限制 API 密钥,则可能出现这种错误。Web 服务 API 请求应使用服务器限制 API 密钥进行识别。将您的密钥限制类型从浏览器限制密钥切换为服务器限制密钥

查看和编辑您的 API 密钥凭据

如需查看您的 API 密钥以及管理任何限制,请执行以下步骤:

  1. 转至 Google API Console
  2. 选择包含您想审查的 API 密钥的项目。
  3. 如需查看凭据详情,包括为密钥设置的任何限制,请在 API 密钥列表中点击密钥的名称。
  4. 此时会显示所选 API 密钥的完整凭据,包括为该密钥设置的任何限制。在这里,可根据需要更改、删除或更新限制。

我该如何解决以下错误:"API keys cannot have referer restrictions when used with this API."?

您使用的任何 Web 服务 API 使用的是浏览器限制 API 密钥。为安全起见,Web 服务 API 需要使用服务器限制 API 密钥将您的密钥限制类型从浏览器限制切换为服务器限制

我如何了解各版本 Google Maps API 中引入的变更?

我们在以下网址建立了一份列表,其中包含 Google Maps JavaScript API 各版本所做的变更:

https://developers.google.com/maps/documentation/javascript/releases

您还可以利用以下网址提供的 Google Maps APIs Issue Tracker 确认特定错误是在哪一版本的 Google Maps APIs 引入并得到修复的:

http://code.google.com/p/gmaps-api-issues/issues/list

我如何才能在页面加载完毕后以异步方式将 API 加载到页面中?

仅在加载 API 时指定回调参数。您可以在 Maps JavaScript API 文档的入门指南一章查看更多信息和示例代码。

我如何才能让 Google Maps APIs 以英语以外的其他语言显示?

默认情况下,该 API 会尝试根据用户位置或浏览器设置加载最合适的语言。某些 API 允许您在发出请求时明确设置语言。各 API 的文档中提供了有关如何设置语言的详细信息:

支持的语言
语言代码 语言 语言代码 语言
ar 阿拉伯语 kn 卡纳达语
bg 保加利亚语 ko 韩语
bn 孟加拉语 lt 立陶宛语
ca 加泰罗尼亚语 lv 拉脱维亚语
cs 捷克语 ml 马拉雅拉姆语
da 丹麦语 mr 马拉地语
de 德语 nl 荷兰语
el 希腊语 挪威语
en 英语 pl 波兰语
en-AU 英语(澳大利亚) pt 葡萄牙语
en-GB 英语(英国) pt-BR 葡萄牙语(巴西)
es 西班牙语 pt-PT 葡萄牙语(葡萄牙)
eu 巴斯克语 ro 罗马尼亚语
eu 巴斯克语 ru 俄语
fa 波斯语 sk 斯洛伐克语
fi 芬兰语 sl 斯洛文尼亚语
fil 菲律宾语 sr 塞尔维亚语
fr 法语 sv 瑞典语
gl 加利西亚语 ta 泰米尔语
gu 吉吉拉特语 te 泰卢固语
hi 印地语 th 泰语
hr 克罗地亚语 tl 塔加拉族语
hu 匈牙利语 tr 土耳其语
id 印度尼西亚语 uk 乌克兰语
it 意大利语 vi 越南语
iw 希伯来语 zh-CN 简体中文
ja 日语 zh-TW 繁体中文

您可以在此示例应用中查看地图以您的语言显示时的外观。

是否可以通过 SSL (HTTPS) 访问 Google Maps APIs?

开发者可以利用这些 API 的免费版或 Google Maps APIs Premium Plan 通过安全 (HTTPS) 连接访问 Google Maps JavaScript API、Google Static Maps API 和 Google Maps APIs。请参阅相关 API 的文档,了解有关如何通过 SSL 访问 API 的信息。

请注意,Google Static Maps API 不支持使用 HTTPS 的自定义图标 URL;将显示默认图标。

我如何在 Google Maps APIs 中报告错误或请求新功能?

如果您认为自己遭遇的行为可能是错误,请先在相关论坛中提出。这有利于其他开发者验证错误,以及排除您代码中的任何潜在问题。

如果您想请求增加某项功能,也请先在相关论坛中提出,以便确认可满足您要求的解决方案尚未推出。

如果经确认您发现的是新错误,或者 Google Maps API 的现有功能无法满足您的要求,请利用 Google Maps APIs Issue Tracker 报告您的错误或功能请求。

在向问题跟踪器添加错误或功能请求前,请务必确认相关错误或功能尚未添加。如果已经添加,您可以给问题添加星标,以记录您的兴趣和接收更新通知。

此错误有何含义?

如果您在加载 Google Maps JavaScript API 时遇到错误,请参阅错误消息,找到对错误代码的说明。

我遇到不同的问题/故障。我应该与谁联系?

Google 的开发者关系团队在 Stack Overflow 上设有常驻人员,后者是一家以协作编辑方式为程序员解答问题的网站。这是一个非常适合咨询有关开发与维护 Google 地图应用程序的技术问题的地方。有关在 Stack Overflow 上提问的详情,请参阅支持页面。

要想在请求帮助时获得最满意的结果,请牢记以下要点:

  • 搜索最新讨论内容。可能其他人已遇到类似问题并找到了修复方法。
  • 在可能的情况下提交您的网站的链接。只有在不方便在线查看代码时再发布代码段。
  • 提供所有相关信息,包括浏览器版本、错误以及所有其他可能有助于排除该故障的事实。

Google Maps APIs Premium Plan 客户还可以联系Premium Plan 支持人员

Google Maps APIs 服务

我需要将地址转换为经度/纬度对。我能通过 Google Maps APIs 完成这种转换吗?

是的,这个过程称为“地理编码”。Google Maps JavaScript API 包含用于执行地理编码服务的类。这个类为:google.maps.Geocoder.

另外,Google 还提供了 Google Maps Geocoding API,其提供的 REST 接口能够以 JSON 和 XML 格式作出响应。

请注意地理编码器请求会受到的使用限制。还请注意,地理编码器只能用于获取使用 Google Maps APIs 显示的位置,如果将其用于除此以外的任何其他用途,将会违反服务条款的要求。您可以利用 HTTP 地理编码器在您的 Maps API 应用以外对地址进行地理编码,以便利用其中一个 Google Maps APIs 进行缓存并在稍后显示,但利用 Google Maps Geocoding API地理编码服务获取的位置不得由任何其他应用使用、通过其他手段分发或者进行转售。

在哪些国家提供了地理编码?

如需查看 Google Maps APIs 地理编码器当前支持的国家/地区,请查阅 Google 地图覆盖范围数据

地理编码位置的准确性可能因国家而异,因此您应该考虑使用返回的 location_type 字段来确定是否找到了匹配度足以满足您的应用要求的结果。请注意,地理编码数据的可用性取决于我们与数据提供商的联系,因此可能随时发生变化。

如需了解在 Google Maps APIs 当前不支持的国家/的地区进行地理编码的信息,请浏览此列表中的其他地理编码服务。

为何 Google Maps APIs 地理编码器与 Google 地图提供的位置不同?

API 地理编码器和 Google 地图地理编码器有时使用不同的数据集(取决于国家)。API 地理编码器偶尔会更新数据,因此预计会出现结果随时间推移发生变化或改善的情况。

我该如何设置地理编码器查询格式,才能最大限度提升请求的成功率?

地理编码器设计为在街道地址与地理坐标之间建立对应关系。因此,我们建议您按照以下指南设置地理编码器请求的格式,以最大限度提高查询的成功率:

  • 按照相关国家全国邮政服务使用的格式指定地址
  • 请勿额外指定在相关国家邮政服务定义的地址中并不包括的地址元素,如公司名称、单元号、楼层号或套房号
  • 在场所的街道号和建筑名称之间,尽可能优先使用前者
  • 在使用街道号地址与指定十字路口之间,尽可能优先使用前者
  • 请勿提供附近标志性建筑等“提示”

我该如何设置美国国道地址的格式以便进行地理编码?

Google Maps APIs 地理编码器要求按以下格式指定美国国道地址:

  • 县公路“Co Road NNN,其中 NNN 表示道路编号,例如:“Co Road 82”
  • 州级公路State NNN,其中 State 是州的全称,NNN 是公路编号,例如:“California 82”
  • 美国 国道:“U.S. NNN,其中 NNN 是国道编号,例如:“U.S. 101”
  • 美国 州际公路:“Interstate NNN,其中 NNN 是州际公路编号,例如:“Interstate 280”

我该在什么情况下使用 API geocoder 类,又该在什么情况下使用 HTTP 地理编码服务?

请参阅以下文档:Geocoding Strategies(地理编码策略),其中详述了不同地理编码策略的优缺点。

我如何通过 Google Maps APIs 提供行车路线?

Google Maps JavaScript API 允许您通过 google.maps.DirectionsService 类提供行车路线。该类让您可以循序渐进地获得基本和多点行车路线。DirectionsRenderer 类可自动为您创建叠层和路线面板。请参阅相关文档,了解其他示例

您还可以方便地链接到 Google 地图来获取行车路线。我们建议您使用以下格式在 Google 地图上获取行车路线:

http://maps.google.com/maps?saddr={start_address}&daddr={destination_address}

在哪些国家/地区提供了行车路线?

如需查看 Maps API 中的行车路线当前支持的国家/地区,请查阅 Google 地图覆盖范围数据。请注意,行车路线数据的可用性取决于我们与数据提供商的联系,因此可能随时发生变化。

在哪些国家提供了公共交通路线?

Google Maps Directions Service 支持公共交通覆盖范围列表中所列的全部公共交通提供商,但日本的提供商除外。

Google Maps JavaScript API 中支持哪些 KML 和 GeoRSS 功能?

JavaScript API 中的 KmlLayer 类让开发者能在地图上覆盖 KML/KMZ 和 GeoRSS 文件。您可以在这里查看文档和示例。

对可使用 Google Maps JavaScript API 的 KmlLayer 类显示的 KML 的尺寸和复杂性存在哪些限制?

如需了解使用 KmlLayer 类显示 KML 的尺寸和复杂性限制,请参阅这里提供的文档:

Google Static Maps API 支持的标记或路径顶点的最大数量是多少?

Google Static Maps API 支持的标记或路径顶点的数量不受限制。使用自定义图标时,每个请求最多可指定五个唯一图标,但每个图标可在地图内多次使用。

请注意,Google Static Maps API URL 最多可包含大约 2,000 个字符,这会限制可以指定的标记和路径顶点的数量,实际可指定的数量取决于指定各经度/纬度对时使用的小数位数量。如需了解有关使用的小数位数量与地图精度的关系,请参阅 Wikipedia 中有关 Decimal Degrees(十进制度数)的文章。

我为何不能在中国访问 Google Maps APIs?

Google Maps APIs 在中国境内的服务域名是 maps.google.cn。该域名支持 https。在中国境内向 Google Maps APIs 发出请求时,请将 https://maps.googleapis.com 替换为 http://maps.google.cn

例如:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA

应改为:

http://maps.google.cn/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA

Google Maps JavaScript API 可随以下引导程序加载:

<script src="http://maps.google.cn/maps/api/js?key=YOUR_API_KEY"
type="text/javascript">
</script>

Google Maps SDK for iOS

我在使用 iOS 8.x 设备进行调试时出现崩溃错误。该怎么办?

如果您在使用运行 iOS 8.x 的设备进行调试时遇到问题,请按照以下步骤在所运行的 XCode 架构中停用 GPU 帧捕获:

  1. 在 XCode 中,选择 ProductSchemeManage Schemes
  2. 选择一个帧,然后选择 Edit...

  3. GPU Frame Capture 选项设置为 Disabled。请注意,可能并不是所有设备都有此选项。

发送以下问题的反馈:

此网页
Google Maps API
Google Maps API