Типовое значение, сгенерированное в pbf, хранящееся на s3, визуализированное на mapbox-gl

Я работаю над этим проектом, где мне нужно сгенерировать файлы protobuf с помощью tippecanoe, сохранить их в контейнере s3 и визуализировать его с помощью mapbox-gl.
Я генерирую векторные листы, используя опцию -e для записи в папку по своему выбору, а также с помощью --no-tile-size-limit а также --no-tile-compression чтобы избежать какого-либо несоответствия в том, как данные ожидаются. Затем я загружаю все эти файлы в корзину s3.
Затем я пытаюсь визуализировать это, изменив код по адресу https://docs.mapbox.com/mapbox-gl-js/example/third-party/. Мой код:

var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mapbox/light-v10',
    zoom: 12,
    center: [-77,38]
});
map.on('load', function() {
    map.addLayer({
        "id": "test",
        "type": "circle",
        "source": {
            "type": "vector",
            "tiles": ["<link_to_my_cloudfront>/{z}/{x}/{y}.pbf"],
            "maxzoom": 11
        },
        "source-layer": "trees",
        "paint": {
            "circle-radius": 3,
            "circle-color": "#000000",
            "circle-stroke-width": 1
        }
    }
});

Я могу подтвердить из файла метаданных, сгенерированного tippecanoe, что идентификатор совпадает с тем, что у меня здесь.
Проблема в том, когда я загружаю карту. Ответы на запросы к файлам pbf равны 200 и content-type это также application/x-protobuf но точки просто не отображаются на карте. Я использую некоторые неправильные параметры или это просто несовместимость. Мне трудно поверить, что это последнее, потому что как tippecanoe, так и mapbox-gl разработаны mapbox, и они известны своей надежностью.

1 ответ

Решение

На ум приходят две возможности:

  1. Файлы обслуживаются в сжатом виде, но без правильного типа содержимого. Обычно это отображается в консоли с ошибкой, например "Неподдерживаемый тип записи 4".
  2. Плитки обслуживаются просто отлично, но векторный слой источника не trees, Вы можете использовать https://stevage.github.io/vector-inspector чтобы проверить это. Если вы опубликуете свой фактический URL, мы можем провести дальнейшую диагностику.

Вообще, размещение плиток на S3 довольно сложно, чтобы получить право. См. https://github.com/terriajs/boundary-tiles для одной конфигурации.

Другие вопросы по тегам