2

x,yデータベースからデータを取得してい[coordinates1]ます (GIS - ただし、これは任意のデータベースである可能性があります)。THE SAME MAPを参照する独自の座標系を持つアプリケーションがあります。

私は、座標1(x、y)の間に線形関係が存在することを確立し、coordinates2(x,y)2つの異なる座標1と( と で割る)を差し引いたのでcoordinates2、すべての場合で、両方ともそれぞれ0.724または0.141または0.825、つまり座標1 +座標2を示します。x1x2y1y2

私が今理解しなければならないこと、またはあなたが助けてくれることは、 のデータからcoordinates1(100000,200000)どのcoordinates2(0.125,0.255)ように計算するかということです。coordinates2(x,y)coordinates1(x,y)

4

2 に答える 2

4

わかりやすくするために、ベースの座標 ( x n , y n ) とターゲットの座標 ( u n , v n ) を呼び出します。

ここで、次のように仮定します。

  1. 2 つの座標系の原点は同じです。
  2. 2 つの座標系の向きは同じです (つまり、一方が他方に対して回転していません)。

この場合、( u n , v n )の位置を決定するために必要な点のセット {( x 1 , y 1 ), ( u 1 , v 1 )} は1 つだけです。

  • n =1 / x 1 * x n
  • v n = v 1 / y 1 * y n

注: x 1 ≠ 0、y 1 ≠ 0 でなければなりません


一方、2 つの座標系の原点が異なる場合 (ただし、互いに回転していない場合)、2 組の点 {( x 1 , y 1 ), ( u 1 , v 1 )が必要になります。 } および {( x 2 , y 2 ), ( u 2 , v 2 )}:

  • u n = ( u 2 - u 1 )/( x 2 - x 1 ) * ( x n - x 1 ) + u 1
  • v n = ( v 2 - v 1 )/( y 2 - y 1 ) * ( y n - y 1 ) + v 1

注: x 1x 2y 1y 2でなければなりません。


ここで、2 つの座標系が互いに回転している場合は、一致する座標のセットがもう 1 つ必要です (私は信じています)。しかし、それは必要ないように思えます (マップの 1 つが真上以外の方向を向いている場合を除きます)。そのため、ここで計算を行うつもりはありません。:)

于 2009-07-22T13:56:09.073 に答える