我正在尝试在 OpenLayers 3 地图上添加一个图标,但我注意到我的代码在 IE 8 中不起作用。
这是我的代码:
var vectorSource = new ol.source.Vector({
//create empty vector
});
var iconFeature = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([longitude,lat], 'EPSG:4326', 'EPSG:3857')),
name: 'Null Island ',
population: 4000,
rainfall: 500
});
vectorSource.addFeature(iconFeature);
//create the style
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 0.75,
src: 'http://ol3js.org/en/master/examples/data/icon.png'
}))
});
//add the feature vector to the layer vector, and apply a style to whole layer
var vectorLayer = new ol.layer.Vector({
source: vectorSource,
style: iconStyle
});
map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
vectorLayer
],
view: new ol.View2D({
center: ol.proj.transform([longitude, lat], 'EPSG:4326', 'EPSG:3857'),
zoom: 12
}),
target: 'map'
});
当我在地图初始化过程中不使用时也不例外,vectorlayer
但是地图在它应该在的位置旁边大约 30 公里处居中并且缩放效果效果不佳。
未压缩的 ol.js 的第 2421 行是个例外。goog.asserts.ENABLE_ASSERTS
等于true
goog.asserts.fail = function(opt_message, var_args) {
if(goog.asserts.ENABLE_ASSERTS) {
throw new goog.asserts.AssertionError("Failure" + (opt_message ? ": " + opt_message : ""), Array.prototype.slice.call(arguments, 1));
}
};
问题 1
OpenLayers 3 是否支持 IE 8?
在网站上,他们提到他们支持功能较弱的浏览器
承诺为最新的浏览器带来 3D 功能和更高的性能,以满足所有映射需求。OpenLayers 3.0 将提供 WebGL,同时在功能较弱的浏览器中很好地降级。
问题2
是否有一个简单的解决方法来避免该异常。只要图标出现在合适的位置,我并不介意缩放效果。
我在 IE 中使用 F12 工具进行测试,并将文档模式和用户代理字符串设置为 IE 8
谢谢