Transcript FOSS4G_민경일
OpenGeo Suite 의
한국사용자를 위한 설정
및 활용
가이아쓰리디㈜ 민경일
1. PostGIS
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
2
PostGIS 좌표계 확인
•
•
•
PostGIS 의 좌표계 정의 테이블확인
PostGIS를 이용하여 DataBase 생성시 geometry_columns, spatial_ref_sys 테이블 생
성
좌표계 관련 테이블 : spatial_ref_sys
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
3
PostGIS 좌표계 등록
•
INSERT 구분을 이용하여 좌표계 등록 ( 참고 사이트 : http://osgeo.kr/17)
insert into spatial_ref_sys values(
5181
,'EPSG'
,5181
,'PROJCS["Korea 2000 / Central Belt",
GEOGCS["Korea 2000",
DATUM["Geocentric datum of Korea",
SPHEROID["GRS 1980", 6378137.0, 298.257222101, AUTHORITY["EPSG","7019"]],
TOWGS84[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
AUTHORITY["EPSG","6737"]],
PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]],
UNIT["degree", 0.017453292519943295],
AXIS["Geodetic longitude", EAST],
AXIS["Geodetic latitude", NORTH],
AUTHORITY["EPSG","4737"]],
PROJECTION["Transverse_Mercator", AUTHORITY["EPSG","9807"]],
PARAMETER["central_meridian", 127.0],
PARAMETER["latitude_of_origin", 38.0],
PARAMETER["scale_factor", 1.0],
PARAMETER["false_easting", 200000.0],
PARAMETER["false_northing", 500000.0],
UNIT["m", 1.0],
AXIS["Easting", EAST],
AXIS["Northing", NORTH],
AUTHORITY["EPSG","5181"]]'
,'+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=500000 +ellps=GRS80 +units=m +no_defs'
)
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
4
PostGIS 좌표계 변환
•
Spatial Function을 이용하여 좌표변환
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
5
2. GeoServer
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
6
GeoServer 사용자 좌표계 등록
•
GeoServer에서 사용자 정의 좌표계를 사용하기 위한 설정
•
data_dir/user_projections/epsg.properties
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
7
SQL View를 이용한 Layer 등록
1. GeoServer 좌측메뉴의 Layers 선택
2. Add a new resource 선택
3. PostGIS가 등록된 Store를 선택한 후 Configure new SQL view… 선택
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
8
SQL View를 이용한 Layer 등록
1.
속성값으로 사용할 컬럼과
geometry 컬럼이 포함되
도로 select 구문 작성
2.
Atrributes부분의 Guess
geometry type and srid 을
체크 한 후 Refesh 를 선택
3.
위의 view 생성구분에서
spatial fundtion을 이용하여
좌표변환한 좌표가 SRID로
등록되는 것을 확인
4.
저장
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
9
SQL View를 이용한 Layer 등록
1. Layer Edit 화면의 좌표계 설정 확인
2. Edit sql view 버튼을 선택하면 sql view
구문을 수정할 수 있음
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
10
수집된 데이터의 좌표계와 클라이언트가 사용하는 좌표계가 다를
경우
1. DB 에 클라이언트가 사용하는 좌표계로 변환된 데이터를 저장 후 사용
2. DB 에서 클라이언트가 사용하는 좌표계로 변환된 geometry를 가진
View Table을 생성하여 사용
3. GeoServer에서 SQL View를 사용하여 레이어를 등록 후 사용
4. 사용자가 GeoServer에 원하는 좌표계를 요청하여 GeoServer에서 좌표
변환 후 사용
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
11
GeoServer Fonts
•
GeoServer 의 Server Status 페이지의 Full list of available fonts 선택
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
12
GeoServer Fonts
•
GeoServer에서 사용할 수 있는 Fonts 리스트
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
13
3. OpenLayers
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
14
OpenLayers 좌표계 등록
•
Proj4js를 이용한 좌표계 설정
•
Download
•
웹페지이에 라이브러리 등록
=>
http://trac.osgeo.org/proj4js/wiki/Download
<script type="text/javascript" src="../js/proj4js-compressed.js"></script>
•
Javascript 코드에 추가
Proj4js.defs["EPSG:7188"] = '+proj=lcc +lat_1=30 +lat_2=60 +Elat_0=38 +lon_0=126 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs';
var EPGS_7188 = new OpenLayers.Projection("EPSG:7188");
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
15
OpenLayers 좌표 변환
•
포인트 좌표를 사용자가 지정한 좌표로 변환하여 Layer에 등록 하는 Sample 코드
// pointList Object 는 X,Y 좌표와 Val, ID 값을 가지고 있다고 가정
for(var i in pointList){
var point= pointList[i];
var pointGeometry = new OpenLayers.Geometry.Point(point.X,point.Y).transform(
new OpenLayers.Projection("EPSG:4326")
, new OpenLayers.Projection("EPSG:7188")
);
var pointFeature = new OpenLayers.Feature.Vector(pointGeometry , {value : point.Val} );
pointFeature.id = ‘point.ID;
pointFeatures.push(pointFeature);
}
VecterLayer.addFeatures(pointFeatures);
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
16
Openlayers로 Daum / Naver지도사용
•
•
Openlayers의 OpenLayers.Layer.XYZ 를 이용
Tile image의 위치를 x,y,z 값 즉 row, column, level 속성을 이용 하여 이미지를 요청
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
17
감사합니다.
OpenGeo Suite 의 한국사용자를 위한 설정 및 활
용
2012-10-12
18