地理的座標系または投影座標系で距離を計測するには、大圏の計算が必要です。MgGeometry::Buffer() と MgGeometry::Distance() のどちらも、使用される大圏を定義する計測パラメータを受け入れます。計測パラメータが null の場合は、直線アルゴリズムを使用して計算されます。
計測パラメータ MgCoordinateSystemMeasure オブジェクトを MgCoordinateSystem オブジェクトから作成します。
距離は、SRS の単位で計算されます。MgCoordinateSystem には、座標系の単位を直線距離に変換するための ConvertCoordinateSystemUnitsToMeters() と直線距離を座標系の単位に変換するための ConvertMetersToCoordinateSystemUnits() という 2 つのメソッドがあります。
たとえば、2 つの MgGeometry オブジェクト $a と $b の距離を座標系 $srs を使用して計算するには、次の手順を実行します。
$measure = $srs->GetMeasure(); $distInMapUnits = $a->Distance($b, $measure); $distInMeters = $srs->ConvertCoordinateSystemUnitsToMeters( $distInMapUnits);
距離を計算するもう 1 つの方法は、次のように MgCoordinateSystemMeasure::GetDistance() を使用することです。
$distInMapUnits = $measure->GetDistance($a, $b);