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

Я работаю над этим проектом, где мне нужно сгенерировать файлы 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 голос
/ 01 июля 2019

Две возможности, которые приходят на ум:

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

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

...