问题标签 [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.
java - 如何在 Java 中对某些形状进行三角剖分/镶嵌?
我想从 GeoTools 镶嵌国家形状,以便在地球表面上以 3D 形式显示它。GeoTools 使用 JTS 拓扑套件,内部看起来功能丰富。
它是否包含细分某些形状的实用程序?我看到有 triangulation 包,但不知道如何将它用于带孔的形状。
我也用它不仅像这里一样连接现有顶点
它应该用内部的多个顶点填充形状。
更新
我发现,JTS 包含ConformingDelaunayTriangulationBuilder
允许以某种方式制作所需镶嵌的类,但效果不好。首先,它只允许约束,这意味着需要额外的代码来从凹入区域中删除三角形。而且它还试图保留曲面细分的 Delaunay 特性,这会导致创建许多额外的部分。
最后,它会导致ConstraintEnforcementException
复杂的形状,如国家和无法使用。
我还发现了“三角形”包,它是用 C 语言编写的,实现了Chew 的第二个算法,效果很好
现在我想知道,它是移植到 Java 还是封装到其中?
java - 如何在 JTS 中枚举几何中的顶点?
Java Topology Suite 有Geometry
类,有getNumPoints()
方法。根据文档,它计算所有组成几何中的所有顶点。
如何枚举所有这些点?它们可以通过getCoordinates()
方法获得,但这看起来不是最优的,因为 (1) 不是迭代的并且 (2) 需要将每个坐标元组转换为Point
by GeomertFactory
。
java - Java Topology Suite 中的 CGAlgorithms.isCCW 给出了相反的结果
我正在尝试测试坐标环是顺时针还是逆时针。据我所知,有一种方法CGAlgorithms.isCCW
可以做到这一点。但是,无论我为该方法提供什么环,结果都与预期相反,也就是说,当我期望环是顺时针时,它说环是逆时针的,反之亦然。
我尝试使用不同的坐标数组和两个不同版本的库(1.14-SNAPSHOT 和 1.8)
我错过了什么吗?
java - 需要帮助将 JTS 几何对象数组转换为形状文件
我有一组需要放入形状文件的 JTS Geometry 对象。我还有一些其他属性需要放入 DBase 文件中。我还需要索引空间对象,如果需要,创建投影文件。有没有办法使用 JTS/GeoTools 来做到这一点。我尝试了 ShapeFileWriter 但这似乎还不够(例如不支持 dbf)。
java - 使用 solr 对多边形进行异常索引(未找到 jts?)
我在设置 solr 4.10.2 以使用多边形时遇到问题。我尝试调整示例应用程序以使用名为geom
type的字段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 无法识别。我必须在某处配置它吗?
问候
丹尼尔
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 上。
任何帮助或解决方法将不胜感激。
java - JTS + 读取地理数据:点数必须为 0 或 >3
我正在尝试从文件中读取一些地理日期。我在java中使用geotools包。我有可用的地理数据,如 kml、gml 和 .shp,这些都是相当大的文件。那些来自外部的 bron 并且格式正确。
当我想阅读工具时,GeoTools 使用 JTS。我也尝试直接使用 JTS,但我收到了相同的错误消息。我得到的错误是:
我在文件中途收到此错误。我手动检查了所有文件:所有“线性环”都超过三个点。我尝试读取哪个文件也没有关系。
代码片段:
KML 文件中的一部分
xml - 如何用 gml3 只写一个 jts 几何
我有一个几何(JTS)几何,我想用 GML3 编码这个几何
我以这种方式完成了这项工作 Gml2 :
就像下面
在 GML3 中有什么方法可以做到这一点吗?
我需要 gml:posList 标签而不是 gml:coordinates
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");
还有另一种选择,我没有看到它起作用。
谢谢!
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 吗?或者有什么方法可以改造它们?