Конвертировать шейп-файл в SQL - PullRequest
1 голос
/ 08 сентября 2011

Я пытаюсь преобразовать шейп-файл в формат SQL.

Я пытался сделать это, используя shp2pgsql, но, увы, эта программа не читает файл SHAPEFILE.prj, поэтому я получаю координаты в неудобном формате.

Есть ли способ преобразовать шейп-файлы в SQL, который соответствует их спецификации PRJ?

Ответы [ 2 ]

2 голосов
/ 09 сентября 2011

В одной проекции могут быть вещи, которые вы хотите отобразить или взаимодействовать с более знакомыми значениями, такими как долгота и широта.Например, Planet OpenStreetMap использует сферический меркатор и дает вам такие значения, когда вы запрашиваете текст:

cal_osm=# select st_astext(way) from planet_osm_point limit 3;
                 st_astext                 
-------------------------------------------
 POINT(-13852634.6464924 4928686.75004766)
 POINT(-13850470.0501262 4930555.55031171)
 POINT(-13850160.8268447 4930880.61375574)
(3 rows)

Вы можете использовать st_transform, чтобы вернуть более знакомый формат, подобный этому:

cal_osm=# select st_astext(st_transform(way, 4326)) from planet_osm_point limit 3;
                 st_astext                 
-------------------------------------------
 POINT(-124.440334282677 40.4304093953086)
 POINT(-124.42088938268 40.4431868953078)
 POINT(-124.418111582681 40.4454091953076)
(3 rows)
0 голосов
/ 15 сентября 2011

Файл prj, по сути, представляет собой текстовый файл, который содержит информацию о системе координат в формате ESRI Хорошо известный текст (WKT). Не могли бы вы просто написать программу, которая использует shp2pgsql для преобразования геометрии, а затем сохранить связанную строку WKT из prj?

Примечательно: формат WKT - это принятый формат EPSG для разграничения проецируемой и географической информации о системе координат, но разные органы могут иметь разные названия для проекций или параметров проекций. PostGIS может отличаться от Oracle, что, в свою очередь, может отличаться от ESRI. Поэтому, если вы сохраняете WKT prj, убедитесь, что он находится в столбце esri_coordinate_system. PostGIS может иметь другой формат соглашения об именах для параметров.

Кроме того, на случай, если вам интересно, существует API C ++ открытого FileGDB, который позволяет вам получать доступ к информации о строках без лицензии. Он доступен в 32- и 64-разрядных версиях для Windows и Linux:

http://resources.arcgis.com/content/geodatabases/10.0/file-gdb-api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...