我有一张地图(见下面的代码)OpenLayers3,使用 ol3-google-map 库,可以在 Firefox 和 Chrome 中正确显示地图,没有任何错误。但是,我尝试在 IE 上运行它(它也必须在 IE 上运行),我得到了这个错误:
该对象无法处理属性或方法“map”(从法语翻译,因此不完全是该消息)。
我没有在任何帖子中看到这个错误,这就是为什么我正在寻找一些帮助,考虑到我是 OpenLayers3 的新手。我也尝试在 Safari 上运行它,但我得到了一个不同的错误之王(被 Try/catch 块捕获),它是:
类型错误:“未定义”不是函数
此错误在“新 ol.Map”之后立即弹出。这是我的代码。
var gmap,racine, proj_source,proj_carte;
function init(referentiel,longitude,latitude,modeModification,modeImpression) {
try{
proj_carte = "EPSG:4326";
proj_source = "EPSG:3857";
creerCarte();
} catch (exception1){
console.log('ERROR1: '+exception1);
}
console.log('Map = '+gmap);
}
function creerCarte(){
try{
var centre = ol.proj.transform([-1.812, 52.443], 'EPSG:4326', 'EPSG:3857');
var googleLayer = new olgm.layer.Google();
console.log('GoogleLayer created: '+googleLayer);
var osmLayer = new ol.layer.Tile({
source: new ol.source.OSM(),
visible: false
});
var source_v = new ol.source.Vector();
var feature = new ol.Feature(new ol.geom.Point(centre));
feature.setStyle(new ol.style.Style({
image: new ol.style.Circle({
'fill': new ol.style.Fill({color: 'rgba(153,51,51,0.3)'}),
'stroke': new ol.style.Stroke({color: 'rgb(153,51,51)', width: 2}),
'radius': 20
})
}));
source_v.addFeature(feature);
var vector = new ol.layer.Vector({
source: source_v
});
gmap = new ol.Map({
view: new ol.View({
center: centre,
zoom: 12
}),
layers: [googleLayer,osmLayer,vector],
target: 'divCarte',
interactions: olgm.interaction.defaults()
});
var olGM = new olgm.OLGoogleMaps({map: gmap}); // map is the ol.Map instance
olGM.activate();
} catch (exception2) {
console.log('ERREUR2: '+exception2);
}
}
我应该补充一点,我在 ol3-google-maps 库中找到了这个示例,所以它应该可以正常工作。此致。
编辑:我已经在 JSFiddle (LINK)上创建了地图,但它不会显示。我第一次使用它是公平的,即使我已经链接了所需的文件和东西,我也可能会丢失一些东西。我正在使用 ol3-google-map 的 0.6 版,但它仍处于测试阶段。尽管如此,有些人已经成功地创建了一张好地图,所以我显然做错了什么。这是我在 Google Chrome 和 Firefox 上看到的地图链接:(LINK)。
EDIT2:我对问题在 IE 上的位置不是很精确。它发生在加载 ol.js 时,错误是这一行的“.map”之一:
Sc="EPSG:3857 EPSG:102100 EPSG:102113 EPSG:900913 urn:ogc:def:crs:EPSG:6.18:3:3857 urn:ogc:def:crs:EPSG::3857 http://www.opengis.net/gml/srs/epsg.xml#3857".split(" ").map(function(a){return new Lj(a)});