无法在IE 9中加载谷歌地图Geojson数据

时间:2015-04-23 19:33:54

标签: javascript google-maps google-maps-api-3 internet-explorer-9 geojson

尝试使用Javascript在IE9中的地图中加载GeoJson数据时出现以下错误

Object doesn't support this property or method

我的方法调用如下所示

myMap.data.loadGeoJson('https://storage.googleapis.com/maps-devrel/google.json');

我认为它与.data调用有关,因为它发生的唯一行是包含.data的行。 “myMap”变量已初始化并设置为谷歌地图,并且一切正常,只是当我尝试加载它破坏的geojson时。

有谁知道为什么它会在IE9中破解?

我还使用谷歌演示页面附上了Browserstack对类似错误的一个镜头......

IE9 Geojson Bug

更新:我直接与谷歌开发人员交谈,这似乎是目前IE9的一个错误(我也相信8),加载geojson不起作用。如果有人确实找到了解决方法,那将非常感激。即使只是确切知道它为什么会破裂也会很好......

2 个答案:

答案 0 :(得分:1)

我在IE上遇到了同样的问题。

试试这个:

打开IE,打开"工具",点击"兼容性视图设置"然后取消选中"在兼容性视图设置"中禁用Intranet站点然后尝试打开你的页面。

这对我有用。

答案 1 :(得分:0)

示例代码从不同的服务器(跨域)加载GeoJSON。

问题是.loadGeoJson()正在使用XMLHttpRequest来加载数据,而在IE8和IE9上,这并不是跨域工作。

这是"访问被拒绝"您可以在控制台中看到错误。

尝试将GeoJSON放在同一台服务器上。

或者,如果您确实需要加载GeoJSON跨域并支持IE9,请使用ajax库和.addGeoJson()方法。使用jQuery看起来像这样:

$.ajax({
    url: myURL,
    dataType: 'json',
    success: function(geojson) {
        myMap.data.addGeoJson(geojson);
    }
    // Other options to configure for jsonp, etc.
});