Я хотел бы сделать ТОЧКУ, используя столбцы долготы и широты существующей таблицы .
Вот ссылка на документацию ST_MakePoint .
Вот мой стол:
CREATE TABLE sysinst.bio (
oid INTEGER PRIMARY KEY,
longitude FLOAT,
latitude FLOAT,
geom GEOMETRY(POINT, 26913)
);
Добавление столбца геометрии:
SELECT AddGeometryColumn ('sysinst', 'bio', 'geom', 26913, 'POINT', 2);
Вот мой запрос:
UPDATE sysinst.bio SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 26913);
Нет возвращенной ошибки, хотя точки отображаются неправильно при просмотре в QGIS.
Для (-97.5959, 21.1922)
, я получаю(-109.4896, 0.0002)
Какие-либо предложения?
Я готов сделать это более эффективно, если есть более простой способ.
Ответы:
Возможно, я не понимаю, но вы, кажется, вводите координаты долготы и широты (-97, 21) в градусах в CRS, основанный на UTM и использующий метры. Если вы объявляете это как SRID 26918, тогда значения long / lat должны быть в этом CRS. Если значения Long / Lat указаны в градусах, вам нужно будет создать геометрию как ST_SetSRID (MakePoint (...), 4326), а затем преобразовать слой в 26913. Итак, собрав все вместе, если вам нужен слой в 26913, но ваши столбцы долготы / широты в градусах, с CRS 4326, затем
источник