接收 WMTS 服务器的功能

Receiving the capabilities of a WMTS Server

我正在尝试根据此示例获取 WMTS 服务器的功能:https://openlayers.org/en/latest/examples/wmts-layer-from-capabilities.html

GetCapabilities 响应如下所示:https://pastebin.com/RRVmX9Ms

使用以下代码我没有得到任何结果,没有错误或警告(控制台仍然是空的):

var parser = new ol.format.WMTSCapabilities();

fetch('WMTSCapabilities.xml').then(function(response) {
        return response.text();
      }).then(function(text) {

          var result = parser.read(text);
          var options = ol.source.WMTS.optionsFromCapabilities(result, {
              layer: 'DOP_20_C',
              matrixSet: 'ADV_25832_Quad'
          });

        console.log(options);
 });

有什么想法吗?

默认情况下,Openlayers 只能使用投影 EPSG:3857 和 EPSG:4326,而您的 WMTS 使用 EPSG:25832.

由于您不提供投影代码并且不使用 proj4js(JavaScript 库来管理不同于 EPSG:3857 和 EPSG:4326 的投影所需的投影),它库的函数 ol.proj.getTransformFromProjections 失败。

您需要在 <script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.4.4/proj4.js"></script> 之后添加以下

<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.4.4/proj4.js"></script>
<script src="https://epsg.io/4258.js"></script>
<script src="https://epsg.io/31467.js"></script>
<script src="https://epsg.io/25832.js"></script>

并用

注册proj4函数
  ol.proj.proj4.register(proj4);

在您的 <script> 街区内

可以看a demo in action来说明

PS:我调用您的 WMTS 提供的每个 EPSG 代码,以避免与其他投影出现相同的问题。