簡體   English   中英

將OpenLayers從4.6.5升級到5.3.0后,TileWMS沒有顯示

[英]TileWMS' not showing after upgrading OpenLayers from 4.6.5 to 5.3.0

我有一個OpenLayers 4.6.5應用程序,其中顯示了地圖,並且在其上面還可以選擇打開和關閉一些疊加層。

疊加層類型為TileWMS,並且看起來效果很好。

最初,我像這樣遠程調用了OpenLayers:

<script src="https://openlayers.org/en/v4.6.5/build/ol.js" type="text/javascript"></script>

但是我需要將其存儲在本地,同時升級到5.3.0。 因此,我下載了v5.3.0-dist.zip,添加了文件並將其替換為:

<script src="./lib/ol/ol.js"></script>

除了TileWMS之外,其他所有內容似乎都可以正常工作,而后者根本沒有顯示。

據我所知, 升級說明中沒有任何內容,表明某些內容已經更改。

我已嘗試排除JavaScript不必要的部分,所以請告知我是否遺漏了太多內容:

var token = "123456thisisnotmytoken";

var myProjection = new ol.proj.Projection({
    code: projCode,
    units: "m",
    extent: [120000, 5661139.2, 1378291.2, 6500000]
});

var projection = GetProjection(myProjection);
var projectionExtent = projection.getExtent();

const map = new Map({
    target: "map",
    layers: [
        new Group({
            "title": "Base maps",
            layers: [
                new ol.layer.Tile({...
                }),
                new ol.layer.Tile({...
                })
            ]
        }),
        new Group({
            "title": "Overlays",
            layers: [
                new ol.layer.Tile({
                    title: "Matrikel",
                    type: "overlay",
                    visible: true,
                    opacity: 1.0,
                    zIndex: 1000,
                    source: new ol.source.TileWMS({
                        url: "https://services.kortforsyningen.dk/mat?token=" + token,
                        params: {
                            "LAYERS": "MatrikelSkel,Centroide",
                            "VERSION": "1.1.1",
                            "TRANSPARENT": "true",
                            "FORMAT": "image/png",
                            "STYLES": ""
                        },
                    })
                }),
                new ol.layer.Tile({
                    title: "Hillshade",
                    type: "overlay",
                    visible: false,
                    opacity: 1.0,
                    zIndex: 900,
                    source: new ol.source.TileWMS({
                        url: "https://services.kortforsyningen.dk/dhm?token=" + token,
                        params: {
                            "LAYERS": "dhm_terraen_skyggekort_transparent_overdrevet",
                            "VERSION": "1.1.1",
                            "TRANSPARENT": "true",
                            "FORMAT": "image/png",
                            "STYLES": ""
                        },
                    })
                })
            ]
        }),
    ],
    view: view
});

map.addControl(new ol.control.LayerSwitcher());

我知道第二個TileWMS默認是隱藏的,但是我嘗試在LayerSwitcher中將其打開和關閉,該操作在升級之前就起作用了。

任何建議pn我如何解決這個問題?

問題出在我看來是投影!

我從

GetProjection(“ EPSG:25832”)

myProjection

所以現在看起來像這樣:

var view = new ol.View({
  center: [606985, 6231744], // EPSG:25832
  zoom: 2,
  resolutions: [1638.4, 819.2, 409.6, 204.8, 102.4, 51.2, 25.6, 12.8, 6.4, 3.2, 1.6, 0.8, 0.4, 0.2],
  projection: myProjection,
  minZoom: 2,
})

myProjection看起來像這樣:

var projCode = "EPSG:25832";
var myProjection = new ol.proj.Projection({
  code: projCode,
  units: "m",
  extent: [120000, 5661139.2, 1378291.2, 6500000]
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM