3

私は現在、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 ページではそうではない理由について何か考えはありますか? 何か不足していますか?

どうもありがとう !

4

0 に答える 0