Как загрузить большой файл geojson в mapbox? - PullRequest
0 голосов
/ 16 декабря 2018

У меня большой файл geoJson (почти 700 МБ), и мне нужно загрузить его в мою карту с помощью сервера mapbox и openmaptiles.Мне нужен внешний файл, поэтому я не могу использовать Mapbox Studio для загрузки и преобразования данных.

Я не могу использовать geojson2mvt , так как файл большой и превышаеткуча памяти.Итак, я использовал Tippecanoe, чтобы преобразовать его в .Mbtiles.Тем не менее, я не могу использовать этот формат в mapbox.Я выполняю следующие шаги, чтобы преобразовать Mbtiles в .mvt:

  1. Установить tippecanoe (https://github.com/mapbox/tippecanoe) и сгенерировать mbtiles:

    tippecanoe -o mbt_file.mbtiles -z18 input_file.geojson -pC

  2. Установите mb-util (https://github.com/mapbox/mbutil) и конвертируйте mbtiles в плитки MVT:

    ./mbutil/mb-util mbt_file.mbtiles mvt_dir --image_format=pbf

  3. Все файлытеперь в правильном формате, но вы должны изменить их расширение:

    find mvt_dir -iname "*.pbf" -exec bash -c 'mv "$0" "${0%\.pbf}.mvt"' {} \;

файл был успешно преобразован в .mvt, но когда я пытаюсьзагрузить его в мою карту, он отображает следующую ошибку:

blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:11754 Uncaught Error: Unimplemented type: 3
    at No.skip (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:11754)
    at No.readFields (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:11574)
    at new Za (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:9948)
    at $a (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:9964)
    at No.readFields (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:11573)
    at new VectorTile (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:9978)
    at blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:14432
    at XMLHttpRequest.T.r.onload (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:416)

Может кто-нибудь помочь мне исправить это? или есть ли способ отобразить мой большой файл geojson?

Спасибо!

1 Ответ

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

Как упоминалось в @Caramiriel, тип Unimplemented: 3 обычно означает, что ваши плитки сжаты, а Mapbox GL JS ожидает несжатые плитки.Просто добавьте заголовок Content-Encoding: gzip и дайте браузеру распаковать на лету.

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