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)

[GIS] 거리 매트릭스(Matrix) 산출 툴

여기서 언급하는 거리 매트릭스는 공간상에 존재하는 점들 간의 모든 거리를 쉽게 계산한 행렬 형태의 결과를 말합니다. 대학원 논문을 쓰시는 분이 도움을 요청하셔서 만들어 놓은 프로그램인데.. 혹 이런 기능을 필요로 하시는 다른 분들도 있을지 싶어 공유해 봅니다. 듀라맵으로 만들었으므로 듀라맵을 먼저 설치하신 후 실행하시기 바랍니다. (듀라맵 다운로드)

사용자 삽입 이미지

위의 첨부 파일에 소스 코드와 컴파일된 실행 파일이 함께 들어있습니다. 입력할 레이어는 SHP 파일로 포인트 타입이여야 합니다. 만약 주소 데이터를 가지고 계신다면.. 지오코딩을 통해 포인트 SHP로 변환활 수 있습니다. 결과 파일 형식은 CSV로 엑셀에서 열어 보면 다음과 같습니다. (지오코딩 툴 다운로드)

사용자 삽입 이미지
그럼 필요로 하시는 분에게 도움이 되길 바랍니다.

[GIS] SHP을 SQL 문으로 변환해 주는 툴 – SHP2SQL

SHP 파일의 좌표 정보와 속성 정보를 DBMS에 테이블 구조를 생성하고 값을 추가하는데 필요한 SQL문을 생성해 주는 툴입니다. 현재는 포인트 타입에 대한 SHP 파일에 대해서 적용할 수 있습니다. 먼저 실행 화면은 아래와 같습니다.

사용자 삽입 이미지
위의 UI 화면에서 Export Fields에 DBMS로 내보내고자 하는 필드를 선택하면 됩니다.. 필요없는 필드값에 대해서도 제외시켜도 됩니다. 이 기능을 이용해서 DBMS에 따라 필드명으로써 사용할 수 없는 필드는 이곳을 통해 제외시켜줄 수 도 있습니다.. 위의 화면 예시처럼 입력값들을 지정한 후 변환 버튼을 누르게 되면 다음과 같은 sql 문이 담긴 텍스트 파일이 만들어 집니다..

사용자 삽입 이미지
테이블을 생성하고 생성된 테이블에 속성값을 추가하기 위한 Ansi SQL 구문으로 구성됩니다.. 이 내용을 수정해 줄 필요(테이블명)도 있을 것입니다..  이렇게 생성된 SQL 파일을 각 DBMS에서 불러와 실행해주면 간단하게 DBMS에 SHP 파일에 대한 테이블이 생성됩니다.. MySQL의 경우 soruce 명령어를 이용해서 외부의 sql 문이 담긴 파일을 실행할 수 있습니다.

이 툴의 실행을 위해서는 최신 버전의 듀라맵을 설치하셔야 합니다. 다음 url을 통해 듀라맵을 설치하시기 바랍니다.

http://www.gisdeveloper.co.kr/notice/574

소스 코드와 컴파일된 실행 파일 모두를 제공해 드리니.. 개발자 분이라면 목적에 맞게 커스터마징해 사용하시길 바랍니다..

아래의 이미지는 위에서 만들어진 sql 구문이 담긴 text 파일을 MySQL에서 실행시켜 만들어진 테이블을 조회해 본 화면입니다.

사용자 삽입 이미지
위의 이미지를 보시면.. X, Y 필드명으로 POI의 좌표가 자동으로 추가된 것을 확인할 수 있습니다.

[GIS] SHP 파일을 TXT 파일로 변환해 주는 툴 – Shp2Txt

SHP 파일은 바이너리 파일인지라.. 간단히 읽기에는 어려움이 있습니다. 해서.. SHP 파일을 일반적인 텍스트 파일로 변환하여 좌표나 속성값을 쉽게 읽거나.. 아니면 이 텍스트 파일을 읽어 자신이 원하는 또 다른 형식으로 변환하여 활용할 수 있도록 개발자를 돕는 툴입니다. 실행은 간단합니다. 아래처럼 입력할 SHP 파일을 지정하고 저장할 TXT 파일 이름을 지정해 주고 변환 버튼을 클릭하면 됩니다.

사용자 삽입 이미지
만들어진 txt 파일을 살펴보면 아래와 같습니다. 처음 도형에 대한 좌표 리스트가 나오며.. 이 도형에 대한 속성값이 ‘|’ 문자로 구분되어 출력됩니다. 빨간색으로 표시된 부분이 바로 도형에 대한 정보이며 파랑색으로 표시된 부분이 해당 도형의 속성에 대한 정보입니다.

사용자 삽입 이미지
끝으로… 이 프로그램은 듀라맵을 기반으로 수행됩니다. 실행을 위해 먼저 듀라맵을 설치(http://www.gisdeveloper.co.kr/notice/574)하셔야 합니다. 이 툴에 대한 소스 파일과 실행 파일을 모두 올려 드립니다. 개발이 가능하신 분이라면 자신이 원하는 텍스트 형식으로 저장할 수 있도록 수정이 가능할 것입니다..

[GIS] Polygon To Point

많은 경우에 Polygon 형태의 SHP 파일을 Point 형태의 SHP 파일로 변환해야할 필요가 있습니다. 이때 폴리곤을 포인트로 변환하기 위해 폴리곤의 중심섬(Centroid)을 생각할 수 있는데.. 이 툴은 폴리곤에 대한 SHP 파일을 각 폴리곤의 중심점으로 하여 포인트 SHP 파일로 변환해주는 툴입니다. 포인트로 변환된 SHP 파일에 대한 속성 파일인 DBF에는 단순히 FID 값만이 저장되는데.. 이에 대해서는 원본 폴리곤 SHP 파일에 대한 DBF를 변환된 포인트 SHP 파일과 확장자만 다르게 하여 변경해주면 속성값을 그대로 유지해주는 효과가 있습니다. 아래는 간단한 사용예입니다.

사용자 삽입 이미지
사실 이 툴은 ArcGIS에서 이와 동일한 기능을 하는 FeatureToPoint라는 툴박스의 기능이 제대로 작동하지 않는 문제가 있다고 하여 DuraMap-Xr로 해당 기능을 만든 프로그램입니다. 이 프로그램을 다운로드 하기 위해서 아래의 링크를 통해 받으시기 바랍니다. 참고로 이 프로그램을 실행하기 위해서는 DuraMap-Xr 맵엔진을 등록하여야 하며 이 사이트에서 다운로드 받으실 수 있습니다.