У меня есть функция, которая читает набор координат, и я получаю UTM-координаты.Позже я конвертирую эти UTM-координаты в WGS84.Нет проблем, когда эти данные поступают из набора из 4 файлов (shp, .dbf, .shx и .prj).
Это мой код для получения координат и их преобразования:
public Geometry getGeometryDistrict(String refCatDistrict, String shapeFileDistrict){
Geometry union = null;
File shapeFile = new File (shapeFileDistrict);
try {
Query query = new Query();
query.setCoordinateSystem(DefaultGeographicCRS.WGS84);
Filter filter = CQL.toFilter("obj_co_id = '"+refCatDistrict+"'");
query.setFilter(filter);
FileDataStore storeDistrict = FileDataStoreFinder.getDataStore(shapeFile);
SimpleFeatureSource featureSource = storeDistrict.getFeatureSource();
SimpleFeatureCollection collection = featureSource.getFeatures(query);
SimpleFeature fDistrict = null;
ArrayList<Geometry> geometries = new ArrayList<>();
SimpleFeatureIterator itrDistrict = collection.features();
while(itrDistrict.hasNext()){
fDistrict = itrDistrict.next();
Geometry geomDistrict = (Geometry)fDistrict.getDefaultGeometry();
geometries.add(geomDistrict);
}
GeometryFactory factory = new GeometryFactory();
GeometryCollection geometryCollection = (GeometryCollection) factory.buildGeometry( geometries );
union = geometryCollection.union();
itrDistrict.close();
storeDistrict.dispose();
}catch(IOException | NoSuchElementException | CQLException e){
Throwable cause = e.getCause();
System.out.println(cause);
}
return union;
}
Моя проблема заключается в том, что эти данные не всегда содержат файл .prj (необходимый для преобразования координат), и поступают только 3 файла (.dbf, .shp и .shx).
Мое сомнение:Есть ли способ конвертировать UTM-координаты в WGS84 без файла .prj?