我正在建立一个系统,让用户上传形状文件然后,它使用shp2pgsql
将这些shapefile转换为postgis。此命令要求以epsg代码的形式提供srs id。
所以我需要一个ruby gem,它可以读取shapefile的*.prj
文件(其中包含编码为WKT的投影/空间参考系统)并返回相应的SRS ID。
最佳答案
我不确定ruby绑定如何作用于gdal,但是osr(gdal的一部分)可以提取投影wkt(文本)或srid(整数)。
有关Python/GDAL/OSR的解决方案,请参见this gis.SE answer。
更新:事实证明,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