Конвертировать Big GeoJSON в topoJSON

У меня есть файл GeoJSON объемом около 1,4 ГБ, и из-за размера файла (?) Инструмент командной строки не работает. Я использую инструмент коммандой topojson, такой как:

topojson {{ input file }} >> {{ output file }}

У веб-инструментов такая же проблема (браузер просто зависает).

Какой лучший способ конвертировать этот огромный файл GeoJSON?

1 ответ

Решение

Инструмент

Использование командной строки Topojson должно работать нормально. API короток и хорошо написан, прочитайте его быстро.

Ваша команда

topojson input.json >> output.json # what does `>>` ?

Руководство Topojson говорит нам, чтобы использовать >никогда >> что значит append to the output file, Поэтому мне интересно, может ли это быть ошибкой.

Простое преобразование

topojson input.json > output.json # convert from geo to topojson.

Эта команда сохраняет все данные из входных данных geojson с одинаковым качеством и приводит к получению файла топойсона +250 МБ. Когда проецируется через d3js на стороне клиента, d3.topojson попытается преобразовать его обратно в geojson (1,4 ГБ!), чтобы d3 мог использовать его для генерирования почти 1 ГБ svg в вашем браузере. Это и самоубийство (рабочий процесс рухнет), и бессмысленное: топойсон призван облегчить вашу жизнь, упрощая ГИС-данные, чтобы соответствовать низким возможностям и потребностям веб-браузеров. HD-экраны имеют размер 1980*1280, данные ГИС намного выше этого уровня и нуждаются в упрощении.

Упростить команду

Используйте командную строку topojson, чтобы упростить ваши огромные данные geojson. Общее упрощение через -q 1e4:

  topojson -q 1e4 \
      -o out.json \
      -- input.geojson

Таким образом, выходной файл будет иметь качество 10.000 псевдопикселей, намного ниже, чем ваш ввод, но достаточно далеко для данных на стороне клиента, и будет примерно 1 МБ или меньше.

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