座標系

1 つのマップの中で、異なるソースのデータを組み合わせることがあり、それらのソースで異なる座標系を使用していることがあります。マップで固有の座標系を使用し、そのマップで使われているフィーチャ ソースの座標系が異なる場合もあります。表示したり分析を行うためには、すべての位置が同じ座標系に変換されていることが重要です。

注:

座標系は、空間参照システム(SRS)または、座標参照システム(CRS)とも呼ばれます。ここでは、略語の SRS を使用します。

Infrastructure Map Server では、3 種類の座標系をサポートしています。

MgCoordinateSystem オブジェクトは、座標系を表します。

注:

任意のX-Y座標を地理座標、投影座標との間で変換することはできません。

マップ画層から MgMap オブジェクトから MgCoordinateSystem オブジェクトを作成するには、

マップ画層から MgCoordinateSystem オブジェクトを作成するには、

ジオメトリをある座標系から別の座標系に変換するには、MgCoordinateSystemFactory オブジェクトおよび該当の 2 つの座標系を使用して、MgCoordinateSystemTransform オブジェクトを作成します。この変換を MgGeometry オブジェクトに適用します。

たとえば、ある座標系を使用した画層上にフィーチャを表現するジオメトリがあり、それを別の座標系を使用した画層上のフィーチャと比較する場合には、次の手順を実行します。

$featureSource1 = $layer1->GetFeatureSourceId();
$contexts1 = $featureService->GetSpatialContexts(
    $featureSource1, true);
$contexts1->ReadNext();
$srs1 = $contexts1->GetCoordinateSystemWkt();
 
$featureSource2 = $layer2->GetFeatureSourceId();
$contexts2 = $featureService->GetSpatialContexts(
    $featureSource2, true);
$contexts2->ReadNext();
$srs2 = $contexts2->GetCoordinateSystemWkt();
 
$coordSysFactory = new MgCoordinateSystemFactory();
$xform = $coordSysFactory->GetTransform($srs1, $srs2);
$geometry1xform = $geometry1->Transform($xform);