[lat,lon] (CRS WGS_84) -> geotools -> KML(?) -> google(?) maps Друзья, использую библиотеку geotools-jts +gt-swing версии 10-*.
На вход подается latitude, longitude точек (CRS WGS_84), радиус в метрах и углы. Данная информация описывает набор окружностей и секторов.
Я ручками преобразую lat/lon в x,y и отрисовываю результат на PNG при помощи java 2D api.
К сожалению, не знаю как достичь следующего:
1. Насколько я понял, можно задать CRS при помощи api geotools, тогда построение Geometry (circle, arc) будет производиться верно. Как это сделать? У меня многопоточное приложение, не понимаю, как работает механизм зажания исходной CRS
2. Есть ли другие java билиотеки, позволяющие на вход принять геоданные, создать на их основе геометрические формы, а на выходе построить визуализацию или kml формат для дальнейшего отображения результата?
Да, вы правы. Вы можете использовать библиотеку GeoTools для работы с геоданными и преобразования между различными системами координат. Для задания CRS при помощи API GeoTools, вам нужно создать объект CRS и использовать его при создании геометрических объектов. Например:
CoordinateReferenceSystem crs = CRS.decode("EPSG:4326"); // WGS 84 GeometryFactory geomFactory = new GeometryFactory(new PrecisionModel(), crs); Point point = geomFactory.createPoint(new Coordinate(lon, lat)); // создание точки с заданными координатами
Чтобы создать визуализацию или KML формат для отображения результатов, вы можете использовать библиотеку GeoTools для создания KML документа и добавления геометрических объектов в него. Например:
KML kml = new KML(); Document document = kml.createAndSetDocument(); Placemark placemark = document.createAndAddPlacemark(); placemark.createAndSetPoint().addToCoordinates(lon, lat); // добавление других геометрических объектов File file = new File("output.kml"); kml.marshal(file); // сохранение KML файла
Кроме того, существует также библиотека JTS (Java Topology Suite), которая предоставляет функционал для работы с геометрическими объектами, такими как точки, линии, полигоны и т.д. Вы можете использовать JTS в сочетании с GeoTools для создания и визуализации геометрических объектов.
Да, вы правы. Вы можете использовать библиотеку GeoTools для работы с геоданными и преобразования между различными системами координат. Для задания CRS при помощи API GeoTools, вам нужно создать объект CRS и использовать его при создании геометрических объектов. Например:
CoordinateReferenceSystem crs = CRS.decode("EPSG:4326"); // WGS 84GeometryFactory geomFactory = new GeometryFactory(new PrecisionModel(), crs);
Point point = geomFactory.createPoint(new Coordinate(lon, lat)); // создание точки с заданными координатами
Чтобы создать визуализацию или KML формат для отображения результатов, вы можете использовать библиотеку GeoTools для создания KML документа и добавления геометрических объектов в него. Например:
KML kml = new KML();Document document = kml.createAndSetDocument();
Placemark placemark = document.createAndAddPlacemark();
placemark.createAndSetPoint().addToCoordinates(lon, lat);
// добавление других геометрических объектов
File file = new File("output.kml");
kml.marshal(file); // сохранение KML файла
Кроме того, существует также библиотека JTS (Java Topology Suite), которая предоставляет функционал для работы с геометрическими объектами, такими как точки, линии, полигоны и т.д. Вы можете использовать JTS в сочетании с GeoTools для создания и визуализации геометрических объектов.