Как получить GDAL/ogr2ogr для вывода GeoJSON в виде функции для каждой строки вместо отформатированной коллекции FeatureCollection?
Я пытаюсь преобразовать некоторые очень большие шейп-файлы в GeoJSON, чтобы я мог запустить их через tippecanoe и создать.mbtiles для загрузки в Mapbox Studio для размещения и стилизации.
Я могу использовать ogr2ogr для создания своего файла GeoJSON, но он выводит FeatureCollection с хорошим форматированием. Мне нужен файл.json с одной функцией в строке, чтобы я мог использовать функцию "Параллельная обработка ввода" в Tippecanoe и ускорить создание моих.mbtiles.
Вопрос 1: Есть ли способ сделать это просто с помощью ogr2ogr? Я не могу найти соответствующую опцию в документации драйвера GDAL GeoJSON.
Вопрос 2. Альтернативно, может ли ogr2ogr выводить текстовую последовательность GeoJSON вместо файла FeatureCollection?
3 ответа
Q1. Что ж, вы можете извлечь отдельные функции с помощью инструмента UNIX - jq.
jq --compact-output ".features" input_featurecollection.geojson > output_features_only.geojson
Это будет иметь каждую запись как отдельную функцию geojson
Q2 вы можете передать свой входной файл geojson этой команде и повторить вывод.
Если вы создадите массив идентификаторов или любого другого атрибута в своем шейп-файле, вы можете перебрать этот список и использовать опцию ogr2ogr --where для экспорта объектов по одному. Смотрите также этот пример https://gis.stackexchange.com/questions/35296/how-to-use-where-sql-in-an-ogr2ogr-loop-in-gdal-ogr-bash
Вы можете использовать
ogr2ogr
для вывода последовательности geojson, как вы предложили в вопросе 2 @craigsnyders:
ogr2ogr -f GeoJSONSeq -t_srs EPSG:4326 output.json input.shp