Maps JavaScript API 团队会定期更新 API,以加入新功能、修复 bug 并提升性能。本页面介绍了可用于您的应用的 API 版本。
发布渠道和版本号
您可以在应用中指定发布渠道或版本号:
- 每周渠道用
v=weekly
指定。
此渠道每周更新一次,提供的版本是最新的。 - 季度渠道用
v=quarterly
指定。
此渠道每季度更新一次,可预测性最高。 - Beta 渠道用
v=beta
指定。
此渠道基于weekly
渠道,每周更新一次。其中包含一些额外的变更,方便进行早期测试和收集反馈。 - Alpha 渠道用
v=alpha
指定。
此渠道基于beta
渠道,每周更新一次。其中包含实验性版本,用于收集客户对原型的反馈。此渠道仅用于开发目的,不应在生产环境中使用。 - 版本号用
v=n.nn
指定。
您可以选择v=3.58
、v=3.57
、v=3.56
或v=3.55
。
版本号每季度更新一次(请参阅季度更新)。
如果您未明确指定渠道或版本,系统将为您默认采用每周渠道。如果您是从专业版方案迁移而来,未明确指定渠道或版本,则默认采用季度渠道。如果您指定的版本无效,则采用默认的渠道。
选择每周渠道
对于大多数应用,建议使用每周渠道。此渠道提供的版本是最新的,包含最新的 bug 修复和性能提升。您可以使用以下脚本标记来加载 Maps JavaScript API,从而指定每周渠道:
<script>
(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
key: "YOUR_API_KEY",
v: "weekly",
});
</script>
目前,每周渠道提供的是版本 3.58。此版本每周更新一次,以加入新功能、修复 bug 并提升性能。
11 月中旬,每周渠道提供的版本将更新至版本 3.59。届时,新版本可能会移除已弃用的功能,并/或引入向后不兼容性。
选择季度渠道
某些应用可能更适合进行数量较少但规模较大的更新,因为这会提高可预测性。这些应用应使用季度渠道。如果您希望在预期的时间修复 bug 和提升性能,请使用此方法(请参阅季度更新)。您可以使用以下脚本标记来加载 Maps JavaScript API,从而指定季度渠道:
<script>
(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
key: "YOUR_API_KEY",
v: "quarterly",
});
</script>
目前,季度渠道提供的版本为版本 3.57。在本季度,此版本将不再接收新功能、bug 修复或性能提升。我们可能会不时地在此版本中引入安全性 bug 修复。
11 月中旬,季度渠道提供的版本将更新至版本 3.58。届时,新版本将加入新功能、移除已弃用的功能并/或不再向后兼容前三个月的功能。
选择 Beta 渠道
使用 Beta 渠道可以试用新的 Beta 版功能和变更。Beta 版有完整的功能,但可能存在一些未解决的问题(请使用问题跟踪器报告问题并提供反馈)。Beta 渠道不在任何服务等级协议 (SLA) 或弃用政策的涵盖范围内,并且某些变更可能无法向后兼容早期版本。
此渠道基于 weekly
渠道,每周更新一次。
您可以使用以下脚本标记来加载 Maps JavaScript API,从而指定 Beta 渠道:
<script>
(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
key: "YOUR_API_KEY",
v: "beta",
});
</script>
选择 Alpha 渠道
使用 Alpha 渠道可以试用新的实验性功能和变更。请使用问题跟踪器报告问题并提供反馈。Alpha 渠道不在任何服务等级协议 (SLA) 或弃用政策的涵盖范围内,并且某些变更可能无法向后兼容早期版本。此渠道仅用于开发目的,不应在生产环境中使用。
此渠道基于 beta
渠道,每周更新一次。
您可以使用以下脚本标记来加载 Maps JavaScript API,从而指定 Alpha 渠道:
<script>
(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
key: "YOUR_API_KEY",
v: "alpha",
});
</script>
选择版本号
请仅在定期测试并更新应用的情况下才通过编号指定版本。这是因为随着新版本在每个季度中一一创建,编号版本最终会被删除。您可以使用以下脚本标记来加载 Maps JavaScript API,从而指定版本号:
<script>
(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
key: "YOUR_API_KEY",
v: 3.57,
});
</script>
目前,您可以指定 v=3.58
、v=3.57
、v=3.56
或 v=3.55
。
- 版本 3.58 将接收每周更新,其中包含新功能、bug 修复和性能提升。
- 版本 3.57 不会接收每周更新。
- 版本 3.56 不会接收每周更新。
- 版本 3.55 不会接收每周更新。
- 我们可能会不时地在任何版本中引入安全性 bug 修复。
- 在创建新版本时,我们可能会引入向后不兼容的变更。
11 月中旬之后,您将能够指定 v=3.59
、v=3.58
、v=3.57
或 v=3.56
。
- 版本 3.59 将接收每周更新,其中包含新功能、bug 修复和性能提升。
- 版本 3.58 将不再接收每周更新。
- 版本 3.57 将不再接收每周更新。
- 版本 3.56 将不再接收每周更新。
- 我们可能会不时地在任何版本中引入安全性 bug 修复。
- 版本 3.55 将无法再使用。任何尝试加载此版本的操作都将被忽略,系统将改而为您采用默认的渠道。
下图显示了在未来一年内每个渠道将会提供的版本。
一项更新影响了我的应用
我们更新发布渠道时,您的应用可能会受到影响。这可能是因为您的应用依赖于未载明或已弃用的功能,也可能是我们引入的 bug 或 bug 修复造成的。
您可以通过将应用重新配置为使用旧版本来暂时性地解决此问题。
- 在浏览器开发者工具中打开控制台,然后查看
google.maps.version
的值。 - 更新用于加载 API 的脚本标记,请求旧版本号。
例如,如果google.maps.version
为“3.58.2”,则在脚本标记中使用v=3.57
。
这种临时解决方案仅在有限的时间内有效。
采用临时解决方案后,您将有时间(通常为 3 到 6 个月)来更新应用,让其不再使用未载明或已弃用的功能,并解决好 bug 或 bug 修复可能带来的问题。
然后,您应该还原为使用原始脚本标记来加载 API。
季度更新
Maps JavaScript API 团队会每季度发布一个新版本,时间分别在 2 月中旬、5 月中旬、8 月中旬和 11 月中旬。下一次更新时间为 11 月中旬。新的每周渠道将提供版本 3.59,届时其他渠道也会进行更新。
每周渠道更新
每周渠道目前指向版本 3.58。
11 月中旬,每周渠道提供的版本将从版本 3.58 更新至版本 3.59。届时,新版本将加入新功能、移除已弃用的功能并/或引入向后不兼容性。在渠道更新后,您可能需要针对这些变更进行测试。
在整个季度内,新版本将每周更新一次,以加入新功能、修复 bug 并提升性能。该版本不会移除已弃用的功能,也不会引入向后不兼容性。
季度渠道更新
季度渠道目前指向版本 3.57。
11 月中旬,季度渠道提供的版本将从版本 3.57 更新至版本 3.58。更新后,此版本将加入新功能、移除已弃用的功能并/或不再向后兼容前三个月的功能。在渠道更新后,您可能需要针对这些变更进行测试。
在整个季度内,此版本不会加入新功能、修复 bug 或提升性能。该版本不会移除已弃用的功能,也不会引入向后不兼容性。
版本更新
11 月中旬,版本号将滚动更新以适应新版本的发布。
版本 3.59
新版本 3.59 将于 11 月中旬发布。发布后,与版本 3.58 相比,此版本将加入新功能、移除已弃用的功能并/或引入向后不兼容性。在更改版本号时,您应对应用进行测试。
在整个季度内,新版本将每周更新一次,以加入新功能、修复 bug 并提升性能。该版本不会移除已弃用的功能,也不会引入向后不兼容性。
版本 3.58
与版本 3.57 相比,此版本加入了新功能,移除了已弃用的功能,并/或引入了向后不兼容性。在更改版本号时,您应对应用进行测试。
11 月中旬之后,此版本将不再更新以加入新功能、修复 bug 或提升性能。该版本不会移除已弃用的功能,也不会引入向后不兼容性。
版本 3.57
与版本 3.56 相比,此版本加入了新功能,移除了已弃用的功能,并/或引入了向后不兼容性。在更改版本号时,您应对应用进行测试。
此版本将不再更新以加入新功能、修复 bug 或提升性能。该版本不会移除在其之后弃用的功能,也不会引入新的向后不兼容性。
版本 3.56
与版本 3.55 相比,此版本加入了新功能,移除了已弃用的功能,并/或引入了向后不兼容性。在更改版本号时,您应对应用进行测试。
此版本将不再更新以加入新功能、修复 bug 或提升性能。该版本不会移除在其之后弃用的功能,也不会引入新的向后不兼容性。
版本 3.55
11 月中旬之后,此版本将被删除,不能再使用。任何尝试加载此版本的操作都将被忽略,系统将改而为您采用默认的渠道。
版本支持
在任何一个季度,都有四个版本可供选择。这四个版本均受支持。
版本检查
如需进行调试,可使用 google.maps.version
属性来获取应用中 Maps JavaScript API 的当前版本。下面的代码示例会将 API 版本写入浏览器控制台。(如需详细了解浏览器控制台,请参阅在浏览器中查看错误指南。)
<!DOCTYPE html>
<html>
<head>
<title>Display Google Maps API Version</title>
</head>
<body>
<script>
function initMap() {
// Add your map here.
console.log('Google Maps API version: ' + google.maps.version);
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
defer></script>
</body>
</html>
各 API 版本的文档
开发者指南始终会对每周版本进行说明。
此外,各版本还有单独维护的参考文档:
- 3.58 版 API 参考文档(每周渠道)
- 3.57 版 API 参考文档(季度渠道)
- 3.56 版 API 参考文档
- 3.55 版 API 参考文档
- 3.0 至 3.54 版 API 已被删除。