1

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 に設定します。

ありがとうございました

4

1 に答える 1