ruby-on-rails – 如何转换Shapefile的坐标?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何转换Shapefile的坐标?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图将邻居数据放入我的应用程序中,并且我遇到了我正在使用的数据的问题,这是我从 here获得的.

文件包含具有旧金山邻域的shapefile.我正在运行Ruby on Rails框架,我目前正在使用GeoRuby来解析shapefile.

代码如下所示:

def self.run_import
  shpfile = '/path/to/realtor_neighborhoods/realtor_neighborhoods'
  ShpFile.open(shpfile) do |shp|
    shp.each do |shape|
      # This gets the first (and only) Polygon from each MultiPolygon
      polygon = shape.geometry.geometries.first 
      puts polygon.inspect
    end
  end
end

代码能够解析文件,但我无法理解解释的坐标.对于有效的纬度和经度,当我期望坐标在-180和180之间时,所有点都具有数百万的值.看一个示例点:

<GeoRuby::SimpleFeatures::Point:0x00000104566a08 @srid=4326,@with_z=false,\
   @with_m=false,@x=6015402.9999795845,@y=2114960.4999904726,@z=0.0,@m=0.0>,

这些坐标值的格式是什么?如何将它们转换为对我有意义的值? (即基于SRID 4326< WGS84空间参考系统的纬度/经度) 先感谢您!

解决方法

您从形状文件中获得的数据是 projected geographic data.

从你的问题来看,听起来你真的只是想把你的数据放在lat / long.为此,您需要重新投影数据.我不是一个ruby家伙,但快速网络搜索显示georuby不支持重投影http://georuby.rubyforge.org/,但rgeo确实如此. http://www.daniel-azuma.com/blog/archives/28

如果您想了解更多有关地图投影的信息,请查看here.

顺便提一下,有一个名为http://gis.stackexchange.com的GIS(地理信息系统)专家的堆栈交换站点

猜你在找的Ruby相关文章