OpenLayers v3 にバグがあります (V3 のバージョンに関係なく)。ol.interaction.DragBox をマップに追加しようとしましたが、ドラッグを開始すると ol.js がクラッシュし、次のメッセージが表示されます。
ol.js:201 キャッチされていない TypeError: null のプロパティ 'f' を読み取れません
アレイで。(ol.js:201) で zm (ol.js:245) で bq (ol.js:370) で aq.ve (ol.js:371) で WlKn (ol.js:453) で oi.f ( ol.js:142)
これは、v3.9.0 で使用した場合です。コードは次のとおりです。
var vectorSource = new ol.source.Vector({
url: 'https://openlayers.org/en/v4.1.0/examples/data/geojson/countries.geojson',
format: new ol.format.GeoJSON()
});
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Vector({
source: vectorSource
})
],
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
});
var dragBox = new ol.interaction.DragBox({
condition: ol.events.condition.platformModifierKeyOnly
});
map.addInteraction(dragBox);
ここでフィドルを見つけることができます: http://jsfiddle.net/3svztkot/2/
ここでは、まったく同じコードで v4.1.0 のフィドルを見つけることができますが、ここでは完全に機能しています。: http://jsfiddle.net/872cuk52/2/
これに関する既知のバグはありますか? 私のような以前のケースを検索しましたが、成功しませんでした。ご協力いただきありがとうございます !
問題が見つかりました。これが問題の「理由」です。後で他の人に役立つかもしれません。
Openlayers v3 では、次のようにインタラクションにスタイルを設定する必要があります。
var dragBox = new ol.interaction.DragBox({
condition: ol.events.condition.shiftKeyOnly,
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: [0, 0, 255, 1]
})
})
});
その後、動作します。OpenLayers 4.1.0 は、少なくともインタラクションのデフォルト スタイルを定義しているようで、クラッシュしません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加