同一基準下座標形式轉換

2022-08-18 01:30:12 字數 3099 閱讀 1708

測繪中各種座標系:

將某點投影到橢球面上的位置用大地經緯度l和大地緯度表示b,(b,l,h)

2.空間直角座標系:以橢球體中心為原點,起始子午面與赤道面為x軸,在赤道面上與x軸正交的方向為y軸,橢球體的旋轉軸為z軸

某點位置用(x,y,z)表示

3.平面直角座標系:通過高斯投影到平面上,以x軸為縱軸,y軸為橫軸的平面直角座標系表示(x,y)

大地座標系---->空間直角座標系:

/// /// 大地座標轉空間直角座標

///

/// 大地座標(度)

/// 空間直角座標(公尺)

public spacepoint blh_xyz(geodeticpoint geodeticpoint)

空間直角座標----->大地座標系:

/// /// 空間直角座標轉大地座標

///

/// 空間直角座標(公尺)

/// 大地座標(度)

public geodeticpoint xyz_blh(spacepoint spacepoint)

while (math.abs(b[j - 1] - b[j - 2]) > 0.0000000001);

double blh = new double[3];

blh[0] = b[j - 1];

blh[1] = math.atan(y / x);

if (x < 0)

blh[2] = r / math.cos(blh[0]) - n;

blh[0] = blh[0] * 180 / math.pi;

blh[1] = blh[1] * 180 / math.pi;

geodeticpoint.b = blh[0];

geodeticpoint.l = blh[1];

geodeticpoint.h = blh[2];

geodeticpoint.name = spacepoint.name;

geodeticpoint.property = spacepoint.property;

return geodeticpoint;

}

大地座標--->平面直角座標(高斯正算):

1

///2

///大地座標blh轉平面座標xyh

3///

4///

**子午線(度)

5///

大地座標(度)

6///

平面座標(公尺 y=y+500000)

7public planepoint blh_xyh(double

_l0, geodeticpoint geodeticpoint)

8

view code

平面直角座標---->大地座標(高斯反算)

///

///平面座標xyh(公尺 y=y+500000)轉大地座標blh(度)----同一基準

/// ///

**子午線(度)

///平面座標點(公尺 y=y+500000)

///大地座標(度)

public geodeticpoint xyh_blh(double

_l0, planepoint planepoint)

double

k1, k2, k3;

k1 = 2.0 * b11[5] + 4.0 * r11[5] + 6.0 * d11[5

]; k2 = -8.0 * r11[5] - 32.0 * d11[5

]; k3 = 32.0 * d11[5

];

double y = planepoint.y - 500000.0

;

double x =planepoint.x;

double

bf, tf, y2, vf2, nf, m1, mb;

bf = x /a1;

bf = bf + math.cos(bf) * math.sin(bf) * (k1 + math.sin(bf) * math.sin(bf) * (k2 + math.sin(bf) * math.sin(bf) *k3));

tf =math.tan(bf);

y2 = x2 / (1 - x2) * math.cos(bf) *math.cos(bf);

vf2 = 1.0 + x2 / (1.0 - x2) * math.cos(bf) *math.cos(bf);

nf = c /math.sqrt(vf2);

m1 = y /nf;

mb = (y / nf) * (y /nf);

double

b, l;

b = bf - mb * vf2 * tf / 2.0 + mb * mb * vf2 * tf / 24.0 * (5.0 + 3.0 * tf * tf + y2 - 9.0 * y2 * tf * tf) - mb * mb * mb * vf2 * tf / 720.0 * (61.0 + (90.0 + 45.0 * tf * tf) * tf *tf);

l = m1 / math.cos(bf) - m1 * m1 * m1 / 6.0 / math.cos(bf) * (1.0 + y2 + 2.0 * tf * tf) + m1 * mb * mb / 120.0 / math.cos(bf) * (5.0 + (6.0 + 8.0 * tf * tf) * y2 + (28.0 + 24.0 * tf * tf) * tf *tf);

l = l + _l0 * pi / 180.0

; elloipsoidpoint.b = b * 180.0 /pi;

elloipsoidpoint.l = l * 180.0 /pi;

elloipsoidpoint.h =planepoint.h;

elloipsoidpoint.name =planepoint.name;

elloipsoidpoint.property =planepoint.property;

return

elloipsoidpoint;

}

一些關於座標的轉換

世界空間中的點座標轉換到螢幕座標 screenpos recttransformutility.worldtoscreenpoint cam,worldpos.transform.position ugui物體的座標轉換到螢幕座標 screenpos recttransformutility.wor...

唯一座標轉換問題

現在有乙個二維座標組成的陣列,例如 0,7 8,10 12,19 13,15 2,9 19,22 25,27 30,33 這些座標可以按照以下規則進行轉換,例如 1.座標之間可以組成連續的座標,則這些座標可以轉化為乙個座標,0,7 8,10 0,10 2.座標之間存在包含關係,則這些座標可以轉換為乙...

行列轉換的另一種形式

在實際做專案的時候遇到這樣乙個問題 資料庫表裡儲存了每個火車站每種型別的火車票銷售數量,但是有的火車站可能不銷售動車票或者高鐵票,最終的結果要如圖2所示,不銷售型別的火車票就空出來。本文採用master.dbo.spt values動態生成最大數目的列頭,然後採用case when實現每種型別的火車...