[GIS] FingerEyes-Xr, 핑거아이즈로 생성한 밀집도(밀도도)

아래의 이미지는 웹 GIS 엔진인 핑거아이즈(FingerEyes-Xr)로 생성한 밀집도입니다. 흔히 밀집도는 Kernel Density 알고리즘을 사용해 계산됩니다. 알고리즘 명칭에 Density가 사용되어 밀집도라는 용어 대신 밀도도라는 용어가 사용될 수도 있습니다.


위의 밀집도의 대상 데이터는 교통사고 발생 지점입니다. 해외나 국내에서 웹기반의 지도 엔진에서 제공되는 밀집도 분석 결과는 HeatMap이라는 기능에서 사용된 오픈소스를 그대로 적용하거거나 개선해 구현함으로써 그 품질이 떨어집니다.

핑거아이즈는 오픈소스이므로 위의 밀집도 결과 이미지를 생성해 내는 알고리즘에 대한 코드가 제공됩니다. 혹.. 관심이 있으신 분은 해당 소스를 참고하시기 바랍니다. 핑거아이즈의 소스코드는 http://www.gisdeveloper.co.kr/?page_id=3916의 자료실을 통해 누구나 다운로드 받으실 수 있습니다.

[GIS] FingerEyes-Xr, ShapeMapLayer의 포인트에 이미지 심벌 설정

수치지도 데이터를 서비스 받아 화면에 표시하는 레이어인 XrShapeMapLayer는 도형 데이터를 표현하는 다양한 방법을 제공합니다. 단순히는 일괄적인 색상 심벌에서부터, 속성값에 따라 달라지는 다양한 심벌에까지.. 이 포스트는 포인트 타입의 수치지도 데이터에 대해서 이미지 심벌을 지정하는 코드 예입니다.

layer = new XrShapeMapLayer("LAYER_NAME", "http://www.gisdeveloper.co.kr/Xr?layerName=SPTBL");
shpTheme = layer.theme as XrSingleColorTheme;
 
var ImgSym:XrImageMarkerSymbol = new XrImageMarkerSymbol(   
    {borderEnable:false, markerUrl:"http://www.gisdeveloper.co.kr/images/0.png"});

shpTheme.markerSymbol = ImgSym;

map.layers.addLayer(layer);

포인트 타입의 수치지도의 경우 원, 사각형 등과 같은 단순 도형에서부터 위의 글에서처럼 이미지 뿐만 아니라 특수 기호 표시를 위한 텍스트 심벌을 지원합니다.

좌표계 변환 OpenAPI

좌표계 변환을 위한 OpenAPI입니다. 변환하고자 하는 좌표에 대해 WKT 형태의 포인트, 폴리라인, 폴리곤 형식으로 지정할 수 있고 변환된 좌표 결과도 WKT로 받을 수 있음으로 매우 다양한 형태로 활용될 수 있습니다. 간단하게 하나의 WGS84 경위도 좌표계 (127, 37)을 카텍(Katech) 좌표계로 변환하기 위한 OpenAPI 호출 형태는 다음과 같습니다.

사용자 삽입 이미지

간단한 URL 호출형태의 OpenAPI로써 사용된 인자값들은 다음과 같습니다.

사용자 삽입 이미지
변환될 좌표계를 지정하는 방식이 WKT라는 형식입니다. WKT에 대한 설명을 위해 폴리곤, 폴리라인, 포인트 들에 대한 간단한 예를 통해 설명하면 다음과 같습니다.

먼저 하나의 좌표를 지정할 수 있는 WKT 형태의 포인트의 예입니다. 하나의 좌표로 표현되는 포인트에 대한 WKT는 POINT 문자열로 시작합니다.

사용자 삽입 이미지
다음은 여러 개의 좌표들로 구성된 폴리라인에 대한 WKT 형태의 예입니다. 폴리라인에 대한 WKT는 선분(LINE)의 연속(STRING)이라는 의미로 LINESTRING 문자열 값으로 시작합니다.

사용자 삽입 이미지
그리고 여러 개의 좌표들로 구성된 폴리곤에 대한 WKT 형태의 예입니다. 폴리곤의 WKT는 POLYGON 문자열 값으로 시작합니다.

사용자 삽입 이미지
그리고 다음은 구멍(Hole)이 있는 폴리곤에 대한 WKT 형태의 예입니다. 위의 경우처럼 POLYGON 문자열로 시작합니다. 구멍(Hole)을 나타내는 폴리곤은 여러개가 올 수 있지만 구멍이 아닌 외곽을 나타내는 폴리곤은 하나만 올 수 있습니다.

사용자 삽입 이미지
이 좌표 변환 OpenAPI 서비스는 지오서비스 사에서 제공하고 있습니다. 학술/연구 그리고 상업적인 용도에 대해서 자유롭게 사용할 수 있습니다. 향후 더욱 다양한 좌표계를 지원할 예정입니다. 사용상의 개선점과 문제점에 대해서는 연락 또는 메일 주시면 검토 후 적극 반영토록 하겠습니다.

[GIS] 속성값으로 분류해 다수의 SHP로 저장하는 툴, ClassifySHP

지정된 조건과 일치하는 속성을 갖는 도형을 선택해 별도의 SHP 파일에 저장해주는 툴입니다. 조건을 여러 개를 지정할 수 있으므로 한번에 다수의 SHP 파일로 저장할 수 있습니다. 속성에 대한 조건은 정규 표현식을 사용합니다. 지정된 조건은 다시 파일로 저장해서 추후 다시 재사용할 수 있도록 하였습니다.

사용자 삽입 이미지
소스 코드와 실행파일을 따로 다운로드 받을 수 있도록 하였습니다. 아래의 링크를 통해 받으시기 바랍니다.

이 툴은 듀라맵(DuraMap-Xr)을 사용하므로 듀라맵을 먼저 PC에 등록해야 합니다. 듀라맵에 대한 자세한 설명과 다운로드는 다음 url을 참고하시기 바랍니다.

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

GIS 시스템 개발에 앞서 공간 데이터를 가공해야 할 일이 있어 시간을 절약하기 위해 만들어 사용하게 된 툴입니다. 다른 분들에게도 도움이 되시길 바랍니다.

[GIS] 정규표현식을 이용한 SHP 추출, ExpressionsSHP

개발자 피드백 : 포인트 타입의 SHP 파일에 대해 문제가 발생하는 것을 해결 하였습니다.

SHP 파일의 속성값을 기준으로 원하는 값과 일치하는 도형만을 추출해 새로운 SHP 파일로 추출해 내는 툴입니다. 일치하는 속성값의 기준은 정규표현식을 사용합니다.

지적도를 예로 들어 JIBUN이라는 필드값이 ‘도’로 끝나는 모든 도형을 추출하라는 정규 표현식은 ‘도$’가 됩니다. 참고로 ‘도’로 끝나는 경우 도로에 해당합니다. 아래의 실행 화면은 이와 같은 예에 대한 실행 예입니다.

사용자 삽입 이미지
보시는 것처럼 입력 SHP 파일을 지정하고 대상이 되는 필드, 정규표현식값.. 끝으로 조건과 일치하는 도형을 저장할 새로운 SHP 파일명을 지정하면 됩니다. 위의 실행에 대한 결과는 아래와 같습니다.

사용자 삽입 이미지
보시는 것처럼.. 도로만이 추출된 결과를 볼 수 있습니다. 이 프로그램은 듀라맵(http://www.gisdeveloper.co.kr/notice/574)을 이용해 개발되었으므로 듀라맵을 PC에 등록해줘야 합니다. 이 프로그램에 대한 소스 코드와 실행 파일을 아래 링크를 통해 다운받을 수 있습니다.

정규표현식을 통해 원하는 값을 선택해 내는 일은 매우 유연한 방법입니다. 원하는 경우와 상황에 대한 정규표현식에 대해서 댓글을 통해 알려주시면 성의껏 답변해 드리겠습니다.