GeoService-Xr에서 DEM Dataset 올리기

공간 서버인 GeoService-Xr에서 DEM 데이터는 XrE라는 포맷으로 관리됩니다. 흔히 flt나 xyz, dem와 같은 확장자로 규정된 파일을 XrE 포맷으로 먼저 변환할 필요가 있습니다. 이렇게 변환된 XrE 파일을 특정 디렉토리에 저장해 두고 geodata.xml 파일에 다음과 같이 정의해 둡니다.

<?xml version="1.0" encoding="euc-kr"?>
<XrGeoData>
    <Connections>
    </Connections>

    <GeoDataList>
        <GeoData>
            <Name>GDN_DEM</Name>
            <ConnectionString>xre://D:/__Data__/DEM_TEST</ConnectionString>
        </GeoData>
    </GeoDataList>
</XrGeoData>

위의 예는 XrE 파일들이 D:/__Data__/DEM_TEST 디렉토리에 존재하는 것이고, 이 XrE 파일들은 하나의 DEM 데이터셋으로써 GDN_DEM으로 이름을 정하고 있습니다. 이렇게 DEM 데이터를 서비스할 준비가 되면 GeoService-Xr에서 평균경사도나 횡단면도 그리고 특정 지점에 대한 표고값을 사용자에게 서비스할 준비가 완료됩니다. 실제 GeoService-Xr에서 위에서 설정한 내용에 대한 geodata.xml이 성공적으로 적재되면 다음과 같은 내용이 출력되고, 서비스할 준비가 완료됩니다.

geodata building start
    DEM building ...
        D:\__Data__\DEM_TEST/34601.XrE building ... OK
        D:\__Data__\DEM_TEST/34602.XrE building ... OK
        D:\__Data__\DEM_TEST/34603.XrE building ... OK
        D:\__Data__\DEM_TEST/35613.XrE building ... OK
        D:\__Data__\DEM_TEST/35614.XrE building ... OK
        D:\__Data__\DEM_TEST/35615.XrE building ... OK
geodata building end

참고로, XrE 파일은 최대한 사각형 모양으로 클리핑되어 구성 되어야 하며, 영역은 알맞은 정도로 작게 잡아야 합니다. GeoService-Xr로 로딩할 수 있는 XrE에 대한 파일 크기 및 개수에는 제한없이 없지만 속도적인 측면에서 하나의 XrE 파일이 포함하는 지형 영역을 작게 잡아야 한다는 점에 주의해야 합니다.

DuraMap-Xr에서 Image Symbol 크기 조정

듀라맵에서 ShapeMapLayer에 대한 이미지 심벌을 지정할 경우에, 그 크기는 원본 이미지 크기 그대로 표시됩니다. 이에 대해 개발자가 직접 이미지의 크기를 지정할 수 있는 방식도 제공되는데요. 아래의 코드는 이미지의 크기를 가로 84px로 지정하는 경우입니다. 세로의 크기는 가로와 세로에 대한 비율을 유지하도록 자동으로 계산됩니다.

axXr1.Layers.AddShapeMapLayer("lyr", "D:/__Data__/points.shp");
axXr1.WaitForAllConnections();

if (axXr1.Resources.AddImageResource("img", "d:/__data__/temperature.png"))
{
    var sym = axXr1.Layers.GetLayerAsShapeMap("lyr").PointSymbol;

    sym.SetImage("img", axXr1.Resources);
    sym.Size = 84; // 이미지 심벌을 가로로 84px로 지정 !!
}

axXr1.Update();

위의 코드와 함께 듀라맵에 소소한 개선으로 두가지가 이루어졌는데요. 첫째는 휠마우스에 대한 Delta 값을 보다 정확히 음수와 양수로 얻을 수 있다는 것과 두번째는 GetFIDFromMousePoint 매서드를 통해 도형을 선택할 때, 포인트 심벌의 크기에 맞춰 선택할 수 있도록 개선되었는데요. 기존에는 포인트 심벌의 크기를 고려하지 않아 포인트의 심벌 중앙을 클릭해야 선택되는 사용상의 불편함이 해소되었습니다.