是否有直接从双打数组中组装JTS多边形的高效方法?
目前,我
Coordinate
实例CoordinateSequence
s Coordinate
LinearRing
CoordinateSequence
Polygon
LinearRing
醇>
根据我的分析,到目前为止最慢的步骤是在循环中创建许多Coordinate
个实例。
我应该提到我从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());
答案 0 :(得分:0)
您可以使用此构造函数:
public Polygon polygon(double... ord)
来自
org.geotools.geometry.jts.GeometryBuilder
(Documentation)
示例:
Polygon p = new GeometryBuilder().polygon(new double[]{0,0,10,0,10,10});