ν‹°μŠ€ν† λ¦¬ λ·°

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();
}

 

λŒ“κΈ€
λ°˜μ‘ν˜•