私は現在、OpenLayers を含む概念実証を行っており、問題に直面しています。
この公式サンプルに従って、ラスター レイヤーと WFS レイヤーを含むマップを読み込もうとしています: http://openlayers.org/en/latest/examples/vector-wfs.html
このサンプルを EPSG:4326 で正常に動作させることができます。まったく同じコードを使用します。変更点は次のとおりです。
- vectorSource.url = 私の WFS を取る
- raster.Source = BingMaps の代わりに OMS
- サンプルの EPSG:3857 の代わりに EPSG:4326
JavaScript コードは次のとおりです。
var vectorSource = new ol.source.Vector({
format: new ol.format.GeoJSON(),
url: function (extent) {
return 'http://localhost:8090/geoserver/ANF/ows?service=WFS&' +
'version=1.1.0&request=GetFeature&typename=ANF:PARC_BIODEM_SP&' +
'outputFormat=application/json&srsname=EPSG:4326&' +
'bbox=' + extent.join(',') + ',EPSG:4326';
},
strategy: ol.loadingstrategy.bbox
});
var vector = new ol.layer.Vector({
source: vectorSource,
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'rgba(0, 0, 255, 1.0)',
width: 2
})
})
});
var raster = new ol.layer.Tile({
source: new ol.source.OSM()
});
var map = new ol.Map({
layers: [raster, vector],
target: document.getElementById('map'),
view: new ol.View({
center: [6.13, 49.845],
projection: 'EPSG:4326',
minZoom: 10,
maxZoom: 28,
zoom: 10
})
});
ここで、マップを EPSG:2169 で表示したいと思います。
新しい投影法を WFS レイヤー (vectorSource) に設定すると、マップに表示されなくなります。そして、マップ ビュー自体に新しい投影法を設定すると、HTML ページは白のままになり、デバッガーは次のエラーを表示します: "ol.js:68 Uncaught TypeError: Cannot read property 'H' of undefined"
これは私が欲しい JavaScript コードですが、うまくいきません:
var vectorSource = new ol.source.Vector({
format: new ol.format.GeoJSON(),
url: function (extent) {
return 'http://localhost:8090/geoserver/ANF/ows?service=WFS&' +
'version=1.1.0&request=GetFeature&typename=ANF:PARC_BIODEM_SP&' +
'outputFormat=application/json&srsname=EPSG:2169&' +
'bbox=' + extent.join(',') + ',EPSG:2169';
},
strategy: ol.loadingstrategy.bbox
});
var vector = new ol.layer.Vector({
source: vectorSource,
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'rgba(0, 0, 255, 1.0)',
width: 2
})
})
});
var raster = new ol.layer.Tile({
source: new ol.source.OSM()
});
var map = new ol.Map({
layers: [raster, vector],
target: document.getElementById('map'),
view: new ol.View({
center: [6.13, 49.845],
projection: 'EPSG:2169',
minZoom: 10,
maxZoom: 28,
zoom: 10
})
});
私の WFS レイヤーは GeoServer から取得され、データは Oracle データベースから取得されます。データは EPSG:2169 で十分に利用できると確信しています。GeoServer によると、ネイティブ SRC は EPSG:2169 であり、OpenLayers プレビュー (常に GeoServer から) はレイヤーをよく示しています。
私の WFS が EPSG:2169 (OpenLayers プレビュー) の GeoServer からうまく動作しているように見えるのに、OpenLayers を使用した Web ページではそうではない理由について何か考えはありますか? 何か不足していますか?
どうもありがとう !