Google Maps API v3 BrowserIsCompatible

问题描述:

我正在更新一些使用v2 API for Google Maps的旧代码。在domready中,它会使用像Google Maps API v3 BrowserIsCompatible

if(google.maps.BrowserIsCompatible()){ 
// load the map 
} 

声明现在,我加载了谷歌地图API V3,我得到一个错误

google.maps.BrowserIsCompatible不是一个函数

我已经阅读了谷歌v3 api组中的大量主题,但还没有找到明确的答案,说明新函数的调用方式或如何引用它。

GBrowserIsCompatibile没有把它变成第三版的API,所以你必须要write this code yourself

Here is a list v3支持的浏览器。

+0

谢谢cannonade!看起来很奇怪,他们会放弃这一点,但我相信他们有一个很好的理由。 – julio 2010-08-19 03:01:28

+0

@ julio是的,我不确定。他们从v3中删除了一些不是核心地图功能的东西(如Http请求封装器的东西)。我在Google有一个朋友,下次见她时我会问她:)。 – RedBlueThing 2010-08-19 05:12:45

+0

列表不太正确 - ** google api v3似乎可以在IE 6.0中工作。** – TMS 2011-11-23 12:42:42

在V3 as of Google's V2 to V3 migration doc中没有这种方法的等价物。

相反,有效的方式来实现这个测试是:

if (window.JSON) { 
    // load google maps api async (so google.maps object is available for further use) 
} 

这是因为所有的browsers that Google Maps API V3 support共享相同的特殊性:他们是第一个版本(通过其供应商),其支持JSON本身。 看到这个screenshot taken from caniuse.com

enter image description here

例外:

火狐3.0和BlackBerry浏览器6不支持JSON,而是由谷歌地图API的支持。所以规则上述将排除两者,这是这样一个简单的测试可接受的缺点(相比于用户代理嗅探基于代码)

说明:

此测试并不适用于“谷歌.maps'对象,但在脚本加载时。 这可以防止脚本成功加载但“google.maps”对象无法使用的情况(例如IE6)。