Библиотека для анализа геометрии GML3.2 (включая 3D) на JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Библиотека для анализа геометрии GML3.2 (включая 3D) на Java

Сообщение Anonymous »

Мне нужна библиотека Java, которая сможет надежно анализировать геометрию GML 3.2, включая трехмерную геометрию, непосредственно из XML. Я пробовал использовать GeoTools, но, похоже, он поддерживает только некоторые базовые типы геометрии (например, простые точки), и даже в этом случае поддержка 3D ограничена конкретными представлениями.

Код: Выделить всё

import org.geotools.gml3.GMLConfiguration;
import org.geotools.xsd.Parser;

private Geometry parseGML(String gmlString) throws Exception {
String fixed = convertUrnToEpsg(gmlString);
GMLConfiguration gmlConfig = new GMLConfiguration();
Parser parser = new Parser(gmlConfig);
var parsed = parser.parse(new ByteArrayInputStream(fixed.getBytes(StandardCharsets.UTF_8)));
if (parsed instanceof Geometry[] geometries) {
for (Geometry geometry : geometries) {
System.out.println(geometry);
}
} else if (parsed instanceof Geometry geometry) {
System.out.println(geometry);
return geometry;
} else {
System.out.println("Type: " + parsed.getClass().getSimpleName());
}
return null;
}

Например, это отлично работает с GeoTools:

Код: Выделить всё

String gmlElevatedPoint = """

52.1 -0.1 100

""";
Geometry geometry = parseGML(gmlElevatedPoint);

Но это не получается:

Код: Выделить всё

String gmlCurve = """




57.0833 -40.0 52.85
-41.7833 48.4667 -41.3333
44.0333 -40.0 42.6
-37.0 40.7333 -37.1833
41.4 -30.05 43.5167
-21.1333 56.6667 -21.1333
57.0833 -40.0




""";
Geometry geometry = parseGML(gmlCurve);

Существуют ли какие-либо другие библиотеки, которые могут анализировать более сложную геометрию GML 3.2, особенно 3D-кривые и поверхности? Или есть особый способ настроить GeoTools для поддержки этих случаев? Будем очень признательны за любые предложения и примеры.
Существует ли какая-нибудь библиотека для обработки геометрии AIXM?

Подробнее здесь: https://stackoverflow.com/questions/791 ... 3d-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»