我正在构建一个允许用户上传shapefile的系统。然后使用shp2pgsql
将这些shapefile转换为PostGIS。此命令需要以EPSG代码形式的SRS ID。
所以我需要一个ruby gem来读取shapefile的*.prj
文件(其中包含编码为WKT的投影/空间参考系统)并返回相应的SRS ID。
答案 0 :(得分:2)
仅供参考,http://prj2epsg.org/可让您查找PRJ文件并获取SRID / EPSG代码。
答案 1 :(得分:1)
我不确定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