Mapbox - неверный порядок тайлов - PullRequest
0 голосов
/ 11 января 2020

Я работаю на своем собственном сервере плиток. У меня странные проблемы с отображением плиток в правильном порядке. Плитки были созданы с использованием данных OSM. Когда я использую tileserver-gl-light в качестве сервера плиток, все кажется нормальным, но когда я пытаюсь обслуживать плитки собственным сервером, они не отображаются в правильном порядке после масштабирования. Я использую ту же страницу для рендеринга карты, поэтому думаю, что проблема связана с сервером. Плитка выглядит так (Увеличить 1):

enter image description here

Я ценю любую помощь. С наилучшими пожеланиями, Марек

Ответы [ 2 ]

0 голосов
/ 12 января 2020

Установите схему "tms" при добавлении слоя в mapbox-gl следующим образом:

    map.addLayer({
      id: 'tms_layer',
      type: 'raster',
      source: {
        type: 'raster',
        tiles: [
          'https://tile-server/{z}/{x}/{y}.png'
        ],
        scheme: 'tms'
      },
    });

Это происходит потому, что некоторые серверы плиток используют схему OSGeo spe c.

Более подробная информация здесь: https://docs.mapbox.com/mapbox-gl-js/style-spec/#sources -растер-схема

0 голосов
/ 11 января 2020

Я не знаю причину, по которой это необходимо, но нужно было исправить значение оси y перед извлечением данных из базы данных mbtiles.

Если ваш URL-адрес плиток выглядит следующим образом: http://host:port/data/{z}/{x}/{y}, вам необходимо пересчитать значение y перед извлечением данных плитки в формате pbf из базы данных:

y = pow(2, z) - 1 - y

В спецификации mbtiles нет упоминаний об этом, но я нашел решение в Tileserver- PHP исходный код

...