2017-01-11 8 views
0

さまざまなズームレベルでジオメトリが異なるol.source.VectorTileが消費するGeoJSONから返される機能があります。 ol.layer.VectorTileを使用している場合、ジオメトリは異なるズームレベルから提供されたジオメトリを更新または使用するようには見えません。OpenLayers 3はVectorTileを使用して各ズームで新しいジオメトリを強制的に使用できます

相対ズームレベルでフィーチャジオメトリを強制的に再描画する方法はありますか?

これまでのところ、私はol.style.Styleのジオメトリパラメータを使いこなしていましたが、それでもまだ喜んでいないかどうかを確認することができます。

let map = map = new ol.Map({ 
    controls: controls, 
    loadTilesWhileAnimating: true, 
    loadTilesWhileInteracting: true, 
    target: config.target, 
    interactions: ol.interaction.defaults({ 
    altShiftDragRotate: false, 
    pinchRotate: false 
    }), 
    view: config.view 
}); 

let tileLayer = new ol.layer.Tile({ 
    source: new ol.source.XYZ({ 
    url: config.tileUrl, 
    tilePixelRatio: 2, 
    projection: config.projection 
    }); 
}); 
map.addLayer(tileLayer); 

let vectorLayer = new ol.layer.VectorTile({ 
    projection: config.projection, 
    renderMode: 'vector', 
    source: new ol.source.VectorTile({ 
    projection: config.projection, 
    format: new ol.format.GeoJSON(), 
    url: config.vectorUrl, 
    tileGrid: ol.tilegrid.createXYZ({ 
     extent: config.extent 
    }) 
    }), 
    style: config.styler 
}); 
map.addLayer(vectorLayer); 
+0

生き生きとした例を教えてください。 "config"の要素がわからない – Icarus

+0

'tileGrid'の設定は正しいですか?ベクトルタイルの全体点は、異なるズームレベルで異なるジオメトリが使用されるためです。また、タイルのGeoJSONを再度チェックして、期待どおりの形状が得られるかどうかを確認してください。 – ahocevar

答えて

0

ジオメトリが正しいことを確認してください。得られたデータが正しい形状を持たないことがわかったので、予想通りに表示されませんでした。