gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:58:35 25 4
gpt4 key购买 nike

是否有一种高性能的方法可以直接从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com