Использование 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 для доступа и предикатных запросов к данным.
Это все своего рода мета, что я говорю выше, потому что есть сложности в отношении используемых данных. Вам нужно будет знать систему пространственной привязки, используемую с данными изначально.