#ruby #rubygems #postgis #shapefile #map-projections
#ruby #rubygems #postgis #шейп-файл #карта-проекции
Вопрос:
Я создаю систему, которая позволяет пользователям загружать шейп-файлы. Затем он преобразует эти шейп-файлы в PostGIS, используя shp2pgsql
. Для этой команды требуется идентификатор SRS в виде кода EPSG.
Итак, мне нужен ruby gem, который может считывать файл шейп *.prj
-файла (который содержит систему проекции / пространственной привязки, закодированную как WKT) и возвращать соответствующий идентификатор SRS.
Ответ №1:
Я не уверен, как привязки Ruby работают с GDAL, но OSR (часть GDAL) может извлекать либо проекцию WKT (текст), либо SRID (целое число).
Посмотрите на эту гис.SE ответ для решения с помощью Python / GDAL / OSR.
Обновление: оказывается, привязки Ruby работают хорошо, как и ожидалось. Чтобы начать работу, попробуйте этот код:
require 'gdal/osr'
prj_fname = 'myfile.prj'
prj = File.open( prj_fname )
# Import the WKT from the PRJ file
srs = Gdal::Osr::SpatialReference.new()
srs.import_from_wkt( prj.read )
# Various exports
puts srs.export_to_wkt
srs.auto_identify_epsg
puts srs.get_authority_name(nil)
puts srs.get_authority_code(nil)
Если вам нужен какой-то другой аспект проектирования, изучите доступные общедоступные методы:
srs.public_methods.sort
Комментарии:
1. Чтобы использовать gdal с ruby, нам нужно создать библиотеку с именем «libgdal-ruby». Вот скрипт, с которым я работаю с пространственной ссылкой osr. sudo apt-get устанавливает libgdal-ruby. С помощью irb нам нужно запросить ‘gdal / gdal’ и ‘gdal / ogr’.
2. Да, привязки GDAL / OSR выглядят хорошо, но документация скудна. Обычно вы можете переводить примеры с Python на Ruby без особых проблем (просто небольшие различия в именах методов).
3. Как вы устанавливаете это расширение gem (часть osr)? Я успешно установил драгоценный камень ‘gdal’, на моем Mac установлена вся прошивка и так далее. Но не могу получить доступ к
osr
биту
Ответ №2:
К вашему сведению, http://prj2epsg.org / позволяет вам искать файлы PRJ и получать код SRID / EPSG.
Обновление: сайт не работает. Смотрите этот ответ: https://gis.stackexchange.com/questions/372381/is-there-an-alternative-to-prj2epsg-org