Есть ли способ, чтобы собрать многоугольник JTS непосредственно из массива двойников?Соберите многоугольник JTS непосредственно из массива двойников?
В настоящее время я
- Перебор массива точек, чтобы создать массив
Coordinate
экземпляров - Создание
CoordinateSequence
из массиваCoordinate
s - Создание
LinearRing
изCoordinateSequence
- Создание
Polygon
отLinearRing
Согласно моему профилированию, самым медленным шагом является создание множества экземпляров Coordinate
в цикле.
Я должен упомянуть, что я звоню в библиотеку JTS из Matlab, поэтому в моем цикле могут возникнуть дополнительные затраты по сравнению с чистой реализацией 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());