问题标签 [jts]

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 投票
2 回答
3590 浏览

java - 如何在 Java 中对某些形状进行三角剖分/镶嵌?

我想从 GeoTools 镶嵌国家形状,以便在地球表面上以 3D 形式显示它。GeoTools 使用 JTS 拓扑套件,内部看起来功能丰富。

它是否包含细分某些形状的实用程序?我看到有 triangulation 包,但不知道如何将它用于带孔的形状。

我也用它不仅像这里一样连接现有顶点

在此处输入图像描述

它应该用内部的多个顶点填充形状。

更新

我发现,JTS 包含ConformingDelaunayTriangulationBuilder允许以某种方式制作所需镶嵌的类,但效果不好。首先,它只允许约束,这意味着需要额外的代码来从凹入区域中删除三角形。而且它还试图保留曲面细分的 Delaunay 特性,这会导致创建许多额外的部分。

最后,它会导致ConstraintEnforcementException复杂的形状,如国家和无法使用。

我还发现了“三角形”包,它是用 C 语言编写的,实现了Chew 的第二个算法,效果很好

在此处输入图像描述

现在我想知道,它是移植到 Java 还是封装到其中?

0 投票
1 回答
338 浏览

java - 如何在 JTS 中枚举几何中的顶点?

Java Topology Suite 有Geometry类,有getNumPoints()方法。根据文档,它计算所有组成几何中的所有顶点。

如何枚举所有这些点?它们可以通过getCoordinates()方法获得,但这看起来不是最优的,因为 (1) 不是迭代的并且 (2) 需要将每个坐标元组转换为Pointby GeomertFactory

0 投票
1 回答
160 浏览

java - Java Topology Suite 中的 CGAlgorithms.isCCW 给出了相反的结果

我正在尝试测试坐标环是顺时针还是逆时针。据我所知,有一种方法CGAlgorithms.isCCW可以做到这一点。但是,无论我为该方法提供什么环,结果都与预期相反,也就是说,当我期望环是顺时针时,它说环是逆时针的,反之亦然。

我尝试使用不同的坐标数组和两个不同版本的库(1.14-SNAPSHOT 和 1.8)

我错过了什么吗?

0 投票
1 回答
1005 浏览

java - 需要帮助将 JTS 几何对象数组转换为形状文件

我有一组需要放入形状文件的 JTS Geometry 对象。我还有一些其他属性需要放入 DBase 文件中。我还需要索引空间对象,如果需要,创建投影文件。有没有办法使用 JTS/GeoTools 来做到这一点。我尝试了 ShapeFileWriter 但这似乎还不够(例如不支持 dbf)。

0 投票
1 回答
1339 浏览

java - 使用 solr 对多边形进行异常索引(未找到 jts?)

我在设置 solr 4.10.2 以使用多边形时遇到问题。我尝试调整示例应用程序以使用名为geomtype的字段location_rpt。我将 jts-1.13.jar 添加到solr-4.10.2/example/webapps/solr.war目录中的文件中, WEB-INF/lib并在 schema.xml 中创建了一个字段:

我从java -jar start.jar.

但是当我尝试添加一个带有 geom 字段的文档时,我得到了一个例外:

似乎 jts jar 无法识别。我必须在某处配置它吗?

问候

丹尼尔

0 投票
3 回答
1987 浏览

java - 调用 GeometryJSON().read() 时出现 NoSuchMethodException

我正在使用 JTS(来自 VividSolutions)和 GeoTools。我有以下代码:

但是,这会返回以下 RunTimeException:

在单步执行代码时,我在 org.geotools.geojson.DelegatingHandler 中发现了这个方法,它会导致错误:

上线return (IContentHandler) clazz.getConstructor(types).newInstance(args)

它在调用 FeatureHandler 并尝试将 GeometryFactory 作为参数传递时失败。我在 JTS 1.8 和 GeoTools 13-SNAPSHOT 上。

任何帮助或解决方法将不胜感激。

0 投票
1 回答
343 浏览

java - JTS + 读取地理数据:点数必须为 0 或 >3

我正在尝试从文件中读取一些地理日期。我在java中使用geotools包。我有可用的地理数据,如 kml、gml 和 .shp,这些都是相当大的文件。那些来自外部的 bron 并且格式正确。

当我想阅读工具时,GeoTools 使用 JTS。我也尝试直接使用 JTS,但我收到了相同的错误消息。我得到的错误是:

我在文件中途收到此错误。我手动检查了所有文件:所有“线性环”都超过三个点。我尝试读取哪个文件也没有关系。

代码片段:

KML 文件中的一部分

0 投票
1 回答
1356 浏览

xml - 如何用 gml3 只写一个 jts 几何

我有一个几何(JTS)几何,我想用 GML3 编码这个几何

我以这种方式完成了这项工作 Gml2 :

就像下面

在 GML3 中有什么方法可以做到这一点吗?

我需要 gml:posList 标签而不是 gml:coordinates

0 投票
5 回答
6033 浏览

java - 如何在 JTS 中将 jts.geom.Geometry 对象的坐标从 Lat、Long 转换为 Long、Lat

我有一个类型的几何对象(com.vividsolutions.jts.geom.Geometry)。它目前是纬度,经度形式,我想翻转坐标,使其经度纬度,以便我可以将它以 GeoJSON 格式用于 mongodb。

我看到的约束是:a)我想要翻转坐标的输入是一个 Geometry 对象。b) 几何对象将是多边形类型或多多边形。c)我想在类型转换为 Polygon/multipolygon 之前翻转坐标

我试过 geo.reverse() 但它不起作用。

同样,我尝试过使用: CRSAuthorityFactory factory = CRS.getAuthorityFactory(true); CoordinateReferenceSystem crs = factory.createCoordinateReferenceSystem("EPSG:4326");

还有另一种选择,我没有看到它起作用。

谢谢!

0 投票
1 回答
2601 浏览

java - 如何将经纬度从 Leaflet CRS.Simple 转换为 EPSG:4326

我正在使用 v-leaflet (0.61) ,一个 vaadin 插件,在地图上可视化一些图层。

单击地图,我创建了一个到 geoserver 的 wms 查询。查询需要一些参数,其中之一是 bbox。我想,默认情况下,地图返回的 bbox 位于 CRS.Simple 中,这是一个神秘的传单坐标系。

即使我设置了属性

地图和图层。

我在这里学习了使用 JTS 拓扑套件从 EPSG 转换为另一个的方法。

但我找不到将传单使用的 Crs.Simple 转换为 EPSG 的方法(4326 更好)。

如果我在地图和图层上都设置了 EPSG3857,它会返回类似这样的边界框:

绑定:6.0919189453125、45.11617660357484、11.134643554687498、46.50217348354072

如果我设置 EPSG4326,具有相同的视图:

绑定:
6.0919189453125、44.81597900390625、11.1346435546875、46.80450439453125

似乎只有纬度值已更改。

我还尝试使用 JTSTool (jts-topology-suite) 从 EPSG3857 转换为 EPSG4326,其值为:

bbox=4.0528551003362907E-4,5.4724638981914947E-5,4.1773613184440224E-4,1.0002420488398699E-4

听起来好奇怪……

有人可以帮我理解用于定义 bbox 的 CRS 吗?或者有什么方法可以改造它们?