Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为Ruby 1.9和Rails 3.2.5编写Georgy Oracle适配器_Ruby On Rails_Ruby_Oracle_Activerecord_Georuby - Fatal编程技术网

Ruby on rails 为Ruby 1.9和Rails 3.2.5编写Georgy Oracle适配器

Ruby on rails 为Ruby 1.9和Rails 3.2.5编写Georgy Oracle适配器,ruby-on-rails,ruby,oracle,activerecord,georuby,Ruby On Rails,Ruby,Oracle,Activerecord,Georuby,我们是一家基于GIS RoR的软件公司,负责处理空间数据。 目前,我们在Oracle中直接执行纯SQL,但这是一个具有挑战性的过程,现在我们考虑切换到GeoRuby的想法。br/> 我们希望在公司的Oracle数据库和Rails环境中采用Georgy 据您所知,没有结构良好的适配器用于此目的 目前,我正在开发自己的spatial oracle适配器。 现在,我可以通过迁移创建表和几何体列。此外,我还可以为表创建模型 例如,假设有一个具有两个属性(名称:string和geom:geometry)的

我们是一家基于GIS RoR的软件公司,负责处理空间数据。 目前,我们在Oracle中直接执行纯SQL,但这是一个具有挑战性的过程,现在我们考虑切换到GeoRuby的想法。br/> 我们希望在公司的Oracle数据库和Rails环境中采用Georgy
据您所知,没有结构良好的适配器用于此目的
目前,我正在开发自己的spatial oracle适配器。 现在,我可以通过迁移创建表和几何体列。此外,我还可以为表创建模型
例如,假设有一个具有两个属性(名称:string和geom:geometry)的GeoShape模型,我可以:

g = GeoShape.new(:name => "Point1", geom: Point.from_x_y(-1.6, 2.8, 123))
执行上述声明后,我有:

=> #<GeoShape id: nil, name: "Point1", geom: <GeoRuby::SimpleFeatures::Point:0x6a3cb030 @srid=123, @with_z=false, @with_m=false, @y=2.8, @x=-1.6, @z=0.0, @m=0.0>, created_at: nil, updated_at: nil>
=>#
现在我想用g.save将我的模型保存到DB

我得到以下错误,这是完全合乎逻辑的,因为GeoRuby和Oracle类型之间的类型不匹配

INSERT INTO "GEO_SHAPES" ("CREATED_AT", "GEOM", "ID", "NAME", "UPDATED_AT") VALUES (:a1, :a2, :a3, :a4, :a5)  [["created_at", Sun, 01 Jul 2012 04:34:34 UTC +00:00], ["geom", #<GeoRuby::SimpleFeatures::Point:0x6a3d3410 @srid=123, @with_z=false, @with_m=false, @y=2.8, @x=-1.6, @z=0.0, @m=0.0>], ["id", 10053], ["name", "Point1"], ["updated_at", Sun, 01 Jul 2012 04:34:34 UTC +00:00]]
ActiveRecord::StatementInvalid: OCIError: ORA-00932: inconsistent datatypes: expected MDSYS.SDO_GEOMETRY got CHAR: INSERT INTO "GEO_SHAPES" ("CREATED_AT", "GEOM", "ID", "NAME", "UPDATED_AT") VALUES (:a1, :a2, :a3, :a4, :a5)   
插入“GEO_形状”(“CREATED_AT”,“GEOM”,“ID”,“NAME”,“Update_AT”)值(:a1,:a2,:a3,:a4,:a5)[“CREATED_AT”,Sun,2012年7月1日04:34:34 UTC+00:00],“GEOM”,“#],[“ID”,“10053”,“NAME”,“Point1”],[“Update_AT”,Sun,2012年7月1日04:34:34 UTC+00:00]]
ActiveRecord::StatementInvalid:OCIRROR:ORA-00932:不一致的数据类型:预期的MDSYS.SDO_几何体获取字符:插入到“GEO_形状”(“创建位置”、“GEOM”、“ID”、“名称”、“更新位置”)值中(:a1、:a2、:a3、:a4、:a5)

有人知道这样做的过程吗
我想,我必须将我的GeoRuby结构映射到相应的Oracle SDO_几何体,但我对这个过程一无所知

非常感谢您的帮助。

这里有一块很好的宝石

其核心是行业标准OGC Simple的实现 特性规范,该规范提供了 几何对象,如点、线和多边形,以及 几何分析操作集。这使得它非常适合建模 地理定位数据。它还支持一套可选的附加模块 提供各种与地理定位相关的服务

有一颗漂亮的宝石

其核心是行业标准OGC Simple的实现 特性规范,该规范提供了 几何对象,如点、线和多边形,以及 几何分析操作集。这使得它非常适合建模 地理定位数据。它还支持一套可选的附加模块 提供各种与地理定位相关的服务


我可以做到这一点。现在我可以直接将Georguby模型保存到Oracle DB。
线程中说明了该过程。

我可以做到这一点。现在我可以直接将Georguby模型保存到Oracle DB。
该过程如线程所示。

不幸的是,rgeo缺乏对Oracle的支持,并且没有兼容的适配器;所以这个问题是不可行的。所以你必须为oracle创建你自己的适配器并为社区共享)是的,我有这个想法,但是,首先我更喜欢Georguby,不是因为它“好”,但只有一些现有的oracle适配器我可以从中汲取经验;因此,这个问题是不可行的。因此,你必须为oracle创建自己的适配器并与社区共享)是的,我有这个想法,但是,首先,我更喜欢Georguby,不是因为它“好”,而是只有一些现有的oracle适配器我可以借鉴。