7월, 2011의 게시물 표시

[FOSS4G]GeoServer + KML + Google Earth

이미지
GeoServer 는 WMS 서비스를 확장한 KML 서비스가 가능합니다. ▣ KML/KMZ로 저장하기 GeoServer의 Layer Preview에서 아래와 같이 KML(Compressed(KMZ), Plain(KML)) 포맷을 선택하면 로컬 파일로 저장이 가능합니다. ▣ 구글 어스에 네트워크 링크로 레이어 추가하기 GeoServer의 Layer Preview에서 구글 어스에 추가할 레이어를 확인 후 아래와 같이 KML 링크에 오른쪽 마우스를 클릭 후 링크 주소를 복사합니다. 네트워크 링크로 레이어를 추가하면 GeoServer에서 스타일링을 관리할 수 있으나, Refresh 후 약간의 깜빡임이 생기네요. 일반적으로 URL 체계는 다음과 같습니다. http://GEOSERVER_URL/워크스페이스명/wms/kml?layers=레이어명 또는 http://GEOSERVER_URL/wms/kml?layers=레이어명 ex)http://localhost:8090/geoserver/wms/kml?layers=cite:KR_AP_SID 구글 어스를 실행 후 추가(A) -> 네트워크 링크 메뉴를 실행합니다. 아래와 같이 복사한 KML 서비스 링크를 복사하고 이름을 정의합니다. 확인 버튼을 누르면 GeoServer에서 정의한 심볼과 같이 레이어가 추가됩니다. ▣ Google Earth에서 확인 ▣ ArcGIS Layer To KML ArcGIS 에서도 다음과 같이 레이어를 KML로 내보내기 할 수 있으며, 설정한 심볼 및 라벨 정보가 그대로 구글 어스에서 보여지게 됩니다. * 팁 : Label/Display Field 설정 확인

[GeoTools]Graduated Color Renderer 생성

이미지
이번 시간에는 GeoTools  및  GeoTools의 Extension 중 하나인 Brewer를 이용하여 Graduated Color Renderer를 생성하는 샘플 코드를 작성해 보도록 하겠습니다. ▣ 학습 내용  - Shapefile DataStore  및 Shapefile 불러오기  - Function 및  ColorBrewer  사용하기  - Style 생성 및 SLD XML로 내보내기  - MapContext  사용하여 지도 보기 ▣ Reference ◎ GeoTools Brewer Extension  - http://docs.geotools.org/latest/userguide/extension/brewer/index.html# ◎ Colorbrewer: Color Advice for Maps : http://colorbrewer2.org/  - Colorbrewer에서 사용되는 Palette Name들입니다.  - Diverging: PuOr, BrBG, PRGn, PiYG, RdBu, RdGy, RdYlBu, Spectral, RdYlGn  - Qualitative: Set1, Pastel1, Set2, Pastel2, Dark2, Set3, Paired, Accents,  - Sequential: YlGn, YlGnBu, GnBu, BuGn, PuBuGn, PuBu, BuPu, RdPu, PuRd, OrRd, YlOrRd, YlOrBr, Purples, Blues, Greens, Oranges, Reds, Grays, ◎ Ranged ClassificationFunction  - GeoTools에 지원하는 ClassificationFunction은 다음과 같습니다.  - JenksNaturalBreaksFunction(Je...

[GeoServer]X, Y 필드를 포함한 테이블을 레이어로 퍼블리싱 하기

이미지
GeoServer에서는 물리적으로 존재하는 레이어나 테이블을 이용하여 Virtual Table을 구성해서 레이어를 퍼블리싱 할 수 있는 확장기능이 있습니다. 자세한 내용은 아래를 참고하세요. SQL views - http://docs.geoserver.org/latest/en/user/data/sqlview.html 아래 예제는 이를 조금 확장하여  X, Y 필드를 포함한 테이블을 포인트 레이어로 퍼블리싱 하는 방법을 설명합니다. ◎ 가정  - 다음과 같이 PostgreSQL(+PostGIS)의 테이블 중 lon(경도, x좌표값으로 가정), lat(위도, y좌표값으로 가정) 필드를 포함하는 테이블이 있습니다.  - 2011년 7월 4일자 기상청 제공 지진발생현황테이블 엑셀파일 ○ PostgreSQL 샘플 테이블 스키마 CREATE TABLE public . earthquake ( rgn character varying ( 10 ) , t_year integer , et date , em numeric , lon numeric , lat numeric , loc character varying ( 200 ) , fin_udt character varying ( 8 ) ) WITH ( OIDS = FALSE ) ; ALTER TABLE public . earthquake OWNER TO postgres ; ◎ GeoServer에서 퍼블리싱하기 우선 PostGIS DataStore를 추가합니다. GeoServer에서 DataStore를 추가하는 방법은 아래 포스팅을 참고하세요  -  GeoServer 2.0.0 설치 및 활용 가이드 Layers - Add a new resource를 선택 후 다음과 같이 X, Y 필드값이 포함된 테이블을 확인 후 스키마정보를 미리 확인합니다. 대상 테이블은 경위도 좌표...

[WPS] Basic & Advanced Statistics Process

이미지
WPS (Web Processing Service)를 활용하는  KOPSS (국토공간계획지원체계) 및 타 프로젝트에서 활용이 가능하도록 구성한 Basic & Advanced Statistics Process들 1. 개요 - GeoTools와 GeoServer에서 운영되도록 구성 - XML은 Custom PPIO를 확장 - GML은 GeoServer에서 지원하는 GML2, GML3를 지원 - FeatureCollection의 Output Format은 GML, Shape-zip, GeoJSON 외 KML을 확장 - 프로세스들은 ArcGIS와 결과값 비교함  : 공간통계 프로세스들은 ArcGIS - Float연산, WPS - Double연산, 소숫점 6자리까지 오차 없음 2. WPS Process - Basic & Advanced Statistics 3. GeoServer WPS Request Builder에서 실행한 몇가지 샘플 ◎ SA_Classify ○ Request <?xml version="1.0" encoding="UTF-8"?> <wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.ope...

Spatial Data를 지원하는 국산 DBMS GeoTools용 JdbcDataStore 확장

이미지
최신 정보는 이 블로그의 다음 포스트 ( [GeoTools Data Store] 국내 공간 DBMS 및 파일 포맷 지원 ) 를 참조하세요. Spatial Data를 지원하는 국산 DBMS GeoTools용 JdbcDataStore 확장 1.  Altibase Spatial(버전 5.5.1)용 GeoTools JdbcDataStore 2. TmaxSoft - Tibero Spatial ◎ GeoTools에서 DataStore 연결 Map<String, Object> params = new HashMap<String, Object>() ; params.put(JDBCDataStoreFactory.DBTYPE.key, "tibero") ; params.put(JDBCDataStoreFactory.HOST.key, "localhost") ; params.put(JDBCDataStoreFactory.DATABASE.key, "tibero") ; params.put(JDBCDataStoreFactory.PORT.key, "8629") ; params.put(JDBCDataStoreFactory.USER.key, "tibero") ; params.put(JDBCDataStoreFactory.PASSWD.key, "manager") ; TiberoNGDataStoreFactory factory = new TiberoNGDataStoreFactory() ; DataStore dataStore = factory.createDataStore(params) ; // or DataStore dataStore = DataStoreFinder.getDataStore(params) ; 3. REALTIMETECH - Kairos Spatial ◎ GeoTools에서 DataStore 연결 Map<String, ...