2010년 11월 30일 화요일

GeoServer 2.1

지원환경

- WMS1.1.1, WFS(1.0 and 1.1, 트랜잭션, 락기능), WCS(1.0, 1.1) 스펙 지원

- 지원 Database 및 FORMAT : PostGIS, ArcSDE, DB2, Oracle, Shapefile, VPF(Vector Product Format), MySQL, MapInfo, Cascading WFS

- GeoTIFF, GTOPO30, ArcGrid, WorldImages, ImageMosiacs and Image Pyramids 를 위한 Native Java 지원

- GDAL ImageIO Extension을 통한 MrSID, ECW, JPEG2000, DTED, Erdas Imagine, and NITF 지원

- 기본적으로 수백가지의 EPSG projection을 내장하고 있음.

- 웹에서 표현 가능한 Output 형식 : JPEG, GIF, PNG, PDF, SVG, KML, GeoRSS

- Google Earth 지원, 벡터와 래스터의 중첩, 2.5D extrudes, Time, pop-ups와 titles에 대한 고급 템플릿 옵션, SLD 스타일링

- Ability to 'publish' data to Google's geo crawlers, so data from GeoServer can be exposed on Google Maps and Earth searches. (see blog post, docs coming soon)

GeoWebCache 와 통합된 가속 타일 매핑(like Openlayers, Google Maps)

- Raw 벡터 데이터를 WFS를 통해서 GML(2.1.2 and 3.1.1), GeoJSON, zipped Shapefiles 로 이용 가능.

- 기본적인 Anti-aliased Image : 성능향상을 위한 custom defined palette 옵션

- OpenLayers 와 통합된 기본적인 ajax 뷰어와 프리뷰 엔진.

- 모든 데이터 형식에서 WFS-T 프로토콜 표준을 통해 자동 데이터베이스 트랜잭션을 지원

- Versioning WFS to support wiki-style history, attribution, and rollbacks on geospatial data.

- powerful acegi 자바 프래임워크를 통한 통합 보안(개인정보 및 유저의 레이어 그룹을 확보)

- Component WMS / Feature Portrayal Service 지원

- WFS Locking 의 전체 지원을 통한 긴 트랜잭션

- Streaming data readers: no memory bound limit to the amount of data that can be returned.

- 사용자 인터페이스를 프랑스, 독일, 스페인, 포르투칼, 네덜란드, 일본, 중국, 러시아 등 으로 번역

- 모든 SLD를 지원, 공개 표준 지도의 스타일을 정의하고, POST, GET, 기본적인 스타일링 구성을 사용

- WFS(but optimized for backend format where possible)의 모든 데이터 포멧에 대한 필터를 지원

- Innovative Validation Engine that checks inserted features against a configured set of topological and attributed based rules, to maintain backend integrity.

- 자바(J2EE) 서블릿 기반으로, 어떤 서블릿 컨테이너든지 가능. 64-bit 아키텍쳐와 고급 멀티스레딩 기능을 지원.

- GeoTools DataStore 인터페이스 및 helper 클래스와 함께 새로운 데이터 포맷을 쉽게 쓸 수 있음, GeoServer는 legacy 데이터에 대한 표준 인터페이스를 기반으로 만들어짐

- 데이터 포맷을 지원하기위한 리컴파일이 필요치 않고, GeoTools DataStores instantly plug-in to GeoServer, even showing up as an option in the configuration gui.

- Active Community modules, for developers to experiment with plug-ins before they are ready for core distribution, including modules for REST Configuration API, as well as using REST for User role management and SLD management. Plus CSV and Excel and HTML Image Map


2010년 11월 25일 목요일

PostGIS Type

PostGIS는 OpenGIS에서 정의한 공간객체를 표현하는 방법을 지원하고 있음.

OpenGIS
- WKB(Well-Known Binary) form 과 WKT(Well-Known Text) form 으로 공간 개체의 종류와 좌표정보를 표현 할 수 있음.

PostGIS
- 기존의 표현 방법에서 SRID와 z값이 포함된 EWKB(WKB + SRID + Z) 와 EWKT(WKT + SRID) 사용

ex)

WKT(Well-Known Text)
- ex)
• POINT(0 0)
• LINESTRING(0 0,1 1,1 2)
• POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))
• MULTIPOINT(0 0,1 2)
• MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))
• MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))
• GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))

EWKT(WKT + SRID)

• POINT(0 0 0) -- XYZ
• SRID=32632;POINT(0 0) -- XY with SRID
• POINTM(0 0 0) -- XYM
• POINT(0 0 0 0) -- XYZM
• SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM with SRID
• MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))
• POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))
• MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))
• GEOMETRYCOLLECTIONM(POINTM(2 3 9), LINESTRINGM(2 3 4, 3 4 5))

※ dimension 의 표현법

• 0 => point
• 1 => line
• 2 => area
• T => {0,1,2}
• F => empty set
• * => don’t care

※ 기본 지원 Indexing의 종류

B-Tree indexes
- 하나의 축에 대해서 정렬이 가능 할 때 사용하며 GIS 데이터에 대해서는 사용하지 않음.
ex) 숫자, 문자, 날짜 등

R-Tree indexes
- 공간을 최소경계의 사각형(Rectangles) 들로 분할하여 저장하는 방식으로 GIS데이터의 인덱싱하는 기법.
PostGIS의 R-Tree 인덱스 구현은 GiST 기법 만큼 견고하지는 않음.

GiST(Generalized Search Tree) indexes
- 단일 종류의 인덱스가 아닌 다른 많은 인덱스 전략(R-tree, B+-tree, hb-tree, TV-tree, Ch-Tree 등)이 가능하게 할 수 있는 기법.
복수의 이차원 기하데이터형용의 GiST연산자 클래스가 포함되어 있음.
ex) <<, &<, &>, >>, |&>, @>, =, && 등

2010년 11월 24일 수요일

PostGIS

http://postgis.refractions.net/

PostGIS
- 오픈소스인 PostgreSQL DBMS기반에 지리적 객체(geographic object)의 지원을 더한 GIS용 DBMS

현재 버전 : 1.5.2

라이센스 : GPL(General Public License)

기본 지원 기능

1. Basic Topology
2. 데이터 정합성 체크(data Validation)
3. 좌표변환(coordinate transformation)
4. 기본SQL + 공간쿼리 API 제공(programming APIs)

향후 발전방향

1. Full Topology
2. 래스터, 네트워크 및 라우팅(Raster, Network and Routing)
3. 3차원 입체표현(three dimensional surface)
4. 곡선과 스플라인 및 기타기능(curves and splines..)

관련 OpenSource 및 PostGIS 지원 솔루션

uDig(User-friendly Desktop Internet GIS) : Java Eclipse 기반의 GIS Framework
MapServer : Free and Open Source GIS Server
GeoTools : Java GIS Toolkit
GeoServer : Free and Open Source GIS Server
GRASS : Geographic Resources Analysis Support System
Open JUMP : Java desktop GIS viewer
QGIS(quantum GIS)


2010년 11월 18일 목요일

WMS 요청 URL 매개변수



GetLegendGraphic의 요청 매개변수

 요청매개변수필수/선택
 설명
 VERSION=1.3.0필수
요청 버전
 REQUEST=GetLegendGraphic필수
서버에 저장된 범례이미지 요청
FORMAT=output_format
필수
이미지의 출력형식
 LAYER=layer_name필수
해당 레이어명


한국정보통신기술협회 자료(WMS, WFS, GIS구축지침)

한국정보통신기술협회(http://www.tta.or.kr/index.jsp)에서 GIS관련 자료를 검색하니 한글로 번역된 표준
들과 개발 시 참고문헌들이 꽤 있었다. 안그래도 번역이 힘들었는데 좋은 사이트를 발견한것 같음.

WMSv1.3 - WMS 표준

WFSv1.1 - WFS 표준

표준 및 공개 소프트웨어 기반 GIS구축지침 - OpenGIS 구축관련 CS환경, Web환경 시스템 구축에 대해서 전반적으로 가이드 라인을 제공

2010년 11월 17일 수요일

지도 API 상업적용도 사용 정책(Google, Naver, Daum)

Google

※ 사용제한 항목

1. 유료회원제 사이트인경우(유료로 가입하지 않으면 이용이 안되는 사이트)
2. 사내인트라넷과 같은 비공개 사이트
3. 자산(부동산등), 차량추적을가지는 사이트(말하자면 내비게이션)

위에 해당하는 경우 연간 1만불정도의 프리미엄 서비스에 가입 요함.

http://code.google.com/intl/ko-KR/apis/maps/faq.html#geocoder_limit


Daum

무료사용가능

1. 개인, 법인(정부기관, 정부투자기관 등 일반 사기업이 아닌 모든 법인 제외)인 경우
2. 웹사이트(웹브라우저를 이용하여 접속 가능한 것에 한함)에서 1일 기준 10만 PV(Page View) 미만으로 사용하는 경우
3. 웹사이트(웹브라우저를 이용하여 접속 가능한 것에 한함)에서 1일 기준 1만 쿼리(Query) 미만으로 사용하는 경우
4. 지도 인쇄물 배포를 목적으로 하는 경우 동일하거나 동일한 것을 일부 수정한 것에 대해 1,000부 미만을 배포하는 경우
5. 비상업적 목적의 경우
6. 기타 회사가 이용을 제한하거나 금지하지 않는 경우

사전협의 후 가능

1. 정부 및 정부투자기관에서 사용하는 경우
2. 1일 기준 10만 PV(Page View) 이상 사용하는 경우
3. 1일 기준 1만 쿼리(Query) 이상 사용하는 경우
4. 웹사이트 이외의 어플리케이션에서 사용하는 경우
5. 차량, 배송, 물류 등 운송수단과 관련된 시스템에서 사용하는 경우
6. CRM, 관제 등 기업용 시스템에서 사용하는 경우
7. 지도 인쇄물 배포를 목적으로 하는 경우 동일하거나 동일한 것을 일부 수정한 것에 대해 1,000부 이상을 배포하는 경우
8. 광고나 유료서비스 등의 상업적인 목적으로 사용하는 경우
9. 제1호 내지 제8호 이외의 회사가 별도로 정하는 경우


Naver

Q&A 내용 중

9. Open API의 상업적인 용도의 사용의 의미는 무엇인가요?


네이버 Open API 사용에 있어서 제한을 두고 있는 '상업적 용도의 사용은 네이버 Open API를 이용한 직접적인 수익사업을 벌이는 경우를 의미합니다.
 이는 다양한 매쉬업을 통하여 제휴사 사이트에서 수익을 내는 것을 금지한다는 뜻이 아니라, Open API를 이용하여 키워드 광고, 배너 광고 등을 유치한다거나 Open API를 활용한 서비스를 보여주는 대가로 사용자에게 과금을 하는 등의 직접적인 수익사업과의 연계를 의미합니다.
 즉, 법인 사용자나 상업적 사이트에서도 위 사항에 반하지 않는다면 네이버 Open API를 자유롭게 사용하실 수 있습니다.

ex)
- 상업적인 사용으로 판단되는 경우
1) Open API를 활용한 검색기능을 제공하는 사이트에서
    스폰서 링크, 파워 링크 등의 유료 등록 사이트를 검색결과의 상단에 노출하여 수익을 내는 경우
2) 각 메뉴를 사용함에 있어서 과금을 하는 형태의 지역정보 사이트에서
    네이버 지도 API를 통한 지도 보기 서비스에 과금하는 서비스를 제공하는 경우

- 상업적인 사용이 아닌 경우
1) 물품 판매로 수익을 창출하는 인터넷 쇼핑몰 사이트에서
    네이버 지식iN, 블로그 검색 API를 활용하여 쇼핑 물품에 대한 검색 결과를 제공하여 주고자 하는 경우
2) 부동산 관련 유료 정보 제공 사이트에서
   등록된 부동산 매물 정보의 위치를 보여주기 위한 부가 서비스로서의 네이버 지도 API를 활용하는 경우


2010년 11월 10일 수요일

OpenScales Changes between1.1.x and 1.2

※ 기존 Openscales Spec

지원환경

- Mobile (ActionScript3) : Android Flash 10.1 player
- Web (Flex) : Windows, MAC, Linux 기반 웹브라우저(98%)
- Desktop (AIR) : 오프라인 모드에서 OpenScales기반 어플, 로컬 shapefiles 등 조작 가능

OGC 프로토콜 : WMS/WMS-C 1.1.1, WFS 1.0, GetCapabilities 지원
Reprojection, kml, gml 서비스 지원

라이센스 : LPGL(Lesser General Public License)

API 종류

- Core API : core 라이브러리를 제공하고 성능향상을 위해서 ActionScript3 으로만 제공됨. 가장 하위레벨인 Map, Layer, Handler 등을 정의

- Flex support API : core 라이브러리를 통해서 개발자가 쉽게 사용하기 위해서 만들어진 mxml 컴포넌트 집합. 기본 Map Container들을 지원하며, Popup, Button 등 Control 및 Wrapper 제공.

- Proj4as API : projection 관련 클래스 및 var 집합, reprojection

- Core flash 10.1 support API : 태블릿, 스마트폰 개발용 API(multi-touch)

- Geometry API : Geometry classes like Location or Polygon



※ 1.2 반영된 사항

* 플렉스 4 기반, spark NameSpace 등을 지원
* 플래쉬 9, 10 플레이어 지원
* 그리드 문제 수정
* KML 서비스 개선
* FxMap 클래스의 기능이 향상 및 단순화 됨, 기존에 존재하는 Flex Container와 호환.
* 복잡한 API 정리
* 드래그의 기능 개선(smoothly)
* ASDoc 개선
* AIR 2.5 android devices 기반 pan 및 zoom 기능
* Mobile Tracker AIR example
* Reprojection fix in FeatureLayer
* tween(effect class)의 zoom 개선(smoothly)
* zooming 시 이미지 품질 개선
* Layer tweenOnZoom property in order to disable tween effect per layer (usefull for POI layers)
* Flex4 빌더 환경에서 examples 및 컨트롤 기능 사용 가능
* inRange의 계산이 min/maxZoomLevels 대신 min/maxResolution 으로 바뀜.
* Feature layer now display by default at all resolutions
* New desktop AIR application : KML viewer
* New mobile AIR application : MobileTracker
* Layer Classes 들은 더이상 isBaselayer 프로퍼티를 지원하지 않음. baselayer는 projection 과 resolutions만 지원
* A XML schema is available in order to validate your xml configuration.
* fx Component 하위 패키지가 control에서 classes로 이동
* MOVE 이벤트 안에서 zoom과 pan이 하나의 이벤트로 관리
* OverviewMap(인덱스지도)가 AS3 control 만으로 가능해짐.
* TMS(Transportation Management System) 지원 기능 fixes

http://openscales.org/documentation/changelog.html