2012년 11월 28일 수요일

Creating O-D flow maps with GeoServer


이전 포스팅[[Cartography]Flow Map Renderer]에서 ArcGIS for Desktop - ArcMap 기반의 O-D Flow Map 렌더러를 구현한 적이 있다.

GeoTools의 Filter Function을 확장하여 GeoServer에서 SLD Style로 설정하여 사용이 가능하다.

Filter Function의 경우 ArcGIS 렌더러와는 다르게 지도의 축척이나 크기를 알 수 없어, geometry필드, value 필드, 최소값, 최대값, 최대크기, 유형을 파라미터로 입력받아 처리할 수 있도록 하였다.

축척변경에 따른 크기조정이 불가능하나, WPS Process 및 Rendering Transformations 을 이용하면 가능할 듯하다.

다음은 GeoServer Web Administration 페이지에서 OpenLayers로 미리보기 한 샘플이다.

▣ Arrow

▣ Circle

▣ SLD 예 - Function = odflowmap
다음은 위에서 사용된 라인레이어의 SLD 파일 예이다.

<?xml version="1.0" encoding="utf-8"?>
<StyledLayerDescriptor version="1.0.0" ..../1.0.0/StyledLayerDescriptor.xsd">
  <NamedLayer>
    <Name>OD Flow Map</Name>
    <UserStyle>
      <Name>OD Flow Map</Name>
      <FeatureTypeStyle>
        <Rule>
          <ogc:Filter>
            <ogc:And>
              <ogc:PropertyIsGreaterThanOrEqualTo>
                <ogc:PropertyName>O_D</ogc:PropertyName>
                <ogc:Literal>1000</ogc:Literal>
              </ogc:PropertyIsGreaterThanOrEqualTo>
              <ogc:PropertyIsEqualTo>
                <ogc:PropertyName>ADM_CODE_O</ogc:PropertyName>
                <ogc:Literal>11680</ogc:Literal>
              </ogc:PropertyIsEqualTo>
            </ogc:And>
          </ogc:Filter>
          <PolygonSymbolizer>
            <Geometry>
              <ogc:Function name="odflowmap">
                <ogc:PropertyName>the_geom</ogc:PropertyName>
                <ogc:PropertyName>O_D</ogc:PropertyName>
                <ogc:Literal>1000</ogc:Literal>
                <ogc:Literal>8000</ogc:Literal>
                <ogc:Literal>2500</ogc:Literal>
                <ogc:Literal>Arrow</ogc:Literal>
              </ogc:Function>
            </Geometry>
            <Fill>
              <CssParameter name="fill">#FF0000</CssParameter>
              <CssParameter name="fill-opacity">0.9</CssParameter>
            </Fill>
            <Stroke>
              <CssParameter name="stroke">#FFFFFF</CssParameter>
              <CssParameter name="stroke-width">0.1</CssParameter>
              <CssParameter name="fill-opacity">0.1</CssParameter>
            </Stroke>
          </PolygonSymbolizer>
          <LineSymbolizer>
            <Stroke>
              <CssParameter name="stroke">#FF0000</CssParameter>
              <CssParameter name="stroke-width">0.2</CssParameter>
              <CssParameter name="fill-opacity">0.9</CssParameter>
            </Stroke>
          </LineSymbolizer>
         <TextSymbolizer>
           <Label>
             <ogc:PropertyName>O_D</ogc:PropertyName>
           </Label>
           <LabelPlacement>
             <LinePlacement />
           </LabelPlacement>
           <Halo>
             <Radius>1.5</Radius>
             <Fill>
               <CssParameter name="fill">#FFFFFF</CssParameter>
             </Fill>
           </Halo>
           <Fill>
             <CssParameter name="fill">#0000FF</CssParameter>
           </Fill>
           <Font>
             <CssParameter name="font-family">Arial</CssParameter>
             <CssParameter name="font-size">10</CssParameter>
             <CssParameter name="font-style">normal</CssParameter>
             <CssParameter name="font-weight">bold</CssParameter>
           </Font>
           <VendorOption name="followLine">true</VendorOption>
           <VendorOption name="maxAngleDelta">90</VendorOption>
           <VendorOption name="maxDisplacement">400</VendorOption>
         </TextSymbolizer>
        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

▣ Download sample data sets & libraries
 - FlowMapforGeoServer.zip

2012년 11월 19일 월요일

[uDig] Altibase Catalog Plugin 확장

◎ uDig 에 GeoTools용 Altibase DataStore를 이용한 Catalog 플러그인
  ○ 테스트환경 : uDig 1.3.2 + GeoTools 8.x + Altibase 5.5.1.0.3
  ○ 사용법
레이어 메뉴의 [추가...]메뉴를 실행 후 Altibase 데이터베이스 선택
서버 접속을 위한 연결정보 입력 또는 기존연결 선택
지도에 추가할 레이어 선택 후 완료
지도에 레이어 추가, 카탈로그 등록, 테이블 속성 확인 등
◎ 향후 일정
  ○ 파일 기반의 GeoTools DataStore들의 uDig Catalog 플러그인 제작
  ○ 국토지리정보원 NGI Ascii Format DataStore
uDig에서 국토지리정보원 NGI 데이터셋 배치 변환

  ○ ESRI Personal Geodatabase(9.x, 10.x 지원) DataStore
uDig에서 ESRI Personal Geodatabase의 배치 변환