我正在尝试将邻居数据放入我的应用程序中,但我使用的数据存在问题,这些数据是我从here http://gispub02.sfgov.org/website/sfshare/catalog/realtor_neighborhoods.zip.
该文件包含一个包含旧金山街区的 shapefile。我正在运行 Ruby on Rails 框架,目前正在使用GeoRuby https://github.com/nofxx/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 空间参考系统的纬度/经度)
先感谢您!
您从形状文件中获得的数据是投影地理数据 http://en.wikipedia.org/wiki/Map_projection.
从你的问题来看,听起来你真的只是更喜欢以纬度/经度形式显示数据。为此,您需要重新投影数据。我不是 ruby 爱好者,但快速的网络搜索表明 georuby 不支持重投影http://georuby.rubyforge.org/ http://georuby.rubyforge.org/, 然而rgeo http://rubygems.org/gems/rgeo does. http://www.daniel-azuma.com/blog/archives/28 http://www.daniel-azuma.com/blog/archives/28
如果您想了解有关地图投影的更多信息,请查看.
顺便说一句,有一个供 GIS(地理信息系统)专家使用的 stackexchange 站点,名为http://gis.stackexchange.com http://gis.stackexchange.com
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)