概念 :
UTM(通用橫向墨卡托投影): 是一種以米為單位的坐標(biāo)系統(tǒng),用于地圖和GPS導(dǎo)航。將地球劃分為60個縱向的區(qū)域。每個區(qū)域?qū)?度,從赤道開始往南北兩級方向劃分。每個區(qū)域都有一個特定的字母。
轉(zhuǎn)換過程:
- 將經(jīng)緯度值轉(zhuǎn)化為弧度值
// 將經(jīng)度歸一化到-180到180度之間
double LongTemp =
(Long + 180) - static_cast<int>((Long + 180) / 360) * 360 - 180;
double LatRad = Lat * DEG_TO_RAD;
double LongRad = LongTemp * DEG_TO_RAD;
- 根據(jù)經(jīng)緯度計算所在的UTM區(qū)域
計算UTM帶號,即 zoneNumber
,這是由所在位置的經(jīng)度計算得到的,計算公式為zoneNumber = floor((longTemp + 180)/6) + 1
,其中 floor()
函數(shù)表示向下取整。
對于特殊區(qū)域(Norway 和 Svalbard)需要進(jìn)行特殊處理。對于Norway,UTM帶號為31;對于Svalbard,需要根據(jù)具體位置計算UTM帶號。文章來源:http://www.zghlxwxcb.cn/news/detail-499480.html
// 緯度在56度到64度之間,經(jīng)度在3度到12度之間的區(qū)域?qū)儆谂餐?,對?yīng)的UTM帶號為32
if (Lat >= 56.0 && Lat < 64.0 && LongTemp >= 3.0 && LongTemp < 12.0)
ZoneNumber = 32;
// Special zones for Svalbard
// 如果經(jīng)緯度在北極圈內(nèi),則根據(jù)經(jīng)度范圍判斷屬于哪個UTM區(qū)域。
// 對于挪威的斯瓦爾巴群島(Svalbard)有特殊的UTM區(qū)域設(shè)置。
// 如果緯度在72到84度之間,則根據(jù)經(jīng)度范圍判斷屬于哪個UTM區(qū)域,分別為31、33、35、37區(qū)。
if (Lat >= 72.0 && Lat < 84.0) {
if (LongTemp >= 0.0 && LongTemp < 9.0)
ZoneNumber = 31;
else if (LongTemp >= 9.0 && LongTemp < 21.0)
ZoneNumber = 33;
else if (LongTemp >= 21.0 && LongTemp < 33.0)
ZoneNumber = 35;
else if (LongTemp >= 33.0 && LongTemp < 42.0)
ZoneNumber = 37;
}
- 根據(jù)維度值計算UTM縱向帶
- 計算以赤道為基準(zhǔn)的投影面的相對圓柱體坐標(biāo)系(即UTM投影)的各種參數(shù)
橢球體參數(shù),包括長半軸a,扁率f,第一偏心率平方eccSquared,以及第二偏心率平方eccPrimeSquared。 - 根據(jù)投影參數(shù),計算經(jīng)緯度值對應(yīng)的UTM坐標(biāo)值
計算UTM坐標(biāo)時,需要使用以下幾個參數(shù):
- N:卯酉圈曲率半徑。
- T:曲率平面的切線方位角正切值。 T = t a n 2 ( L a t R a d ) T=tan^2(LatRad) T=tan2(LatRad)
- C:子午圈曲率半徑。 C = e c c P r i m e S q u a r e d × c o s 2 ( L a t R a d ) C=eccPrimeSquared×cos^2(LatRad) C=eccPrimeSquared×cos2(LatRad)
- A:中央經(jīng)線到點(diǎn)的經(jīng)線長度。 A = c o s ( L a t R a d ) × ( L o n g R a d ? L o n g O r i g i n R a d ) A=cos(LatRad)×(LongRad?LongOriginRad) A=cos(LatRad)×(LongRad?LongOriginRad)
- M:緯度的子午線弧長。
M = a ? ( ( 1 ? e 2 4 ? ? 3 e 4 64 ? ? 5 e 6 256 ? ) ? ? ? ( 3 e 2 8 ? + 3 e 4 32 ? + 45 e 6 1024 ? ) ? s i n ( 2 ? ) + ( 15 e 4 256 ? + 45 e 6 1024 ? ) ? s i n ( 4 ? ) ? 35 e 6 3072 ? ? s i n ( 6 ? ) ) M=a?((1?\frac{e^2}{4}?-\frac{3e^4}{64}??\frac{5e^6}{256}?)???(\frac{3e^2}{8}?+\frac{3e^4}{32}?+\frac{45e^6}{1024}?)?sin(2?)+(\frac{15e^4}{256}?+\frac{45e^6}{1024}?)?sin(4?)?\frac{35e^6}{3072}??sin(6?)) M=a?((1?4e2???643e4???2565e6??)???(83e2??+323e4??+102445e6??)?sin(2?)+(25615e4??+102445e6??)?sin(4?)?307235e6???sin(6?))
其中,a是橢球體的半長軸,e是橢球體的離心率,
?
\phi
?是轉(zhuǎn)換前的緯度。
U
T
M
E
a
s
t
i
n
g
=
k
0
×
N
×
(
A
+
(
1
?
T
+
C
)
×
A
3
/
6
+
(
5
?
18
×
T
+
T
2
+
72
×
C
?
58
×
e
c
c
P
r
i
m
e
S
q
u
a
r
e
d
)
×
A
5
/
120
)
+
500000.0
U
T
M
N
o
r
t
h
i
n
g
=
k
0
×
(
M
+
N
×
t
a
n
(
L
a
t
R
a
d
)
×
(
A
2
/
2
+
(
5
?
T
+
9
×
C
+
4
×
C
2
)
×
A
4
/
24
+
(
61
?
58
×
T
+
T
2
+
600
×
C
?
330
×
e
c
c
P
r
i
m
e
S
q
u
a
r
e
d
)
×
A
6
/
720
)
)
UTM_{Easting}=k_0×N×(A+(1?T+C)×A^3/6+(5?18×T+T^2+72×C?58×eccPrimeSquared)×A^5/120)+500000.0 \\ UTM_{Northing}=k_0×(M+N×tan(LatRad)×(A^2/2+(5?T+9×C+4×C^2)×A^4/24+(61?58×T+T^2+600×C?330×eccPrimeSquared)×A^6/720))
UTMEasting?=k0?×N×(A+(1?T+C)×A3/6+(5?18×T+T2+72×C?58×eccPrimeSquared)×A5/120)+500000.0UTMNorthing?=k0?×(M+N×tan(LatRad)×(A2/2+(5?T+9×C+4×C2)×A4/24+(61?58×T+T2+600×C?330×eccPrimeSquared)×A6/720))文章來源地址http://www.zghlxwxcb.cn/news/detail-499480.html
eccPrimeSquared = (eccSquared) / (1 - eccSquared);
N = a / sqrt(1 - eccSquared * sin(LatRad) * sin(LatRad));
T = tan(LatRad) * tan(LatRad);
C = eccPrimeSquared * cos(LatRad) * cos(LatRad);
A = cos(LatRad) * (LongRad - LongOriginRad);
M = a *
((1 - eccSquared / 4 - 3 * eccSquared * eccSquared / 64 -
5 * eccSquared * eccSquared * eccSquared / 256) *
LatRad -
(3 * eccSquared / 8 + 3 * eccSquared * eccSquared / 32 +
45 * eccSquared * eccSquared * eccSquared / 1024) *
sin(2 * LatRad) +
(15 * eccSquared * eccSquared / 256 +
45 * eccSquared * eccSquared * eccSquared / 1024) *
sin(4 * LatRad) -
(35 * eccSquared * eccSquared * eccSquared / 3072) * sin(6 * LatRad));
UTMEasting = k0 * N * (A + (1 - T + C) * A * A * A / 6 + (5 - 18 * T + T * T + 72 *
到了這里,關(guān)于經(jīng)緯度轉(zhuǎn)換為UTM坐標(biāo)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!