首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RGeo::CoordSys::SRSDatabase::ActiveRecordTable与RGeo 0.5.2

RGeo::CoordSys::SRSDatabase::ActiveRecordTable与RGeo 0.5.2
EN

Stack Overflow用户
提问于 2016-01-30 06:28:14
回答 2查看 186关注 0票数 3

首先,道歉,如果这真的很简单,但我似乎无法弄清楚。我使用RGeo在UTM和lat/long之间转换,就像这样;

RGeo::CoordSys::SRSDatabase::ActiveRecordTable.new = srs_database #为相关的UTM区域创建坐标工厂utm_factory = RGeo::Cartesian.factory(:srid => srid,:srs_database => srs_database) utm_location =utm_factory.point(向东,向北)#创建标准的WGS84 lat/long坐标工厂wgs84_proj4 = '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs‘wgs84_factory =RGeo::Geographic.spherical_factory(utm_factory:,:=> 4326) #执行UTM -> lat/long cast RGeo::Feature.cast(utm_location,:=> wgs84_factory,:project => true)

如您所见,我正在使用RGeo::CoordSys::SRSDatabase::ActiveRecordTable

我刚刚升级到RGeo 0.5.2,我注意到这个类已经被废弃了。

很公平,但我现在不知道替代方法是什么.我四处搜寻,似乎找不到合适的文档。

而且,我原来的方法对我来说总是有点复杂--是否有一种更简单的方法来完成UTM -> lat/ RGeo的长转换?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2016-01-30 07:13:59

好吧,实际上我很快就想好了。这就是对我有用的东西:

如果半球== 'S‘srid = 32700 + number.to_i utm_proj4 = "+proj=utm +zone=#{zone} +south +datum=WGS84 +units=m +no_defs“,则srid = 32600 + number.to_i utm_proj4 = "+proj=utm +zone=#{zone} +datum=WGS84 +units=m +no_defs”结束#既创建UTM,又创建lat /lat/lat工厂(我们将在两者之间进行规划) utm_factory = RGeo::Cartesian.simple_factory(srid: srid: srid,+no_defs:+no_defs)=# end 20#(srid: 4326,proj4:'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs') # create the UTM location utm_location =utm_factory.point( cast,northing) #执行UTM -> lat/long cast RGeo::Feature.cast(utm_location,:factory => wgs84_factory,:project => true)

我正在基于从Proj4表中提取的spatial_ref_sys字符串创建自己的工厂。

不过,我不知道这是否“正确”,也许有更好的方法。

但我希望这对某人有帮助!)

票数 3
EN

Stack Overflow用户

发布于 2016-04-06 15:20:21

这方面的另一种办法是:

代码语言:javascript
复制
EPSG_4326 = RGeo::CoordSys::Proj4.new("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
EPSG_3857 = RGeo::CoordSys::Proj4.new("+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs")

RGeo::CoordSys::Proj4.transform(EPSG_3857, geom, EPSG_4326, RGeo::Geographic.spherical_factory)

生成一个具有适当坐标的新RGeo::Geographic::SphericalPointImpl

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

https://stackoverflow.com/questions/35098803

复制
相关文章

相似问题

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