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 km 離れており、ズーム効果がうまく機能しません。
例外は、圧縮されていない 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 をサポートしていますか?
Web サイトで、彼らはサポートするブラウザーの能力が低いと述べています。
は、すべてのマッピングのニーズに対応する 3D 機能とパフォーマンスの向上を最新のブラウザーにもたらすことを約束します。OpenLayers 3.0 は WebGL を提供しますが、機能の劣るブラウザーでは機能が低下します。
質問2
その例外を回避するための簡単な修正はありますか。アイコンが適切な場所に表示される限り、ズーム効果についてはあまり気にしません。
テストには IE で F12 ツールを使用し、ドキュメント モードとユーザー エージェント文字列を IE 8 に設定します。
ありがとうございました