[GIS] DuraMap, 듀라맵 3.1.0.1 버전업

듀라맵이 3.1.0.1로 버전업 되었습니다. 추가된 기능 2가지와 해결된 오류입니다. 먼저 해결된 오류는 윈도우즈 XP에서 편집시 잦은 다운현상을 해결하였습니다. 이 문제에 대한 이유는 XP와 비스타(Windows 7 포함)에서 동기화 객체인 CriticalSection의 작동에 차이가 발생하는 것에 원인이 있었습니다. 그리고 추가된 기능 2가지는 다음과 같습니다. 첫번째로 사용자가 정의한 도형을 포인트 심벌로 사용할 수 있게 되었습니다. 그리고 두번째는 폴리곤의 라벨 표시에서 항상 폴리곤 위에 표시되도록 개선함으로써 라벨의 가시성을 향상시켰습니다.

먼저 사용자 정의 도형을 포인트 심벌로 지정하는 기능은 추후 CAD 데이터를 완벽하게 지원하기 위한 기능으로 CAD에서는 포인트에 대해 Block Symbol 기능과 유사합니다. 이 기능은 추후 CAD 데이터(DXF 파일)을 지원하는 기능을 추가할때 이 기능이 유용하게 사용될 예정입니다.

사용자 삽입 이미지
그리고 라벨 표시에서 항상 폴리곤 위에 표시되도록 개선한 기능은.. 기존에 폴리곤의 라벨은 항상 도형의 무게중심점(Centroid)를 기준으로 라벨을 표시하도록 하였으나 가끔 폴리곤 밖으로 라벨이 표시되는 현상이 발생하여 항상 도형 안에 라벨이 표시되도록 한 기능입니다. 위의 이미지에서 첫번째는 일반적인 도형의 무게중심점 위치에 라벨을 표시하도록 한 이미지이고 두번째가 이번에 새롭게 개선된 라벨 표시에 대한 이미지입니다.

추가된 새로운 기능에 대한 API 사용방법에 대해서는 추후 별도의 글을 통해 소개드리도록 하겠습니다.

개발자에게 추천하는 차 ‘오미자차’

사용자 삽입 이미지
개발 업무로 이번주에 계획한 것을 마무리 하면서.. 잠시 여유를 가져봅니다. 요즘 커피 대신 마시고 있는 오미자 차입니다. 저와 같은 개발자분들에게 이 오미자차를 추천해 드리는 이유는 이 오미자차가 머리를 맑게 해주는 효과가 있기 때문입니다. 또한 다른 차와는 다르게 따뜻한 물일 필요 없이 차가운 물에도 잘 섞이고 맛도 좋습니다. 제가 먹고 있는 것은 진액(원액)인데.. 물에 희석시켜 마십니다. 이게 편하기도 하고.. 맛 조절도 가능합니다. 개발자 여러분, 과도한 커피나 담배로 머리 망치지 마시고.. 스스로 몸을 돌보며 자기 관리 하시기 바랍니다.

SimpleSHP v0.1

SimpleSHP는 ESRI에서 정의한 SHP와 DBF 파일을 처리하기 위한 자바 클래스 모음입니다. 이 라이브러리는 사용하기 쉬우며 가볍고 매우 단순한 구조를 갖습니다. 아래의 UML은 SHP 파일 Access에 대한 Class Diagram 입니다.

사용자 삽입 이미지

SHP 파일에 대한 Access에 대한 예제 코드는 아래와 같습니다.

AccessSHP access = new AccessSHP("filename.shp");
RowSetSHP rowSet = access.getRowSet();
int rowCount = rowSet.getRowCount();
try {
    for(int fid=0; fid < rotCount; fid++) {
        RowSHP row = rowSet.getRow(fid+1);
        if(row.load()) {
            System.out.println(row.getFID());
            Geometry geom = row.getGeometry();
            System.out.println(geom.getEnvelopeInternal().toString());
            row.unload();
        }
    }

    access.release();
} catch (IOException e) {
    e.printStackTrace();
}  

사용자 삽입 이미지

DBF 파일에 대한 Access에 대한 예제 코드는 아래와 같습니다.

AccessDBF access = new AccessDBF("filename.dbf");
RowSetDBF rowSet = access.getRowSet();
int rowCount = rowSet.getRowCount();
try {
    for(int fid=0; fid < rowCount; ++fid) {       
        RowDBF row = rowSet.getRow(fid+1);
        if(row.load()) {
            System.out.println(row.getFID());
            FieldSet fieldSet = access.getFieldSet();
            for(int iField=0; iField                Field field = fieldSet.getField(iField);
                System.out.println(field.getFieldName() 
                    + ": " + row.getValueAsString(iField));
            }
  
            row.unload();
        }

        access.release();
    }
} catch (IOException e) {
    e.printStackTrace();
}  

버전 이력
           1.  v0.1 2011/05/20 최초 배포

라이브러리 소스코드 다운로드

상세 문서 URL

http://www.gisdeveloper.co.kr/download/simpleshp

외부 참조 라이브러리

JTS(Java Topology Suite, http://www.vividsolutions.com/jts/jtshome.htm)