java - 直接从 double 组组装 JTS 多边形?

标签 java matlab jts

是否有一种高性能的方法可以直接从 double 组组装 JTS 多边形?

目前,我

  1. 循环点数组以创建坐标实例数组
  2. 坐标数组创建一个坐标序列
  3. CoordinateSequence 创建 LinearRing
  4. LinearRing创建Polygon

根据我的分析,迄今为止最慢的步骤是在循环中创建许多 Cooperative 实例。

我应该提到,我是从 Matlab 调用 JTS 库,因此与纯 Java 实现相比,我的循环中可能会产生一些额外的成本。

这是 MATLAB 代码:

% assemble linear ring for exterior poly
[numExtPoints, ~] = size(exteriorCoords);
jExtCoords(numExtPoints) = jts.geom.Coordinate(); % pre-allocate
for ic = 1:numExtPoints
    jExtCoords(ic) = jts.geom.Coordinate(exteriorCoords(ic,1), exteriorCoords(ic,2));
end

jCoordinateSequence = jts.geom.impl.CoordinateArraySequence(jExtCoords);
jExtLinearRing = jts.geom.LinearRing(jCoordinateSequence, jts.geom.GeometryFactory());

% build polygon 
obj.jGeometry = jts.geom.Polygon(jExtLinearRing, [], jts.geom.GeometryFactory());

最佳答案

您可以使用此构造函数:

公共(public)多边形多边形(双... ord)

来自

org.geotools.geometry.jts.GeometryBuilder (Documentation)

示例:

Polygon p = new GeometryBuilder().polygon(new double[]{0,0,10,0,10,10});

关于java - 直接从 double 组组装 JTS 多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41127827/

相关文章:

MATLAB - 使用 for 循环查找 x^2 + y 的所有组合

MATLAB - 创建对变量的引用(句柄?)

java - 使用 JTS 简化段列表

java - 正向lookbehind正则表达式明显的最大长度

java - 如何实现字符串数组的二分查找?

java - Android:确保 UI 操作在 UI 线程上完成的最佳实践

apache-spark - JTS 拓扑套件中的 STRtree : bulk load data and build index

java - WireMock 播放和录音可以同时使用吗?

java - 无法使用matlab导入java库

java - 用 JTS 画圆点