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