OpenLayers 3.5.0でVector APIが変更されてた
2015.05.31 · 422 words · 1 minute read
久しぶりにOpenLayers 3を使おうと思ったら、昔のコードのままでol.jsを差し替えだけでは動きませんでした。
昨年10月に触ったときは3.0.0だったOpenLayers 3も、いつの間にか3.5.0になっていたので色々と機能追加や変更があったようです。
特に今回引っ掛かったのはGeoJSONの読み込みで、リリースノートを見ると、ol.source.*(ol.source.GeoJSONなど)が廃止されてol.source.Vectorに統一、formatでこれを指定することになったらしい。
以下、作ってる途中のコードの切れっ端ですが…
3.4.0まで
var smallScalePoints = new ol.layer.Vector({
source: new ol.source.GeoJSON({
url: 'smallScalePoints.json',
projection: 'EPSG:3857'
}),
style: styleFunction,
minResolution: 1000,
maxResolution: 20000
});
3.5.0以降
var smallScalePoints = new ol.layer.Vector({
source: new ol.source.Vector({
url: 'smallScalePoints.json',
format: new ol.format.GeoJSON(),
}),
style: styleFunction,
minResolution: 1000,
maxResolution: 20000
});
projectionの指定も必要なくなり、読み込み時にviewのprojectionとソースのprojectionが一致してない場合は変換されるようになったみたい。