Поддержка Mapbox WMTS в OpenLayers - PullRequest
0 голосов
/ 30 ноября 2018

Я создал стиль Mapbox с помощью Mapbox Studio и настроил его для использования через WMTS.URL-адрес стиля:

https://api.mapbox.com/styles/v1/username/styleId/wmts?access_token=token

, где styleId, username и token - переменные поля.

Когда я пытаюсь создатьСлой WMTS в OpenLayers, используя указанный выше URL, tileGrid успешно создан с использованием createFromCapabilitiesMatrixSet, но я получаю ошибку ответа Invalid query param layer из Mapbox.

После некоторого исследования я заметил, что:

  1. Ошибка ответа сохраняется для всех параметров запроса, которые добавляются из OpenLayers при создании функции загрузки плитки.Похоже, что Mapbox не распознает их должным образом.
  2. Сайт OpenLayers и Mapbox также приводят примеры использования слоев XYZ для интеграции между ними.

Итак, это какой-то вид неподдерживаемогоособенность OpenLayers или мне нужно что-то дополнительно настраивать при создании WMTS OpenLayers?

1 Ответ

0 голосов
/ 01 декабря 2018

Гораздо проще установить в качестве стандартного слоя OpenLayers XYZ, используя

  url: 'https://api.mapbox.com/styles/v1/username/styleId/tiles/{z}/{x}/{y}?access_token=token'

, как в примерах.

Mapbox обеспечивает поддержку WMTS для совместимости с некоторыми другими системами.Он также может быть использован в OpenLayers, настройка будет

  var parser = new ol.format.WMTSCapabilities();
  fetch('https://api.mapbox.com/styles/v1/username/styleId/wmts?access_token=token').then(function(response) {
      return response.text();
  }).then(function(text) {

      var layer = new ol.layer.Tile({
          source: new ol.source.WMTS(
              ol.source.WMTS.optionsFromCapabilities(parser.read(text), {
                  layer: 'styleId',
                  matrixSet: 'EPSG:3857'
              })
          )
      });

      ....
      ....
      ....
      ....

  });

Оба метода в конечном итоге загрузят одинаковые URL-адреса тайлов, поэтому нет никакого преимущества в использовании WMTS, где поддерживается XYZ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...