СОЗДАТЬ ТАБЛИЦУ КАК с геометрией в SpatiaLite

Oct 28 2020

Я хочу создать новую таблицу SpatiaLite на основе команды.

Например, я хотел бы преобразовать таблицу в другую систему координат:

SELECT Transform(Geometry, 3068) FROM points_berlin;

Чтобы создать новую таблицу, я бы сделал это в PostGIS:

CREATE TABLE points_berlin_3068 AS
SELECT Transform(Geometry, 3068) FROM points_berlin;

Хотя при этом создается таблица, и в таблице столько же строк, сколько во входной таблице, это не пространственная таблица. Как сделать так, чтобы геометрия отображалась в новой таблице?

Ответы

8 geozelot Oct 28 2020 at 09:27

SpatiaLite требует, чтобы вы явно регистрировали геометрические столбцы в своей экосистеме (обновление метаданных, добавление триггеров) с помощью предоставленных функций управления ; SQLite не поддерживает автоматическое обнаружение, как в системе модификаторов типов PostgreSQL .

Создав новую таблицу, как вы указали, вы должны иметь возможность «пространственно включить» ее с помощью

SELECT RecoverGeometryColumn('points_berlin_3068', 'geometry', 3068, 'POINT', 'XY');