2013-09-24 4 views
2

Я переношу всю информацию в систему PostGIS с полной информацией о тысячах спортивных пространств. Для всех этих пространств я получил значения широты и долготы, а для PostGis требуется значение геометрии для этого, этот столбец уже находится в моей таблице «Местоположение».Postgis longitude, широта геометрии postgresql

SRID этого приложения 23030.

Я искал, как вычислить значение геометрии от долготы и широты, и я считаю, что:

update location set point=ST_GeomFromText('POINT('|| longitud || ' ' || latitud ||')',23030); 
UPDATE georrepositorio.geometria SET point = ST_SetSRID(ST_Point(longitud, latitud),23030); 
UPDATE georrepositorio.geometria SET POINT = ST_SetSRID(ST_MakePoint(longitud,latitud),23030); 

Я всегда получаю строку, как : "0101000020F6590000894327550B97114104EA99EA599D4E41"

В веб-приложении, которое я создаю, если я отмечаю точку, чтобы найти место, он вставляет в таблицу «местоположение» строку вроде: "0101000020F659000000000020DFB115C00000008053244240", которая похожа на строку, которую я получил с помощью этих функций.

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

Кто-нибудь знает, как рассчитать геометрию с широты и долготы, пожалуйста? ничего

ответ

2

Во-первых, геометрии хранятся как двоичные, которые вы видите как «0101000020 ...», который называется well-known binary (WKB). Для геометрии POINT вы можете извлечь координатные ординалы с помощью ST_X(point) для долготы и ST_Y(point) для широты. Вы также можете использовать ST_AsText(point) для удобного для восприятия WKT представления.

EPSG:23030 - проецируемая пространственная система отсчета (SRS) с восточными и северными участками с единицами измерения. Но если ваши координаты являются градусами широты и долготы, вам нужно использовать другую SRS, такую ​​как EPSG:4326. После правильного сохранения данные могут быть запрограммированы для приложения с использованием ST_Transform(point, 23030).

+0

спасибо Майку! Мне это нравилось –

Смежные вопросы