问题标签 [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 投票
1 回答
1171 浏览

ruby-on-rails - 运行 rails app 不兼容的库版本 rgeo proj4 时出错

当我运行时foreman start,我收到此错误:

我试过了rvm gemset empty && bundle installgem uninstall rgeo && gem install rgeo其他从事同一个项目的人没有这个问题。

Ruby 2.2.3p173 Rails 4.2.4 Gem 2.4.8

我究竟做错了什么?

0 投票
2 回答
1537 浏览

postgresql - Postgis 2.2.0 和 Postgres 9.4.5 的问题:PG::UndefinedFile - 错误:无法访问文件“$libdir/postgis-2.1”

不幸的是,我通过自制软件将 postgis 升级到 2.2.0,现在出现以下错误。我会回到 2.1.0,但该公式似乎不再可用。转到 2.0 会尝试将 Postgres 降级到 9.2。

关于我还能尝试什么的任何想法将不胜感激?

版本:

  • PostGres:9.4.5_2
  • Postgis:2.2.0
  • activerecord_postgis_adapter:3.1.0
  • pg宝石:0.18

以下错误:

基本调试:

/usr/local/Cellar/postgresql/ 仍然显示 9.4.5_1 和 9.4.5_2 的文件夹。我还尝试在 Postgres 上删除、创建和更改 postgis 扩展,并且运行时不会出现问题。当我查找已安装的扩展时:

0 投票
2 回答
549 浏览

ruby-on-rails-4 - 如何使用 AR/Arel 重写此 RGeo 查询?

我有以下使用原始 SQL 的范围:

对于 PostgreSQL 类型,其中delivery_zones.shapeageography(Polygon,4326)point是 a 。geography(Point,4326)

在 Rails 控制台中,它们分别是 a#<RGeo::Geos::CAPIPolygonImpl>#<RGeo::Geos::CAPIPointImpl>

我想写一些更类似于

...但这给了我这个错误:

RuntimeError:不支持:RGeo::Geos::CAPIPointImpl

希望从我的模型中获取原始 SQL 的帮助!另外,我是 RGeo/PostGIS 新手,所以请不要以为我知道自己在做什么。:D

0 投票
1 回答
1008 浏览

ruby - 获得 RGeo GEOS 支持以在部署到 Dokku 的 Rails 应用程序中工作

我有一个使用RGeo gem 的 rails 应用程序,我很难安装 gem 并支持我的应用程序正常工作所需的底层GEOS 库。

通常,您可以从 rails 控制台运行,如果支持 GEOS RGeo::Geos.supported?,它将返回,否则。这适用于我的开发机器(OS X),但总是返回truefalsefalse我的 Dokku 容器。

我正在使用构建包来拉入这些库,这是我的内容.buildpack file

这似乎至少部分有效,因为 gem 正在使用 PROJ.4 库。这可以通过在我的 Dokku 部署RGeo::CoordSys::Proj4.supported?中返回的 rails 控制台运行来检查。true

当我部署应用程序时,构建包似乎可以正常工作:

我正在使用最新版本的 Dokku (0.4.10),该应用程序目前在 Ruby 2.2.3、Rails 4.2.5 上运行。

编辑(澄清):我需要这个方法调用(RGeo::Geos.supported?)在我的应用程序容器的rails控制台中返回true。只有这样我的应用程序才能正常工作,目前它正在控制台中返回,这意味着 GEOS 可通过 RGeo gem 使用,并且读取 shapefile 等功能将起作用。false,这意味着 RGeo gem 在安装过程中没有找到 GEOS (libgeos) 库。部署期间没有错误,并且日志输出(包括上面的相关部分)报告 GEOS 3.4.2 是通过 buildpack 安装的。如果没有 GEOS 支持,我什至无法为我的数据库播种,因为该过程的一部分涉及读取 shapfiles 并通过 PostGIS 将它们存储为几何图形。我的应用程序还使用了许多其他需要通过 RGeo 进行 GEOS 的功能,因此这是一个RGeo::Geos.supported?返回的要求true

0 投票
1 回答
561 浏览

ruby - 检查 2 个多边形是否在 ruby​​ 中重叠

我正在寻找一种方法来检查 2 个多边形(一组纬度/经度坐标)是否在 ruby​​ 中重叠。因此,例如,如果我有美国的积分和加利福尼亚的积分,我应该能够看出它们重叠。

我查看了 rgeo,但显然它需要一些仅限 linux 的二进制文件才能使其工作,我正在寻找一个跨平台的解决方案。

例如,假设我有 2 个多边形,看起来像:

我怎样才能证明它们在红宝石中重叠?

0 投票
2 回答
175 浏览

rgeo - RGeo 0.5.2 和 RGeo::CoordSys::SRSDatabase::ActiveRecordTable

首先,如果这真的很简单,我很抱歉,但我似乎无法弄清楚。我正在使用 RGeo 在 UTM 和纬度/经度之间进行转换,就像这样;

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

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

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

此外,我的原始方法对我来说似乎总是有点复杂 - 有没有更简单的方法来完成 UTM -> 使用 RGeo 进行纬度/经度转换?

提前致谢!

0 投票
1 回答
197 浏览

ruby-on-rails - Heroku:Web dyno 中 PostGIS 列的错误,但在一次性或工人 dyno 中没有

我有一个空间应用程序(PostGIS + Rails + RGeo)的开始,line_string在我的一个模型上只有一个列。在我的本地机器上一切都很好,问题出在 Heroku web dynos 上,其中 Rails/activerecord 无法识别 RGeo/PostGIS line_string 类型。

每次部署后,第一次加载模型时,我都会在日志中看到以下内容:

然后,如果我向 STDOUT 添加一些日志记录,我可以看到:

但是,如果我使用 rails console ( ) 运行一次性测功机,heroku run rails c production一切都很好。我看到了我期望的输出:

在工人测功机下也可以。

什么会导致未知的 OID 错误?为什么一次性和工人测功机能够完美地使用这个专栏,而网络测功机却不行?

0 投票
1 回答
360 浏览

postgresql - 将 RGeo 列反序列化为 SphericalPointImpl

在 Rails 4.2.4 和 activerecord-postgis-adapter 3.1.2 中有一个 RGeo 列的表

以及按位置对对象进行分组的方法

与相应的测试:

问题是pluck返回 RGeo::Geos::CAPIPointImpl而不是 RGeo::Geographic::SphericalPointImpl

我相信为了解决这个问题,必须指定一个正确的工厂。我试图这样指定它

但它会反序列化所有点,因为RGeo::Geos::CAPIPointImpl它们更通用且与现有代码库不兼容。

所以问题是如何使所有点反序列化为RGeo::Geographic::SphericalPointImpl

0 投票
1 回答
1319 浏览

ruby-on-rails - 为 RGeo-ActiveRecord 列指定点类型

Address模型具有 RGeo 属性时,有一个典型的模式:

通常它被包裹在RGeo::Geographic::SphericalPointImpl类中

但在某些情况下,它是用完全不合适的笛卡尔包装器包装的RGeo::Cartesian::PointImpl

我正在使用最新'activerecord-postgis-adapter 3.1.4'rails 4.2.4

也许有人知道如何解决这个问题,即coordinates总是返回实例RGeo::Geographic::SphericalPointImpl

0 投票
2 回答
1399 浏览

ruby-on-rails - 尝试从纬度/经度创建点的 RGeo 错误

我正在编写一个应用程序,我试图集成一些通用的地理定位功能,包括将一些纬度/经度坐标保存为数据库中的一个点。这样做的目的是允许用户使用他们的位置(由设备提供)或谷歌地图标记来选择他们的坐标。我已成功从地图或设备中获取坐标,但是我现在无法从它们创建一个点以保存到数据库中。

我已阅读文档并尝试将此代码添加到我的初始化程序中:

初始化程序/rgeo.rb

宝石文件:

移民:

尝试创建点时,我在 rails 控制台中收到此错误:

在阅读了这个演示后,我采用了这种方法,该演示表明该模型隐式地理解 WKT 字符串,并在内部将其转换为“点”对象。