ํฐ์คํ ๋ฆฌ ๋ทฐ
โ Programming/โ GIS
[ GIS ] shp ๋ฐ์ดํฐ์ ์ง์ค๋ฉํธ๋ฆฌ ์ขํ ์์ ๋ณ๊ฒฝํ๊ธฐ ( feat. geotools )
Kithub 2021. 7. 20. 16:13๋ฐ์ํ
geotools ๋ก 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' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ