- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一堆具有自相交的多边形,这会导致在进一步后处理它们时出现一些错误(特别是 - 我无法计算这些多边形与其他多边形的相交面积)。这是一个 splinter 的多边形示例:
{
"type": "MultiPolygon",
"coordinates": [
[
[
[
6.881057785381658,
46.82373306675715
],
[
6.857171686909481,
46.81861230543794
],
[
6.857354659059071,
46.81856788926046
],
[
6.856993473052509,
46.82693029065604
],
[
6.8612894138116785,
46.83422796373707
],
[
6.86720955648855,
46.835636765630476
],
[
6.871281147359957,
46.83078486366309
],
[
6.871573291317274,
46.8306215963777
],
[
6.877608228639841,
46.82771553607934
],
[
6.877758462659651,
46.82772313420989
],
[
6.877852632482749,
46.827735617670285
],
[
6.880928107931434,
46.82630213148064
],
[
6.8810399979122305,
46.82622029042867
],
[
6.881117606743071,
46.826115612819855
],
[
6.881057785381658,
46.82373306675715
]
]
]
]
}
这就是它在 map 上的样子 - 如您所见,两条多边形边相交。 RGeo 抛出错误,指向交点坐标(我猜): => "Geos::GEOSException: TopologyException: Input geom 0 is invalid: Self-intersection at or near point 6.8573510795579145 46.818650764080992 at 6.8573510795579145 46.8186507264408099"
.所以,至少我有。
我的问题是:有没有办法自动修复那个交叉点?我读到,一个可能的解决方案是插入 2 个具有自交坐标的相似点。但问题是——多边形有特定的顺序,我不知道在哪里插入这些点。
此外,也许有一些现有的工具可以帮助解决这个问题......
最佳答案
我将使用的解决方案是 postgis's ST_MakeValid option for postgres 如果这是你的一个选项,你可以按照 ST_AsText(ST_MakeValid(geom_column))
的方式做一些事情,或者如果你更愿意传递这里的文本是使用 prepair 中显示的领结示例的示例:
select ST_AsText(ST_MakeValid(ST_GeomFromText('POLYGON((0 0, 0 10, 10 0, 10 10, 0 0))')));
st_astext
-----------------------------------------------------------
MULTIPOLYGON(((0 0,0 10,5 5,0 0)),((5 5,10 10,10 0,5 5)))
(1 row)
如果您不感兴趣,您可以导出这些几何图形并使用 prepair 之类的工具来转换它们。总结一下它在幕后是如何工作的,它将把这些“领结”分成多个多边形,然后将它们制成一个多多边形。相同类型的修复将应用于多面体。
关于ruby - RGeo - 修复自相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48785494/
我是 R 及其包系统的新手,刚刚编写了我的第一个包,目的是将它与 OpenCPU 一起使用。 执行这个函数时: #' Create a PNG which shows interpolated sen
首先,如果这真的很简单,我深表歉意,但我似乎无法弄明白。我正在使用 RGeo 在 UTM 和纬度/经度之间进行转换,就像这样; srs_database = RGeo::CoordSys::SRSD
嗨,我是 R 语言和 renjin 的新手。在我的项目中,以下是添加的 Maven 依赖项。 org.renjin.cran rgeos 0.3-2-
我需要能够在不丢失点的情况下缩小纬度/经度数据的多边形;更重要的是,我需要在正确的方向上有效地“消除”这些点。通常,gBuffer 工作正常,但不能保证点的数量和它们的相对间距。最终,每个点都有我需要
我有一堆具有自相交的多边形,这会导致在进一步后处理它们时出现一些错误(特别是 - 我无法计算这些多边形与其他多边形的相交面积)。这是一个 splinter 的多边形示例: { "type": "M
我有一个使用带有 proj4 支持的 rgeo 0.3.19 的 rails 应用程序,它使用 rgeo-activerecord 0.4.5 gem 连接到 PostGIS 1.5 数据库。 我的应
您好,我需要 R 中的世界地图,并使用几行代码将其安装在我的 Windows 10 机器 R 版本 2.15.2 (2012-10-26) 上。 rgeos 版本:0.3-4,(SVN 修订版 438
我有一个包含位置属性的模型,由 RGeo::Cartesian::Point 对象表示,并作为空间数据存储在我的数据库中。 为了运行测试,我需要通过固定装置创建此类模型的一些示例。 我尝试了几种不同的
我有一个包含位置属性的模型,由 RGeo::Cartesian::Point 对象表示,并作为空间数据存储在我的数据库中。 为了运行测试,我需要通过固定装置创建此类模型的一些样本。 我尝试了几种不同的
RGeo 有可用的凸包方法,但在这方面根本没有文档。 给定一组点,我如何找到它们的凸包? 最佳答案 好问题。事实证明,有一种名为“MultiPoint”的几何类型适用于此。我做了一个简单的例子来测试它
我是地理空间数据的新手,正在使用 Rails RGeo gem .我的 Rails 控制台出现以下错误: > geo_shape = ES_Zone::FACTORY.parse_wkt RGeo::
我需要知道一个点是否在我的 Rails 应用程序中的多边形中,以便我想使用 rgeo gem。 为了安装这个 geme,我按照 rgeo git 上的说明进行操作 然后我确定 GEOS 和 Proj4
我正在尝试在 Linux 上安装包 rgeos。我收到以下错误: system("sudo apt-get update") system("sudo apt install libgdal-dev
我有一个代表学区的多边形,它是我从 NYC Open Data 导入的.我相信坐标在 epsg projection 2263 - nad83 / new york long island 中 我无法
我正在尝试安装 rgeos在 ubuntu 16.04 中运行的 R 3.5.1 中。当我跑 install.packages("rgeos") 我收到以下消息: * installing *sour
背景 我对使用 gSimplify 简化多边形很感兴趣。功能可通过 rgeos 获得包裹。 可重现的例子 可以使用以下代码生成可重现的示例: # Data sourcing -------------
RGeo 为 POINT 特性提供内置方法,例如 getter 方法 lat()和 lon()从 POINT 对象中提取纬度和经度值。不幸的是,这些不能作为二传手。例如: point = RGeo::
我正在编写一个应用程序,我试图集成一些通用的地理定位功能,包括将一些纬度/经度坐标保存为数据库中的一个点。这样做的目的是允许用户使用他们的位置(由设备提供)或谷歌地图标记来选择他们的坐标。我已经成功地
我正在尝试使用 osmar 下载数据,从 OSM 获取多边形的大小。然而,健全性检查告诉我这些是不正确的。 下面是我的意思的一个例子。 (1) 伦敦海德公园周围的地理区域。提取标记为“park”的所有
对于 R 中的许多地理事物,我已经从包 sp 切换到 sf,直到现在我才注意到一个奇怪的问题sp/rgeos 中的行为。在这里: library(sp) library(sf) library(rge
我是一名优秀的程序员,十分优秀!