首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用(Ruby) RGeo转换(Unproject)坐标

如何使用(Ruby) RGeo转换(Unproject)坐标
EN

Stack Overflow用户
提问于 2011-08-10 06:12:25
回答 1查看 1.6K关注 0票数 3

我从如何转换Shapefile的坐标?开始。

那里的反应开始了我认为是正确的轨道,但我仍然未能解决我的问题。

有一个问题是我还没有找到正确的投影:https://gis.stackexchange.com/questions/13330/how-can-i-correctly-transform-unproject-from-lcc

编辑: gis站点上的这个问题已经得到回答,我能够使用PROJ命令行工具cs2cs再现一个正确的转换。看起来是这样的:

代码语言:javascript
复制
larry$  cs2cs -f "%.8f" +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs +to +proj=lonlat +datum=WGS84 +ellps=WGS84
6011287.4999795845 2100857.2499904726
-122.40375492   37.74919006 0.00000000

现在,有了正确的转换,我就可以使用RGeo以简单的形式尝试同样的事情了:

代码语言:javascript
复制
ruby-1.9.2-p180 :001 >     projection_str = ' +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs'
 => " +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs" 
ruby-1.9.2-p180 :002 >     projection = RGeo::CoordSys::Proj4.new(projection_str)
 => #<RGeo::CoordSys::Proj4:0x805cba18 " +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs +towgs84=0,0,0"> 
ruby-1.9.2-p180 :003 >     desired_str = '+proj=lonlat +datum=WGS84 +ellps=WGS84'
 => "+proj=lonlat +datum=WGS84 +ellps=WGS84" 
ruby-1.9.2-p180 :004 >     desired = RGeo::CoordSys::Proj4.new(desired_str)
 => #<RGeo::CoordSys::Proj4:0x805271ac " +proj=lonlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"> 
ruby-1.9.2-p180 :005 >     RGeo::CoordSys::Proj4::transform_coords(projection, desired, 6011287.4999795845, 2100857.2499904726 )
 => [-140.92282523143973, 30.16981659183029] 
  1. 为什么RGeo和cs2cs的结果不同?
  2. 一旦我可以让RGeo执行正确的翻译,我是否可以创建一个合适的工厂来转换一个完整的几何而不是一个点?
  3. 有没有一个命令行工具,我可以用它来转换我的shapefile中的所有点,这样我就可以继续我的生活了?

一般情况下,能不能有人教我如何正确使用这个图书馆?

非常感谢你的关注。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-10 17:06:19

因为我不认识RGeo,所以在黑暗中疯狂地捅了一刀,试着用它们的等价物来代替你的足部坐标:1832244.09448196630486863094224,640342.570482237007831285319392(你可能不需要小数位.)另一种可能是交换坐标--也许RGeo做了一些非常规的假设。

如果您能够从Ruby调用可执行文件,那么只需使用ogr2ogr来转换您的shapefiles。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7006581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档