问题标签 [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 回答
15 浏览

ruby-on-rails - 引用错误通过 CSV 将地理对象的 JSON 格式列导入 rails + postgresql/postgis

数据结构:

CSV 导入文件

失败,因为在导入文件中有一行时CSV::MalformedCSVError: Illegal quoting in line 2. 我看不到(也尝试用单引号开始和结束 row[0] )。第 2 行具有(出于易读性目的强制 HR):

然而,从控制台,数据被设计为解析:

0 投票
1 回答
326 浏览

ruby-on-rails - RGeo::GeoJSON 不解码并返回几何体 as_text 用于“甜甜圈”多边形

一些地理区域是围绕一个主要大都市的区域,每个区域都是一个不同的行政区域。瑞士(事实上)和巴西的首都就是这种情况。

这些区域的 GeoJSON 数据由几何类型的多边形或多多边形定义。但在这两种情况下,当命令

启动,以便几何图形可以作为文本返回并与 postGIS 一起存储

产生以下错误:

我将其解释为未闭合的多边形。是的,但有皱纹。
一个人怎么能处理这个有环的环呢?

0 投票
1 回答
409 浏览

ruby - 如何找到到给定位置的线串的最近点 - rgeo

我的点坐标在地理坐标系中。他们在记忆中。我需要使用 Ruby 中的 RGeo 库找到线串上离给定点最近的点。

我的场景是在 googlemap 中将点绘制为折线作为道路表示,并且位置是我车辆的位置。我需要一条最短的路才能到达那条路。

PostGIS 中有解决方案,但我的数据在内存中,我不想使用 Postgresql 仅用于此目的。

我正在检查 RGeo gem,但找不到与此相关的任何线索。

[已编辑]

在此处输入图像描述

在此处输入图像描述

参考:https ://postgis.net/docs/ST_ClosestPoint.html

0 投票
1 回答
165 浏览

ruby - 在 Ruby 中调用 PostGIS 函数

我需要st_intersection在 Ruby 的 SQL SELECT 子句中执行 PostGIS 函数。目前我将其作为原始 SQL 查询进行:

这种方式的缺点是我将结果作为文本接收,并且我需要从字符串中解析出对象。更好的是使用 ActiveRecord 接口进行查询。但是,我还没有找到st_intersection在 ActiveRecord 中运行 PostGIS 功能(例如)的任何解决方案。

activerecord-postgis-adapter 的README的早期版本展示了一个使用 gem 的好例子squeel

由于这不再是当前自述文件的一部分,我想知道是否不推荐这样做,或者是否有更好的选择。

0 投票
0 回答
68 浏览

ruby-on-rails - 如何在 Ruby 中将 POLYGONS 与 MULTIPOLYGON 分开

我正在检查RGeo并且没有找到一种方法来检查 in 中提供的数据GeoJSONMultiPolygon内环还是外环(我正在检查这个只是为了将 MultiPolygon 从 a 中分离成单独的多边形MultiPolygon。有没有直接的方法来解决这个问题?

0 投票
1 回答
200 浏览

ruby-on-rails-5 - RGeo::Geos.supported? 在 irb 中为 true,但在 macOS mojave 中的 bundler 为 false

在 macOS mojavegem install rgeo安装和 irbRGeo::Geos.supported?返回true

现在通过 完成bundle install并进入rails控制台后bundle exec rails c,它返回false。

如何通过 bundler 和 rgeo geos 支持解决这个问题?

0 投票
1 回答
305 浏览

ruby-on-rails - 使用 RGeo、PostGIS 和 ST_Contains 查找包含在多边形内的多边形

我有两个模型:Search(geom 保存在属性上area)和Land(geom 保存在属性上geom)。

Land从外部服务导入并保存到具有特定 SRID 的数据库中。例如:

SRID=28992;POLYGON((84078.122 444751.117,84076.78 444756.486,84074.578 444765.296,84073.017 444771.6,84072.863 444771.565,83990.385 444752.587,83983.081 444741.282,83973.47 444727.641,83977.639 444696.765,83977.795 444696.272,83978.017 444695.806,83978.303 444695.376,83978.645 444694.989,83979.038 444694.654,83979.474 444694.376,83979.944 444694.162,83980.439 444694.015,83980.849 444687.415,83980.059 444680.175,83981.009 444674.015,83990.579 444630.535,83991.039 444628.175,83992.959 444622.795,83993.499 444619.895,83996.899 444602.515,84008.879 444549.116,84012.229 444550.167,84008.676 444568.23,84006.244 444579.55,83996.923 444617.582,83994.764 444631.493,83990.631 444646.408,83982.258 444684.123,83981.276 444694.907,83977.284 444727.724,83982.965 444736.217,83992.091 444749.86,84017.353 444756.019,84019.237 444745.384,84019.439 444745.432,84064.525 444756.091,84065.019 444756.24,84065.528 444756.322,84066.044 444756.336,84066.557 444756.28,84067.058 444756.157,84067.539 444755.967,84067.989 444755.716,84068.402 444755.406,84068.77 444755.044,84069.086 444754.636,84069.345 444754.19,84069.542 444753.713,84069.674 444753.214,84070.354 444750.339,84070.689 444749.934,84071.073 444749.575,84071.5 444749.269,84071.963 444749.02,84072.455 444748.834,84072.966 444748.712,84073.489 444748.657,84074.014 444748.67,84074.533 444748.751,84075.038 444748.898,84083.199 444750.826,84082.865 444752.243,84078.122 444751.117))

保存在实例上的几何图形Search来自 OpenStreetMap 上的坐标,我相信它使用SRID=4326. 在数据库中,我可以看到这些值是在没有SRID=部件的情况下保存的。例如:

POLYGON((4.270822 52.088838,4.271509 52.088324,4.271214 52.088232,4.270533 52.088235,4.270248 52.088637,4.270527 52.088822,4.270822 52.088838))

我这样称呼它:

这给出了错误: ActiveRecord::StatementInvalid (PG::SyntaxError: ERROR: syntax error at or near "52.19414")

Search.last.area.factory返回 a RGeo::Geos::CAPIFactory,带有错误的 SRID。所以我想把它变成一个正确的工厂:

我还尝试了其他几种变体和组合,例如:

所有这些都返回相同的错误。我一定遗漏了一些非常明显的东西。我错过了什么?

0 投票
1 回答
216 浏览

ruby-on-rails - Rails RGeo::Geos.supported? 在 rails c 上为假,但在 irb 上为真

我正在使用 rgeo gem,它在生产服务器上给我带来了麻烦,尽管它可以在我的本地机器上运行。

此输出在本地 MacOS 和 Ubuntu 16.04 生产机器上是相同的:

psql --version -> (PostgreSQL) 9.6.15

geos-config --version -> 3.7.1

SELECT postgis_full_version();返回:

但在rails c生产机器退货: RGeo::Geos.supported? => false 虽然irb退货RGeo::Geos.supported? => true

非常感谢任何建议。

0 投票
2 回答
1260 浏览

ruby-on-rails - 获取 InvalidGeometry:LinearRing 升级 rgeo gem 后环测试失败

将rgeo gem 从 0.6.0升级到 2.1.1 后,我们开始对某些以前从未给我们造成问题的几何图形进行“LinearRing 环测试失败”。(几何数据是从我们无法控制的外部来源生成的,并存储在 PostGIS 表中。)

rgeo 初始化器:

示例代码:

RGeo::Error::InvalidGeometry:LinearRing 环测试失败

我还尝试使用以下选项初始化工厂,但错误仍然存​​在:

我检查了其中一些未能通过 LinearRing 测试的几何形状,看来它们由于各种原因而失败。有些可能违反了绕圈顺序,而其他一些我看不出确切的问题。但关键是,这些都是我们以前能够使用的几何图形,现在正在引发错误。我想了解我们如何才能回到更宽松的模式。

笔记:

  • 这只发生在我的 Macbook(GEOS 版本 3.8.0)上,而不发生在我们的 Linux 生产服务器(GEOS 版本 3.5.0)上

参考:

0 投票
1 回答
237 浏览

ruby - 如何做geojson与rgeo的交集?

我是 ruby​​ 新手,正在尝试 rgeo。

我有 2 个 geojson 文件: points.geojson 包含许多点 这里是points.geojson的要点

outline.geojson 包含一个多边形,这是我的outline.geojson的要点:

我想要交叉点(轮廓中包含的点)

这是我正在尝试的...

我得到的错误:intersection.rb:12:in ': undefined method intersection' for #RGeo::GeoJSON::FeatureCollection:0x294ac44 (NoMethodError)