Использование PostGIS с существующей таблицей данных с десятичными координатами

У меня есть файл данных в формате CSV, который имеет некоторые данные, как это : поле id / плитка данных / описание данных / долгота / широта

У меня уже установлены PostgreSQL и PostGIS, и я хотел бы использовать PostGIS для создания запроса, который вызовет все записи (из таблицы выше), которые находятся в пределах указанного расстояния от lat/long местоположения.

проблема в том, что я не знаю, как начать. Я просто импортирую свой CSV-файл в PostgreSQL база данных и начать использовать функции PostgreSQL и PostGIS, как только у меня есть CSV-файл, преобразованный в таблицу PostgreSQL?

есть ли дополнительные шаги, чтобы заставить таблицу работать с функциями PostGIS?

каковы были бы правильные шаги для этого? Я действительно ценю вашу помощь!

3 ответов


для работы с PostGIS необходимо импортировать эти скрипты в рабочую базу данных.

после выполнения этого шага настройте таблицу и добавьте в нее столбец PostGIS

SELECT AddGeometryColumn('yourtable', 'columnname', 4269, 'POINT', 2 );

последние 3 значения-SRID, тип и измерение. Я просто предполагаю, что это то, чего ты хочешь. Вероятно, вам нужно настроить SRID, но это должно быть хорошо.

вы можете установить в своем импорте / обновлении / все, что вы выбрали для добавления геометрии как

ST_Transform(ST_PointFromText('POINT(-85.45899 32.1337)', 4326));

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


Мне просто нужно было решить ту же задачу и сделать что-то похожее на решение DrColossos... Вероятно, вы уже закончили с этим, но я просто хотел добавить это на случай, если кто-то загуглит эту проблему (как и я): нет необходимости писать сценарий для создания геометрии из полей lat/lon, вы можете использовать простую объединенную строку:

UPDATE mytable
SET the_geom = ST_PointFromText('POINT(' || x ||' '|| y ||')', 4326)

Это интересный вопрос :-)

вы знаете, в какой системе координат находятся лат-Лоны?

Я задаю этот вопрос, потому что он имеет отношение к тому, как вы храните данные.

Что вам нужно сделать, это создать столбец в дополнение к тем в CSV-файле, которые содержат объект геометрии PostGIS типа POINT.

затем я бы импортировал данные CSV в стандартные столбцы в таблице, а затем запустил обновление SQL для создания точечных данных из каждая запись и сохраните ее в столбце "созданная геометрия".

в этот момент Вы должны иметь возможность использовать функции PostGIS для доступа и предикатных запросов к данным.

Это все своего рода мета, что я говорю выше, потому что есть сложности в отношении используемых данных. Вам нужно будет знать систему пространственной привязки, используемую с данными изначально.