ν°μ€ν 리 λ·°
β Programming/β GIS
[ GIS ] shp λ°μ΄ν°μ μ§μ€λ©νΈλ¦¬ μ’ν μμ λ³κ²½νκΈ° ( feat. geotools )
Kithub 2021. 7. 20. 16:13geotools λ‘ shp > postsql μν¬νΈμ μ’ν μμλ₯Ό λ³κ²½νμ¬ λ°μ΄ν°λ₯Ό λ£μ μ μλ€.
SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder();
// μ’ν x.y μμ λ³ν
Hints hints = new Hints(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER, Boolean.FALSE);
CRSAuthorityFactory factory = ReferencingFactoryFinder.getCRSAuthorityFactory("EPSG", hints);
CoordinateReferenceSystem AXIS_CRS = factory.createCoordinateReferenceSystem("EPSG:4326");
builder.setCRS(AXIS_CRS);
μ’νλ³νμ μ£Όμν΄μΌν μ
μ’ν λ³νμ΄ νμν κ²½μ°
λ°λμ κΈ°μ‘΄μ’νκ³μ λ³κ²½ν μ’νκ³μ AXIS ORDERκ° λμΌν΄μΌ νλ€.
λλ¬Έμ μμμ μ μν μμ±ν factory κ°μ²΄λ₯Ό ν΅ν΄
μ’νμμλ₯Ό μ¬μ μν CRSκ°μ²΄λ‘ λ μ’ν체κ³μ μμλ₯Ό λ§μΆ°μ£Όλ©΄ λλ€.
CRSAuthorityFactory factory = ReferencingFactoryFinder.getCRSAuthorityFactory("EPSG", hints);
CoordinateReferenceSystem sourceCRS_T = factory.createCoordinateReferenceSystem("EPSG:"+crsCode);
CoordinateReferenceSystem targetCRS = factory.createCoordinateReferenceSystem(shaEPSG);
MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS,true);
try (SimpleFeatureIterator iterator = reCollection.features()) {
while (iterator.hasNext()) {
SimpleFeature type = iterator.next();
Geometry defaultGeometry = (Geometry) type.getDefaultGeometry();
type.setAttribute("the_geom", JTS.transform(defaultGeometry, transform));
}
} catch (MismatchedDimensionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
'β Programming > β GIS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λκΈ
λ°μν