Я посетил вопрос, показанный в Как конвертировать из PostgreSQL в формат GeoJSON?
Этот PostGIS SQL преобразует всю таблицу в результат GeoJSON:
SELECT row_to_json(fc) AS geojson FROM
(SELECT 'FeatureCollection' As type, array_to_json(array_agg(f))
As features FROM
(SELECT
'Feature' As type,
ST_AsGeoJSON((lg.geometry),15,0)::json As geometry,
row_to_json((id, name)) As properties
FROM imposm3_restaurants As lg) As f ) As fc;
Я обнаружил, что в результатах мы не получаем названия полей.
Я ожидаю, что выход
"properties": {"id": 6323, "name": "Ресторан Синая"
но фактический результат
"properties": {"f1": 6323, "f2": "Ресторан Синая"
Я прочитал спецификацию инструкции row_to_json, поэтому решил изменить последнюю инструкцию row_to_json
SELECT row_to_json(fc) AS geojson FROM
(SELECT 'FeatureCollection' As type, array_to_json(array_agg(f))
As features FROM
(SELECT
'Feature' As type,
ST_AsGeoJSON((lg.geometry),15,0)::json As geometry,
row_to_json((lg)) As properties
FROM imposm3_restaurants As lg) As f ) As fc;
Но теперь геоджон извлекает также геометрическое поле как свойство.
Я имею в виду, что в результатах я могу видеть геометрию, отформатированную в формате геойсона и снова в формате PostGIS (эта вторая геометрия не нужна, я мог бы тратить ее впустую), поэтому, если первый результат равен 1200 КБ, второй будет около 2300Kb.
Что я могу сделать? любые альтернативы
row_to_json((id, name)) As properties
или
row_to_json((lg)) As properties
Я тоже пробовал такие вещи, как
row_to_json(('id',lg.id ,'masa',lg.masa ,'parcela',lg.parcela)) As properties
и любые другие, но без результатов (только ошибки SQL)
Большое спасибо