问题标签 [rgeo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1409 浏览

ruby-on-rails - Rails RGeo::Geos.supported? False 无法使 rgeo-shapefile 工作

尝试使这个上传 shapefile 的示例与我的 rails 设置一起使用,并且从控制台运行,我得到返回:

RGeo::Error::RGeoError: GEOS 不可用,但需要正确解释 shapefile 中的多边形。

RGeo::Geos.supported? 返回False

我正在运行 - ruby​​ 版本 2.0.0p576 和 rails 版本 4.2.0

包含的 gem 有:gem 'activerecord-postgis-adapter'、'3.0.0.beta2' gem 'rge​​o-shapefile' gem 'dbf'

我做错了什么,我在哪里可以找到找不到 GEOS 的原因?谢谢!

0 投票
1 回答
95 浏览

ruby - RGeo PostGIS 多表查询

以下查询作为原始 sql 运行良好,但因为它命中 2 个模型,我不确定如何在活动记录中构造它......

我怎么能去建造这个?不是加盟所以...

谢谢!

0 投票
1 回答
446 浏览

ruby - 尝试使用 RGeo Ruby gem 导入 shapefile,堆栈级别太深

我不知道这是否是我的代码中的一些交互,或者可能是我正在使用的 shapefile 中的命名约定,但以下代码会产生一条Stack level too deep消息

模型迁移:

schema.rb 的相关部分:

回溯指向active_record/transactions.rb第 286 行:

什么都试过了。任何帮助,将不胜感激。

编辑:如果有人想知道这些参数,在失败的调用中他们解析为 guid:'6020048.00',和 country_code:'ca'。

我还应该补充一点,日志显示了这一点:

它显示的 SQL 在控制台中执行得很好!这就是疯狂的一点。这向我表明问题出在一些 before_save 方法上,但我没有定义任何方法。

0 投票
1 回答
210 浏览

postgis - 如何使 RGeo::Feature::Geometry 方法可用于 RGeo::Geographic::SphericalMultiPolygonImpl?

我在 Ubuntu 上使用带有 PostGIS、rgeo 和 activerecord-postgis-adapter gem 的 Rails 4.2。我还安装了以下库:libgeos++-dev libgeos-3.4.2 libgeos-c1 libgeos-dbg libgeos-dev libgeos-doc libgeos-ruby1.8 ruby​​-geos。当我调用包含时,会引发 RGeo::Error::UnsupportedOperation?在 RGeo::Geographic::SphericalMultiPolygonImpl 上。如何使 Feature::Geometry 方法可用于我的 RGeo::Geographic::SphericalMultiPolygonImpl?

0 投票
1 回答
1795 浏览

ruby-on-rails - NoMethodError 使用 activerecord_postgis_adapter

我尝试按照 README 安装 activerecord-postgis-adapter 但无法创建模型实例,因为我不断收到下面提到的错误:

NoMethodError: nil:NilClass 的未定义方法“点”

这是我的不同文件的样子:

Location.rb(模型,更新代码)

宝石文件

配置/应用程序.rb

配置/数据库.yml

在我尝试检索记录时添加记录后,我得到以下信息:

想知道为什么会这样,或者我该如何解决?更具体地说,为什么它是 NilClass 以及为什么找不到 #inspect?

从我的 schema.rb

我正在使用 Rails 4.2.1。

0 投票
1 回答
1831 浏览

ruby-on-rails - activerecord_postgis_adapter:nil:NilClass 的未定义方法“点”

问题

90% 确定这是我的设置错误,但我无法执行 self.factory 并尝试访问 lonlat 给了我一个异常“nil:NilClass 的未定义方法‘点’”

我可以

设置 lonlat 使用:

这给了我0101000020E610000061C3D32B65965DC03657CD7344F64040在数据库中的值。

我不能使用:

问题

我需要在模型中设置一些特定的东西吗?

0 投票
1 回答
33 浏览

join - 写入连接表记录的优化

该应用程序基于 PostGIS,并使用 RGeo 的 simple_mercator_factory 存储数据。

创建多边形记录并且与点的关联是静态的(即不需要更新)。为了减少 postGIS 计算的开销,使用属于多边形的点填充连接表并使用 bTree(代替 rTree)对索引连接表进行搜索是有意义的。

问题是有效地创建连接记录。现在:

查询计划是可以接受的

但是,该@add_point函数的时钟在 14 到 16 毫秒之间。对于一组 83 条记录,我们看起来大约是 1.6 秒。但是总数匹配:
Completed 302 Found in 7796.9ms (ActiveRecord: 358.5ms)
运行一个单独的方法来执行相同的查询计划(和时间),而不写入连接记录完成 出现
Completed 200 OK in 1317.5ms (Views: 49.8ms | ActiveRecord: 64.0ms)
两个问题。更平凡的是,除了开发模式条件之外,为什么总数会激增这么多 - 我期待大约 3 秒(1.6 + 1.3)?

但更重要的是,有没有办法以更有效的方式将连接表记录写入单独的线程(after_update?)(考虑到可以写入 1000 条记录......)

0 投票
1 回答
86 浏览

ruby-on-rails - 如何解决:“proj4_c_impl.bundle:[BUG] 0x00000000000440 处的分段错误”

有任何想法吗?

全栈转储@ https://github.com/rgeo/rgeo/issues/105

0 投票
1 回答
265 浏览

sql - 在rails或sql中克服“ActiveRecord::StatementInvalid:PG::AmbiguousFunction”的方法。(st_intersects 不是唯一的函数名)

当我在 rails 中运行这个命令时:

在 SQL 中运行此命令:

我收到此错误:

我不知道如何添加显式类型转换,老实说,我也不清楚这甚至意味着什么。我看到上面的 st_intersects 函数传入了第二个参数“未知”。也许我可以“投射”它并让它工作......?

我认为问题可能是st_intersects由于其“函数重载”特性,postgresql 中有多个函数定义。我不是第一个在这个系统上安装 postgresql/postgis 的开发人员,我的一个承包商做到了,所以我担心我们可能会重复我们的努力。

我在 Ubuntu“12.04 LTS”VPS 上使用 postgresql 和 postgis 运行 rails 服务器。

我很确定我可以重新安装 postgis 但这会清除我的承包商的代码,这些代码使用 pg_routing 做了一些我不想接触的非常复杂的事情。如果必须,我将启动一个新的 linode 并在其上运行代码,但这似乎有点浪费,甚至可能更像是一种失败。

如果我无法通过消除歧义来正确解决问题(这通常适用于 Mac 和 linux 发行版),我认为另一种解决方案是标记 postgresql 以忽略歧义并选择它遇到的第一个 st_intersects 函数.

其他注意事项:

  • 我在 rgeo 中使用的几何工厂是“Geos”
  • 几何是笛卡尔的,不是地理的

类似的问题(作为一个被 ORM 瘫痪的 Rails 开发人员,这仍然让我摸不着头脑):

0 投票
1 回答
124 浏览

ruby-on-rails-4 - 在 Elastic Beanstalk 上使用 rgeo 设置 RoR

我正在尝试在 Elastic Beanstalk 上启动并运行我的 RoR 应用程序,并且正在努力让 rgeo gem 正常工作。我在网络服务器上遇到的错误是:

当代码访问由数据库中的 POINT 数据类型支持的模型属性时,就会发生该错误。该错误通常是由于缺少依赖项,即此线程中描述的 geos 。所以我连接到底层 EC2 实例,安装 geos 并重新安装 rgeo gem。这解决了rails控制台中的问题:

但是,这并没有解决 Web 服务器中的错误。我很确定我不清楚 Elastic Beanstalk 环境,并且可能对底层 EC2 实例进行直接更改不会使应用程序实例可以使用依赖项。我确实知道我需要将依赖项添加到自定义 AMI 或 ebextensions 以供将来部署,但我想确保在完成该过程之前我的依赖项正常工作。任何指导将不胜感激。