「グリッドにスナップ」は、グリッド上の交差ポイントに合うように、ジオメトリのポイントを位置付けするアクションです。「グリッド」に位置付けるときは、四捨五入と同じように、X と Y の値がわずかに移動される場合があります。空間データのコンテキストでは、グリッドは、空間参照系の 2 次元表現上に定義された線のフレームワークです。SQL Anywhere では正方形のグリッドを使用します。
グリッドにスナップの最も簡単な例として、たとえば、グリッドサイズが 0.2 の場合、 Point( 14.2321, 28.3262 ) と Point( 15.3721, 27.1128 ) を結ぶ直線は、Point( 14.2, 28.4 ) と Point( 15.4, 27.2 ) を結ぶ直線にスナップされます。通常、グリッドサイズはこの単純な例よりも小さいため、精度が失われる可能性はずっと低くなります。
デフォルトでは、SQL Anywhere は空間参照系の X 境界と Y 境界内のすべてのポイントに対して 12 有効桁数を格納できるようにグリッドサイズを自動的に設定します。たとえば、X 値の範囲が -180 から 180 まで、Y 値の範囲が -90 から 90 までの場合、データベースサーバーはグリッドサイズを 1e-9 (0.000000001) に設定します。つまり、水平と垂直のグリッド線間の距離が 1e-9 となります。グリッド線の交差ポイントは、空間参照系で表現できるすべてのポイントを表します。ジオメトリが作成またはロードされると、各ポイントの X 座標と Y 座標が、グリッド上の最も近いポイントにスナップされます。
「許容度」は、この範囲内であるとジオメトリの 2 つのポイントまたは部分が同一であると見なされる距離を定義します。許容度は、ペン先の太いマーカーを使用して描画したポイントと線で表現されているすべてのジオメトリにおける、ペン先の太さであると考えることができます。この太いマーカーを使用して描画した場合に接触するすべての部分が許容度内にあると見なされます。2 つのポイントが許容度からまったく同じ距離分離れている場合、これらのポイントは許容度内とは見なされません。
許容度の単純な例として、たとえば、許容度が 0.5 の場合には、Point( 14.2, 28.4 ) と Point( 14.4, 28.2 ) は等しいと見なされます。これは、(X と Y が同じ単位で表される) 2 点間の距離が約 0.283 であり、許容度よりも小さいためです。通常、許容度にはこの単純な例よりずっと小さな値が設定されます。
極端に小さいジオメトリは、許容度により無効になる場合があることに注意してください。長さが許容度より短い線は無効です (ポイントが等しいため)。また、すべてのポイントが許容度内にある同様の多角形は無効と見なされます。
グリッドにスナップと許容度は空間参照系に設定され、X と Y (または経度の緯度) の座標には常に同じ単位が使用されます。「グリッドにスナップ」と許容度は、厳密でない算術データや不正確なデータに関する問題を解消するために一緒に使用されます。ただし、これらの動作が空間操作の結果に及ぼす影響について注意してください。
平面空間参照系の場合、空間操作が不正な結果になる場合があるため、グリッドサイズを 0 に設定することはおすすめしません。曲面空間参照系の場合、グリッドサイズと許容度を 0 に設定してください。SQL Anywhere は、曲面操作を実行する場合、固定されたグリッドサイズと許容度を内部投影で使用します。
次の例は、グリッドサイズと許容度の設定が空間の計算に与える影響を示しています。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |