Конвертировать 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 МБ или меньше.