+ All Categories
Home > Documents > VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... ·...

VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... ·...

Date post: 05-Jan-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
60
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ KATEDRA MAPOVÁNÍ A KARTOGRAFIE Studijní obor: GEODÉZIE A KARTOGRAFIE VÝPOČTY V SYSTÉMU MGRS BAKALÁŘSKÁ PRÁCE Vypracovala: Adéla Kratochvílová Vedoucí práce: Prof. Ing. Bohuslav Veverka, DrSc. 2007
Transcript
Page 1: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

FAKULTA STAVEBNÍ KATEDRA MAPOVÁNÍ A KARTOGRAFIE

Studijní obor: GEODÉZIE A KARTOGRAFIE

VÝPOČTY V SYSTÉMU MGRS

BAKALÁŘSKÁ PRÁCE

Vypracovala: Adéla Kratochvílová Vedoucí práce: Prof. Ing. Bohuslav Veverka, DrSc.

2007

Page 2: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

CZECH TECHNICAL UNIVERSITY IN PRAGUE FACULTY OF CIVIL ENGINEERING

DEPARTMENT OF MAPPING AND CARTOGRAPHY Branch of study: GEODESY AND CARTOGRAPHY

COMPUTATIONS IN THE MILITARY GRID REFERENCE SYSTEM

BACHELOR WORK

Author: Adéla Kratochvílová Supervisor: Prof. Ing. Bohuslav Veverka, DrSc.

2007

2

Page 3: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Prohlašuji: Tuto práci jsem vypracovala samostatně. Veškeré literární prameny a

informace, které jsem k práci použila, jsou uvedeny v seznamu použité

literatury.

V Praze dne 10.8. 2007

Adéla Kratochvílová

3

Page 4: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Abstrakt: Tato bakalářská práce je zaměřena na výpočty v rámci hlásného

systému MGRS (Military Grid Reference System). MGRS je alfanumerickým

kódem rovinných souřadnic, který využívají armády NATO (North Atlantic

Treaty Organisation). Práce představuje základní informace, potřebné pro

sestavení algoritmu převodu, o systému WGS 84 (World Geodetic System 84)

projekci UTM (Universal Transverse Mercator) a hlásném systému MGRS.

Stěžejní částí celé práce je program na převod souřadnic mezi systémy

UTM, WGS 84 a MGRS, který byl vpracován pomocí vývojového prostředí

Microsoft Visual C++ 6.0.

Abstract:

This bachelor thesis is focused on computations in Military Grid

Reference System. MGRS (Military Grid Reference System) is an

alphanumeric character set for plane coordinate system, which is using by

NATO (North Atlantic Treaty Organisation) army. The work present the basic

information about system WGS 84 (World Geodetic System), projection UTM

(Universal Transverse Mercator) and system MGRS which are required to

compile algorithm of conversion.

The basic part of this work is a programme for conversion among systems

WGS 84, UTM and MGRS creating in development environment Microsoft

Visual C++ 6.0.

Klíčová slova C++, elipsoid, MGRS, NATO, rovinné souřadnice, UTM, WGS 84

Key words: C++, ellipsoid, MGRS, NATO, plane coordinate, UTM, WGS 84

4

Page 5: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Poděkování:

Chtěla bych poděkovat panu Prof. Ing. Bohuslavu Veverkovi,

DrSc. a mému otci Ing. Miroslavu Kratochvílovi, CSc., za jejich trpělivost,

odbornou pomoc a cenné rady k náležitostem mé práce a poskytnutí informací

pro tvorbu výsledného programu.

5

Page 6: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Obsah:

Použité zkratky 7

Použité symboly a značení 8

Úvod 9

1. NATO a kartografie 10

1.1 Kartografické standardy NATO 10

2. WGS 84 – Světový geodetický referenční systém 11

2.1 Charakteristika 11

2.1.1 Primární parametry 12

2.1.2 Sekundární parametry 12

2.1.3 Odvozené geometrické parametry 13

2.2 Systém souřadnic na elipsoidu WGS 84 14

2.3 WGS 84 v ČR 16

2.4 Přesnost WGS 84 17

2.5 Perspektiva využití WGS 84 17

2.6 Přechod UTM na WGS 84 17

3. UTM – Transverzální Mercatorovo zobrazení 19

3.1 Charakteristika 19

3.2 Popis zobrazení 19

3.2.1 Značení 20

3.3 Průběh zkreslení 20

3.4 Mercator 21

4. MGRS 25

4.1 Značení 25

5. Matematický úvod 28

5.1 Použitá symbolika 28

5.2 Hodnoty vybraných veličin 29

5.3 Matematický vztah pro UTM a elipsoid 29

6. Popis programu 32

6.1 Microsoft Visual C++ 35

Závěr 37

Seznam použité literatury 38

Seznam příloh 38

6

Page 7: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Použité zkratky:

• AČR … Armáda České Republiky

• BIH … Bureau International de I´Heure

• CTP … konvenční terestrický pól (Conventional Terestrial Pole)

• CTRS … konvenční terestrický systém (Convention Terestrial

Reference System)

• DMA (dnes NIMA) … Obranná mapovací agentura armády USA

(Defense Mapping Agency dnes National Imagery and Mapping

Agency)

• EGM96 … Gravitační model Země (Earth Gravity Model 1996)

• ETRF89 … Europian Terestrial Reference Frame 1989

• ETRS … Europian Terestrial Reference System

• EUREF-CS/H-91, CS-NULRAD-92, CS-BRD-93, DOPNUL, VGSN-92,

VGSN-99 … GPS kampaně na území ČR

• GIS ... Geografický informační systém

• GPS … Global Positioning System

• OCS ... Operational Control System , kontrolní (pozemní) segment GPS

• IFOR ... Implementation Force, mírová operace NATO

• ITRF (ITRS) … International Terestrial Reference Frame (System)

• MGRS … Military Grid Reference System

• MNČ… metoda nejmenších čtverců

• NASA GSFC … NASA Goddar Space Flight Center

• NATO ... Severoatlantická aliance (North Atlantic Treaty Organization)

• NNSS … Námořní navigační družicový systém (Navy Navigation

Satellite System)

• S-42 ... Souřadnicový systém 3°a 6°pásů Gaussova zobrazení

poledníkových pásů Krasovského elipsoidu

• SFOR ... Stabilization Force, mírová operace NATO

• SIS ... Státní informační systém

• TRANSIT ... navigační družice, poprvé vyslána na oběžnou dráhu r.

1960 pro zájmy amerického námořnictva

• TS ... Topografická služba

7

Page 8: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

• UPS … Universal polar Stereographic (Polární stereografické

zobrazení)

• UTM … Universal Transverse Mercator (Mercatorovo transverzální

zobrazení)

• VGIS ... Vojenský geografický informační systém

• VTIS ... Vojenský topografický informační systém

• VÚGTK … Výzkumný ústav geodetický, topografický a kartografický

• WGS 84 … World Geodetic System 1984 (Světový geodetický systém

z r. 84)

Použité symboly, značení

• ϕ (= B), λ (= L)… zeměpisné souřadnice na elipsoidu (něm. B – Breite,

L – Lange, angl. Ltatitude, Longitude)

• N,E … (Northing, Easting)rovinné souřadnice v zobrazení UTM

• mB, mL ... střední kvadratická chyba souřadnic (šířky, délky)

• mh ... střední kvadratická chyba geodetické výšky (nad elipsoidem)

8

Page 9: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Úvod

Práce se zabývá převodem zeměpisných a rovinných souřadnic do

hlásného systému MGRS. Tento hlásný systém patří mezi kartografické

standardy NATO a byl přijat ČR. Hlavním cílem bylo vytvořit funkční a

uživatelsky přívětivý program, který by byl schopen obousměrného převodu

souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E) a jejich

vyjádření v alfanumerickém kódu MGRS.

Pro sestavení algoritmů vedoucích k těmto výpočtům je nutné znát

definiční parametry jednotlivých systémů a zobrazení. Veškeré charakteristiky

jsou uvedeny v teoretické části práce, včetně krátkého textu o

Severoatlantické alianci (NATO) a historického úvodu týkajícího se kartografa

Mercatora, po němž je zobrazení UTM pojmenováno.

V matematické části je uveden použitý algoritmus a matematický

postup pro výpočet převodu souřadnic mezi uvedenými systémy.

V závěru jsou uvedeny přílohy v podobě grafického znázornění značení

projekce UTM.

Práce má za úkol osvětlit základní pojmy matematické kartografie a dát

je do souvislostí, které byly pro tento typ výpočtů použity. Hlavním cílem práce

byl funkční výpočetní program, na základě dosažených znalostí v rámci výuky

na fakultě a osobních možností a schopností se dále rozvíjet.

Seznam použitého software a důvod jeho výběru je součástí textové

části stejně jako popis programu.

Adéla Kratochvílová

9

Page 10: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

1. NATO a kartografie v ČR

V roce 1999 byla Česká republika přijata do vojenského svazku NATO

(North Atlantic Treaty Organization), což se v dlouhodobějším časovém

horizontu dotkne i vojenských kartografů, resp. Topografické služby Armády

ČR (AČR). Ta bude přizpůsobovat svá mapová díla novým standardům

NATO.

Podle vládního nařízení 116/1995 Sb. jsou i vojenské mapy státním

mapovým dílem, přičemž ve své základní verzi jsou dílem veřejným, tj.

neutajovaným. Lze předpokládat, že se budou s kartografickými standardy

NATO setkávat i civilní uživatelé těchto map. Navíc zřejmě sehrají tyto

standardy roli sjednocujícího faktoru v oblasti geodetických a kartografických

základů a ovlivní i vývoj civilní kartografie v oblasti státních mapových děl. (Civilní zeměměřiči využívají pro svoji práci méně přesný souřadný systém S-

JTSK, zatímco vojenští topografové využívají systém S-42/83, jehož rámcem je

Astronomicko-geodetická síť (AGS), která se svojí kvalitou zaujímá přední místo ve

světě). [1]

1.1 Kartografické standardy NATO Za standardy NATO lze považovat následující:

• Geodetické datum ED 50 (European Datum 1950,

referenční plocha Hayfordův elipsoid), s použitím zejména v

Západní Evropě či WGS 84 (referenční plocha elipsoid

WGS84), s použitím zejména v technologiích sběru dat na

bázi GPS (Global Positioning System),

• Mercatorovo příčné válcové konformní zobrazení (UTM)

v šestistupňových poledníkových pásech (viz obrázek), [1]

10

Page 11: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

2. WGS 84 – Světový geodetický referenční systém

WGS84 je světový geodetický geocentrický systém armády USA, ve

kterém pracuje globální systém určování polohy GPS a který je zároveň

standardizovaným geodetickým systémem armád NATO (STANAG 2211-

IGEO, ed.5 - Geodetic Datums, Ellipsoids, Drids and Grid References, 1991). 2.1 Charakteristika

WGS84 je konvenční terestrický sytém (CTRS), realizovaný na základě

modifikace Námořního navigačního družicového systému NNSS. Modifikace

spočívá v posunu počátku souřadnicové soustavy, rotaci a změně měřítka

dopplerovského systému NSWC 92-2 tak, aby byl systém geocentrický a

referenční nultý poledník byl identický se základním poledníkem definovaným

BIH (tento nultý poledník je posunut asi 100m východně oproti tradičnímu

poledníku Greenwich). Definice systému WGS se vyvíjela od počátečního

WGS 60, přes následující WGS 66, WGS 72 a WGS 84. V devadesátých

letech byl systém WGS 84 zpřesněn dvakrát, poprvé v roce 1994 a podruhé

v roce 1996. Tyto zpřesněné systémy byly označeny WGS 84(G730) a WGS

84 (G873), kde písmeno G značí zkratku GPS a číslo 873 znamená pořadové

číslo týdne od zahájení provozu GPS, ve kterém byla do užívání zavedena

zpřesněná varianta geodetického systému WGS 84. Přesná data, kdy byly

tyto zpřesněné systémy zavedeny do GPS OCS, jsou 29.červen 1994

a 29. leden 1997. Společně s těmito zpřesněními pracovali na společném

projektu NIMA, NASA GSFC a Státní univerzita v Ohiu. Výsledkem tohoto

projektu je nový gravitační model Země: Earth Gravitational Model 1996

(EGM96). EGM96 je definován Stokesovými koeficienty sférického

harmonického rozvoje tíhového potenciálu. Stokesovy koeficienty jsou

vypočteny do stupně n = 360 a řádu k = 360. Využitím parametrů modelu

gravitačního pole WGS 84 nazývaného zkráceně EGM96 je možné například

vypočítat k bodu, u něhož známe souřadnice, výšku geoidu (tím i nadmořskou

výšku). Také ale můžeme dostat tíhové zrychlení nebo tížnicové odchylky. [2]

Systém WGS84 je definován fyzikálně. Jako normální zemské těleso

byl zvolen hladinový rotační elipsoid, jehož základní parametry, velikost, tvar,

hmotnost a rychlost rotace, byly odvozeny z pozorování, zejména pak

11

Page 12: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

z pozorování družic. Známe-li 4 základní parametry referenčního elipsoidu,

můžeme z nich odvodit vše potřebné: tíhový potenciál a složky tíhového pole,

jakož i odvozené parametry.

2.1.1 Primární parametry definují rozměry referenčního elipsoidu

přiřazeného systému. Jsou jimi:

• Velká poloosa referenčního elipsoidu a - jde o poslední geometrický

parametr. Již delší dobu se předpokládá, že bude nahrazen jiným

prvkem, prvkem fyzikálním, totiž hodnotou tíhového potenciálu W0 na

referenčním elipsoidu. Důvodů je více, především však to, že hodnotu

W0 lze odvozovat přímo z družicových měření a lze ji v přírodě

realizovat, což u hodnoty a nelze.

• Úhlová rychlost rotace vůči nebeskému referenčnímu systému ω .

• Parametr mající vztah ke tvaru referenční plochy. Dnes je to převrácená

hodnota zploštění referenčního elipsoidu 1/f . Tento parametr byl zvolen

nedávno. Předtím se používal jiný prvek, např. čtverec prvé excentricity

e2, dynamický tvarový faktor J2 nebo gravitační koeficient druhého

stupně 0,2C .

• Parametr definující hmotnost referenčního tělesa M a gravitační

konstantu G, což je geocentrická gravitační konstanta GM.

Definiční parametry jsou uvedeny v tabulce č.1. Tabulka č.1 Primární parametry systému WGS84

Název Symbol Hodnota RozměrVelká poloosa a 6 378 137 m Převrácená hodnota zploštění 1/f 298,257 223 563 Úhlová rychlost rotace Země ω 7,292 115 x 10-5 rad/s Zemská gravitační konstanta (vliv hmoty atmosféry započítán) GM 3,986 004 418 x 1014 m3 . s-2 )*

)* Původní hodnota GM = 398 600,5 km3 s-2 byla nahrazena tabelovanou, aby se dosáhlo shody v definici se standardy IERS.

2.1.2 Sekundární parametry definují model struktury zemského

gravitačního pole (Earth Gravity Model , EGM), definovaný pomocí rozvoje

geopotenciálu do sférických harmonických funkcí do stupně a řádu 360. Model

gravitačního pole WGS84 EGM96 je možné využít pro výpočet průběhu

12

Page 13: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

plochy geoidu WGS84, tížnicových odchylek, středních hodnot tíhových

anomálií v síti 10´x 15´s využitím tohoto modelu.

2.1.3 Odvozené geometrické parametry WGS 84

Základní parametry systému nestačí na všechny numerické výpočty

geodetických úloh. Proto z nich odvodíme další hodnoty. Přitom se budeme

řídit zásadou, že základní parametry byly stanoveny zcela přesně (to

znamená, že za hodnotami uvedenými v tab.č.1 následují samé nuly) a

odvozené parametry z nich vypočteme na tolik desetinných míst, kolik budeme

pro naše účely potřebovat. Ve světové literatuře bylo odvozeno několik

postupů dalšího zpracování.

Čtverec prvé excentricity určíme ze vztahu

(1 )

22 2 ffe −=

kde f

f1

1= .

Čtverec druhé excentricity (e´)2 je dán rovnicí

( ) 2

22

1 eee−

=′

(2 )

Pro čtverec lineární excentricity E2 platí

,

(3 )

222 baE −=

kde hodnotou malé poloosy b dostaneme z výrazu

( )fab −= 1 .

(4 )

Starší definice referenčního elipsoidu používala ještě gravitační

koeficient druhého stupně 0,2C , respektive dynamický tvarový faktor

´0,2´2 5 CJ ⋅−= . Pro jejich vzájemné vztahy platí rovnice

13

Page 14: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

52´

0,2JC −= , ⎥

⎤⎢⎣

⎡−=

GMqeaeJ

152

31 322

22

ω

(5 )

kde ( )

( )⎥⎥⎦

⎢⎢⎣

′−′⎟⎟

⎞⎜⎜⎝

′+=

eearctg

eq 331

21

2

[3]

Odvozené parametry jsou uvedeny v tabulce č.2 .

Tabulka č.2 Odvozené parametry systému WGS 84

Člen Hodnota Rozměr Rovnice f 0,003 352 810 664 747 481 e2 0,006 694 379 990 141 317 (1) e 0,081 819 190 842 621 5

(e´)2 0,006 739 496 742 276 435 (2) e´ 0,082 094 437 949 695 7 E2 272 331 606 107,554 726 970 m2 (3) E 521 854,008 423 385 330 012 m b 6 356 752,314 245 179 497 564 m (4)

0,2C -4,841 667 749 599 43 x 10-4 (5) J2 1,082 629 821 257 28 x 10-3 (5) q 7,334 625 786 725 72 x 10-5

Obr.1: Schéma geocentrického souřadného systému WGS 84, [3]

2.2 Systém souřadnic na elipsoidu WGS 84 WGS 84 používá souřadnice zeměpisné, jednotlivé body jsou definované

zeměpisnou délkou, šířkou a výškou. Zápis zeměpisné šířky a délky může

14

Page 15: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

být ve stupních, ve stupních a minutách nebo ve stupních, minutách a

vteřinách (s jednotkami v desetinném tvaru). Je třeba vždy správně uvést,

zda se jedná o severní nebo jižní šířku a o východní nebo západní délku.

Zápis výšky je uveden v metrech - není to skutečná nadmořská výška, ale

elipsoidická výška (neboli vzdálenost od elipsoidu).

Počátek souřadnicové soustavy a směry souřadnicových os jsou

definovány následovně:

• počátek je umístěn do těžiště Země,

• osa Z má směr ke konvenčnímu terestrickému pólu (CTP)

definovanému BIH na základě souřadnic stanic definujících systém BIH,

• osa X je definována průsečnicí referenčního poledníku WGS 84 a roviny

rovníku vztažené k CTP, referenční poledník je nultý poledník

definovaný BIH,

• osa Y doplňuje systém na pravotočivý pravoúhlý souřadnicový systém,

směr kladné části osy leží v rovině rovníku 90° východně vzhledem k

ose X.

Počátek souřadnicového systému WGS 84 je totožný se středem

elipsoidu WGS 84 a osa Z je rotační osou elipsoidu. Takto definovaný systém

je s reálnou zemí spojen prostřednictvím pozemních stanic kontrolního

segmentu GPS. Původní referenční rámec (z roku 1987) byl realizován

prostřednictvím NNSS nebo TRANSIT (Doppler). [2]

Obr.2 : Souřadné systémy, [2]

15

Page 16: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

2.3 WGS 84 v ČR Na území bývalého Československa bylo započato s realizací systému

WGS 84 na základě kampaně VGSN'92, organizované DMA (Defense

Mapping Agency = Obranná mapovací agentura armády USA, dnes NIMA -

National Imagery and Mapping Agency) a Topografickou službou (TS) Armády

ČR (AČR). Od 1.1.1998 je WGS 84 zaveden ve vojenském a civilním letectvu

a v AČR je běžně používán v rámci kooperace a armádami NATO a

standardizace v geodézii a kartografii.

Světový geodetický referenční systém 1984 je na území České

republiky určen:

• technologiemi kosmické geodézie, které jsou součástí programů

monitorovacího a zpracovatelského centra správce systému,

• souborem rovinných souřadnic bodů vztažených ke světovému

geodetickému referenčnímu systému 1984 (World Geodetic System

1984), epoše G873,

• elipsoidem světového geodetického systému 1984 s konstantami

a = 6378137m, f = 1:298,257223563, kde "a" je délka hlavní poloosy a

"f" je zploštění.“

Jiná definice uvádí, že geodetický systém WGS 84 je definován:

• polohou počátku a orientace pravoúhlé prostorové souřadnicové

soustavy,

• parametry referenčního elipsoidu,

• gravitačním modelem Země a geoidem

Počátek a orientace souřadnicových os jsou prakticky realizovány

souřadnicemi X, Y a Z dvanácti stanic, které monitorují dráhy GPS družic.

Souřadnice těchto monitorovacích stanic byly (do roku 1994) určeny na

základě dopplerovských měření systému TRANSIT na základě zpracování

časově dlouhodobých "absolutních" observačních kampaní.

Od 1.1.1994 jsou WGS 84 souřadnice 10 sledovacích stanic GPS,

zpřesněny na WGS 84 (G730) (Malys, Slater, 1994) a připojeny přesným

relativním měřením pomocí technologie GPS k systému ITRF-91, později byl

systém rozšířen na 12 stanic v dále zpřesněném systému WGS 84 (G873). [3]

16

Page 17: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

2.4 Přesnost WGS 84

Přesnost geocentrických souřadnic bodů přímo určených v systému

WGS 84 na základě technologie GPS, s použitím odpovídajících efemerid a

relativního měření ve statickém módu, je charakterizována středními

kvadratickými chybami v zeměpisné šířce B, zeměpisné délce L, a geodetické

výšce h:

mB = mL < 0,4 m

mh < 0,5 m.

Tyto chyby neobsahují pouze měřické chyby, ale především chybu v

realizaci počátku souřadnicového systému (v současnosti cca 10 cm v každé

souřadnici) a v určení rozměru sítě. [3]

2.5 Perspektiva využití WGS 84

Koncem 90. let byly péčí TS AČR geodetické polohové základy

převedeny ze společného systému ETRS-89 do WGS 84, který je nyní

využíván v AČR ke:

• geodetickému zabezpečení letišť, civilních i vojenských,

• geodetické lokalizaci prvků VTIS (Vojenský Topografický Informační

Systém) a VGIS (Vojenský Geografický informační systém), které jsou

podsystémem armádního SIS (Štábní informační systém AČR),

• zabezpečení jednotek AČR, působících ve svazku IFOR, SFOR,

• tvorbě mapového standardizovaného díla v zobrazení UTM

2.6 Přechod UTM na WGS 84

Na elipsoid WGS 84 je podle definice kartografického zobrazení UTM

nasunut válec tak, aby jeho podélná osa ležela v rovině rovníku; průměr

tohoto válce je poněkud menší než je řez elipsoidem WGS 84.

Postup:

• z plochy elipsoidu se vlevo 3° a vpravo 3° od osového poledníku

zobrazí na plochu válce obraz zemského povrchu

• válec se pootočí okolo osy rotace elipsoidu o 6° a opět se vše zobrazí

na válec

17

Page 18: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

• tak se pokračuje celkem 60x, až je veškerý povrch Země zobrazen na

válec

• válec se „rozvine“ a je tak získáno 60 šestistupňových pásů na nichž je

zobrazena v konformním zobrazení příslušná část povrchu Země,

každý z těchto pásů má vlastní souřadnicovou – rovinnou soustavu –

osa E je totožná s obrazem rovníku, osa N pak se středovým

poledníkem; aby se vyloučilo střídání znamének v kvadrantech, odsune

se osa N západním směrem o 500 km – pak jsou všechny souřadnice E

kladné. [5]

18

Page 19: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

3. UTM – Universal Transverse Mercator

Univerzální transverzální Mercatorovo zobrazení je konformní válcové

zobrazení v příčné poloze v 6° poledníkových pásech. Bylo vytvořeno roku

1772. Rovnice vznikly přenásobením rovnic zobrazení transverse Mercator

modulem m = 0,9996. Tím se docílilo snížení vlivu zkreslení na okrajích pásů

na 14 cm/km.

Obr.3: Transverzální válcové zobrazení, [5]

3.1 Charakteristika V roce 1947 bylo převzato americkou armádou pro vojenské mapy

velkých měřítek. V současné době se využívá převážně pro potřeby NATO.

Jako referenční elipsoid se nejčastěji používá Hayfordův elipsoid (pro NATO)

a WGS 84. Od 1.1.2006 je zobrazení UTM na elipsoidu WGS 84 se

souřadnicovým systémem WGS 84, používané v NATO, zavedeno též

Armádě ČR. Nahradilo principem podobné Gauss – Krügerovo zobrazení na

Krasovského elipsoidu se souřadnicovým systémem S - 42, zavedené v

bývalé Varšavské smlouvě.

3.2 Popis zobrazení

Rovník a poledníky každých 90o od základního poledníku (včetně) se

zobrazují jako přímky. Ostatní poledníky jsou komplexní křivky konkávní

vzhledem k základnímu poledníku. Ostatní rovnoběžky jsou konkávní

vzhledem k nejbližšímu pólu. Zobrazení je symetrické podle rovníku a podle

každého poledníku, který je zobrazen jako přímka. Póly se zobrazí jako body

na základním poledníku.

19

Page 20: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

3.2.1 Značení Referenční elipsoid je rozdělen na 60 očíslovaných pásů (zón), každý

má šířku 6°. Zóny se číslují od poledníku 180° východním směrem od 1 do 60.

Každá zóna má definován střední poledník, který se zobrazuje jako přímka.

Např. zóna 1 se rozkládá od 180°do 174°z.d., střední poledník je 177°z.d..

Kvůli vzrůstajícímu zkreslení při postupu směrem k pólům je UTM

definováno od 80°j.š. do 84° s.š.. Pro polární oblasti se používá speciální

zobrazení UPS.

V UTM je každý poledníkový pás samostatně zobrazen do roviny. Pás

má vlastní soustavu pravoúhlých souřadnic vodorovnou osou je obraz rovníku

a je kladná na východ, svislou střední poledník daného pásu a má kladný

směr na sever. Abychom se vyhnuli záporným hodnotám souřadnice E v 2.a

3. kvadrantu (dle matematického levotočivého číslování kvadrantů) v rámci

pásu, je svislá osa rovnoběžně přesunuta na západ o 500 km. Ze stejného

důvodu se pro zobrazení jižní polokoule přičítá konstanta 10 000 000 m

k souřadnici N.

Poloha bodu o zeměpisných souřadnicích [ϕ, λ] je tedy v UTM vyjádřena

číslem pásu a dvojicí pravoúhlých souřadnic [E, N]. Rovnoběžkové pásy jsou označeny písmeny A až Z (bez písmen O a I

– ta jsou vynechána, aby nedošlo k záměně s čísly), jelikož má každý

šestistupňový pás svou soustavu souřadnic, není dvojice hodnot E, N

jednoznačným konkrétním vyjádřením polohy. Z tohoto důvodu se k předávání

informací o poloze používá tzv. hlásný systém MGRS (viz kapitola 4), což je

pouze jiný zápis prvků N a E.

3.3 Průběh zkreslení Zkreslení je v daném bodě ve všech směrech stejné (kružnice zkreslení

v originále se zobrazí jako kružnice zkreslení i v mapě). Zkreslení je

konstantní na základním poledníku. Dále plošné zkreslení roste směrem od

základního poledníku, ale ve stejné vzdálenosti od tohoto poledníku je

konstantní. Zkreslení je rovnoměrně rozloženo do plochy daného pásu, na

středním poledníku má hodnotu 0,9996. [6]

20

Page 21: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Obr. 4: Rozsah poledníkového pásu UTM, [6]

3.4 Mercator Gerardus Mercator se narodil 5. března 1512 jako Gerhard Kremer ve

vlámském městě Rupelmonde (dnes v Belgii, v té době část Holandska).

Pouze dvacet let před jeho narozením Kryštof Kolumbus podnikl svoji

historickou plavbu do Nového Světa, což mimo jiné vedlo mladého Kremera

k myšlenkám o nových zeměpisných objevech. V roce 1530 se přihlásil na

Univerzitu v Louvainu a po absolvování se vypracoval do postavení jednoho z

hlavních evropských kartografů. V té době bylo obvyklé, že si studovaní

mužové polatinštili svá jména. V doslovném překladu je holandské slovo

kramer převedeno na merchant, česky nejspíš kupec nebo obchodník. Tedy

Gerhard Kremer změnil své jméno na Gerardus Mercator a pod tímto jménem

se i proslavil. Mercatorova nadějná kariéra byla ohrožena v roce 1544, kdy byl

zatčen pro kacířství. Kvůli svému prosazování protestanství musel následně

uprchnout do sousedního Duisburgu (dnešní Německo), kde zůstal až do

konce svého života.

Obr.5: Geradus Mercator, [7]

21

Page 22: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Před Mercatorem zdobili kartografové své mapy nereálnými mytologickými

figurkami a fiktivními zeměmi. Tyto mapy byly proto spíše uměleckým

výtvorem než pravdivou prezentací světa. Mercator byl první, který své

mapy stavěl výlučně na naprosto exaktních údajích. Ty získal díky

průzkumům, a tak přeměnil kartografii z umění na vědu. Byl také první, u

kterého se objevil svazek kolekcí samostatných map. Tento svazek byl

nazýván atlas, u příležitosti legendární mytologické postavy, která drží

glóbus. Tento umělecký výjev zdobil titulní stranu. Atlas byl publikován ve

třech částech, poslední z nich spatřila světlo světa až v roce 1595 po

Mercatorově smrti. Stalo se to roku 1568, kdy Mercator sám sobě uložil

úkol věnovat svůj čas nové projekci mapy, která by odpovídala

námořnickým potřebám a která by přeměnila celosvětovou navigaci z

náhodného riskantního snažení na precizní vědu. Ze začátku byl

nasměrován dvěma principy: mapa musí být rozprostřena do obdélníkové

sítě, kde všechny kružnice představující body téže zeměpisné šířky musí

být reprezentovány vodorovnými čarami, které jsou rovnoběžné s rovníkem

a stejně dlouhé jako rovník. Druhým principem bylo, že mapa musí být

izogonální, jelikož pouze a jen u izogonálních map je zachován skutečný

směr mezi libovolnými dvěma body glóbu. Teď budeme mluvit o glóbu.

Kružnice zeměpisné šířky zmenšují svoji velikost, když se příslušná

zeměpisná šířka zvětšuje, a to až do dosažení nulové délky v kterémkoliv

z obou pólů. Ale na Mercatorově mapě jsou tyto kružnice znázorněny

vodorovnými čarami o stejné délce jako rovník. Tudíž každá rovnoběžka

na mapě je vodorovně (to je z východu na západ) roztažena s jistým

koeficientem závislým na zeměpisné šířce dané rovnoběžky.

Obvod kružnice se zeměpisnou šířkou φ je 2πr = 2πRcosφ na glóbu,

zatímco na mapě je její délka 2πR . Kružnice je tedy roztažena

s koeficientem

ϕϕπ

π seccos2

2=

RR

Aby byla mapa izogonální, s roztažením východo-západních rovnoběžek

musí současně existovat i stejné severo-jižní roztažení vzdáleností mezi

rovnoběžkami. A tohle severo-jižní roztažení se musí postupně zvětšovat,

jak se blížíme k vyšším zeměpisným šířkám. Jinak řečeno, stupně

22

Page 23: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

zeměpisné šířky, které jsou na glóbu stejně umístěné podél jednotlivých

poledníků, musí být pozvolna zvětšovány na mapě. A to je klíčový princip

této mapy.

Obr.6: Mercatorova zeměpisná síť [7]

Nicméně, aby byl tento plán uskutečněn, musí být nejdříve určeny

vzdálenosti mezi sousedními rovnoběžkami. Jak přesně tohle Mercator dělal,

není známo a stále se o tom vedou debaty v kartografii mezi historiky.

Nenechal žádný psaný záznam své metody, až na následující vysvětlující

dopis, který byl natištěn na jeho mapě:

Při znázorňování světa musíme rozvinout povrch koule do roviny, a to takovým způsobem, aby se polohy míst na všech stranách navzájem shodovaly ve skutečném směru a ve skutečné vzdálenosti... S tímto úmyslem musíme použít nové proporce a nové sestavení poledníků s přihlédnutím k rovnoběžkám... Kvůli tomuto důvodu jsme postupně

zvětšovali stupně zeměpisné šířky směrem k jednotlivým pólům přímo úměrně s prodlužováním rovnoběžek do délky rovníku.

I toto nejasné vysvětlení nám dává jasně najevo, že Mercator musel

dobře pochopit matematické principy, které jsou základem jeho mapy. Když

vytvořil síť rovnoběžek a poledníků, zůstalo mu už jen položit kůži na kostru

neboli překrýt svoji síť siluetou kontinentů, která byla známa v jeho době. V

roce 1569 publikoval svoji mapu světa pod názvem Nový a vylepšený popis

zemí ve světě, upraveno a určeno pro užívání navigátorů. Byla to ohromná

mapa, která byla kvůli vytištění rozdělena na 21 částí a celkově měřila 54*83

palců. Je to jeden z nejvzácnějších kartografických artefaktů v historii. Jsou

známy pouze tři exempláře originálu, které přetrvaly do současnosti.

Mercator zemřel 2. prosince 1594 v Duisburgu. Žil dlouhý život, který

mu přinesl slávu a bohatství. A přesto jeho proslulý úspěch - mapa, která

nosila jeho jméno - nebyla hned přijata námořní komunitou, která nedokázala

23

Page 24: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

pochopit nadměrné překroucení tvaru kontinentů. Je fakt, že Mercator nedodal

úplné vysvětlení, kterak postupně zvětšoval vzdálenost mezi rovnoběžkami.

Tím způsobil zmatek v myslích kartografů, kteří na jeho dílo chtěli navázat. [7]

24

Page 25: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

4. MGRS – Military Grid Reference System Hlásné systémy NATO

Hlásné systémy představují metodu určování polohy bodů na

kartografickém obrazu zemského povrchu, která byla původně vyvinuta pro

vojenské účely.

Hlásný systém tvoří osnovy stejně vzdálených rovnoběžek, které na

kterékoli mapě určují čtvercovou síť. Každý hlásný systém je dále definován

klíčem, dle kterého je každému bodu v rámci sítě jednoznačně přiřazen

alfanumerický kód. Mezi nejznámější hlásné systémy patří MGRS a GEOREF.

Hlásný systém MGRS byl poprvé pospán americkou armádou v roce

1947. Jedná se o alfanumerickou verzi sytému UTM (nepolární oblasti) a UPS

(polární oblasti), standardní pro mapy NATO. Umožňuje jednoznačnou

identifikaci bodu kdekoli na Zemi. [1]

4.1 Značení

Jak už bylo řečeno výše, jelikož má každý šestistupňový pás svou

soustavu souřadnic, není dvojice hodnot E, N jednoznačnou identifikací polohy

a proto se používá hlásný systém MGRS.

Základním prvkem hlásného systému je tzv. zóna (obraz sférického

čtyřúhelníku referenčního elipsoidu). Systém rozděluje každý poledníkový pás

na 19 vrstev o šířce 8° a 1 vrstvu o šířce 12°, a to od rovnoběžky 80° jižní

šířky (v algoritmu uvažujeme –80°) do rovnoběžky 84° severní šířky. Tak je

zemský povrch rozdělen na 60 x 20 sférických čtyřúhelníků (ve skutečnosti

vzhledem k nepravidelnosti dělení oblasti Špicberků je sférických čtyřúhelníků

o 3 méně). Každé zóně je přiřazen hlásným systémem kód. První složka kódu

je číslo zobrazeného poledníkového pásu od 1 do 60. Pásy se číslují od

obrazu poledníku 180° západní délky, kdy v algoritmu uvažujeme –180°,

směrem na východ. Druhá složka kódu je písmeno anglické abecedy C až X

(písmena I a O jsou vynechána, aby nedošlo k záměně s číslicemi), které

označuje vrstvu (vrstvy se značí od obrazu rovnoběžky 80° jižní šířky směrem

na sever). Každá zóna je tedy kódem jednoznačně identifikovatelná.

25

Page 26: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Obr. 7: Souřadný systém MGRS v ČR [1]

V rozměrech zón jsou nepravidelnosti:

• pás číslo 32 je mezi rovnoběžkami 56°a 64°s.š. (vrstva V) rozšířen o

3°pásu č. 31, tj. na výsledných 9°. Tímto opatřením zůstává jihozápadní

část Norska v jednom poledníkovém pásu

• pásy 33 a 35 jsou mezi rovnoběžkami 72°a 84° kvůli zachování

Špicberků ve 2 pásech rozšířeny na 12°

• tyto nepravidelnosti se kompenzují zvětšením pásů 31 a 37 ze 6°na 9°a

vynecháním pásů 32, 34 a 36 mezi těmito rovnoběžkami

Hlásnou síť dále tvoří čtverce o straně 100 km. Každý zobrazený

poledníkový pás je rozdělen systémem rovnoběžných čar s obrazem rovníku a

příslušného osového poledníku (tj. s osou N a osou E). Obraz poledníkového

pásu tedy pokrývá čtvercová síť (obrázek vlevo). V oblasti rovníku, vzhledem k

šířce šestistupňového poledníkového pásu (668 km), takto vznikne šest

úplných čtverců a na každém okraji pásu jeden neúplný čtverec, který má

šířku 34 km. Se zužováním obrazů poledníkových pásů směrem k pólům se

snižuje počet úplných čtverců a mění šířka okrajových čtverců. Každý čtverec

(úplný i neúplný) se označuje dvěma písmeny, z nichž první písmeno popisuje

sloupec (sloupce se značí od obrazu poledníku 180° směrem na východ)

čtvercové sítě, ve kterém se nachází příslušný čtverec. Druhé písmeno určuje

řádku (řádky se označují od obrazu rovníku směrem na sever a od obrazu

rovníku směrem na jih), na níž se příslušný čtverec v rámci čtvercové sítě

vyskytuje.

26

Page 27: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Sloupcům (včetně neúplných) jsou přidělena písmena anglické

abecedy A až Z (bez I a O). Po písmenu Z se abeceda opakuje. Pro označení

vrstev je využito písmen A až V (bez I a O). Po písmenu V se abeceda

opakuje. U lichých poledníkových pásů začíná první vrstva od rovníku

písmenem A, u sudých písmenem F. [6]

Úplný kód polohy objektu v hlásné síti:

označení zóny – číslo, písmeno,

označení čtverce – písmeno, písmeno,

pravoúhlé souřadnice bodu v rámci příslušného čtverce –

posloupnost číslic.

Každý čtverec určuje lokální soustavu souřadnic LS s počátkem v

levém dolním rohu; první polovina posloupnosti číslic udává souřadnici W,

tedy vzdálenost bodu od západní svislé strany čtverce, tj. od osy y v soustavy

LS, druhá polovina souřadnici S, tedy vzdálenost bodu od jižní vodorovné

strany čtverce, tj. od osy x v soustavy LS. Celý údaj (kód) se píše bez mezer a

jakýchkoliv interpunkčních znamének následně:

V rámci příslušného čtverce je poloha bodů určena posloupností číslic.

Tyto číslice udávají pravoúhlé souřadnice lokální souřadnicové soustavy.

Podle počtu číslic v souřadnici bodu lze poznat , s jak velkou přesností

byla souřadnice určena [6]:

počet číslic příklad přesnost (m) 4 0491 1000 6 042915 100 8 04259152 10 10 0425091520 1

příklad kódu [2]:

27

Page 28: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

5. Matematický úvod Základním úkolem matematické kartografie je zobrazení povrchu

referenčního plochy (elipsoidu) do roviny. Vzájemné přiřazení polohy bodů na

dvou různých referenčních plochách nazýváme kartografické zobrazení.

Kartografická zobrazení rozlišujeme podle použitých referenčních ploch,

v našem případě se jedná o zobrazení z elipsoidu do roviny. Kartografická

zobrazení lze charakterizovat i z hlediska vlastností kartografických zkreslení.

UTM je konformním zobrazením, zachovává tedy úhly.

Základní souřadnicovou soustavou na referenčním elipsoidu jsou

zeměpisné souřadnice, označované též geodetické zeměpisné souřadnice

nebo pouze geodetické souřadnice (geographic coordinate system).

Souřadnice tvoří zeměpisná (geodetická) šířka φ (latitude) a zeměpisná

(geodetická) délka λ (longitude). Zeměpisná šířka dosahuje hodnot v rozsahu

<-90°, 90°>, často jsou tyto hodnoty označovány i jako jižní zeměpisná šířka

(pro hodnoty <-90°, 0°>) a severní zeměpisná šířka (pro hodnoty <0°, 90°>).

Zeměpisná délka používaná v běžném životě nabývá hodnot <0°, 360°> s

počátkem na základním poledníku s přírůstkem ve směru východním.

Čáry s konstantní hodnotou λ, resp. φ jsou nazývány zeměpisné

poledníky (meridian), resp. zeměpisné rovnoběžky (parallel). Zeměpisné

poledníky a rovnoběžky vytvářejí na povrchu referenčním elipsoidu

zeměpisnou síť (graticule), která je při klasické tvorbě map důležitým

konstrukčním prvkem při zobrazování povrchu elipsoidu do roviny. Zeměpisná

síť umožňuje základní orientaci v obsahu map.

5.1 Použitá symbolika:

x, y ... rovinné souřadnice poledníkového pásu (UTM)

φ, λ ... zeměpisné souřadnice na elipsoidu

k ... hodnota zkreslení

e ... excentricita

M ... meridiánová vzdálenost od rovníku k rovnoběžce o zem. šířce φ

a ... velikost velké poloosy elipsoidu

N ... příčný poloměr křivosti

28

Page 29: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

5.2 Hodnoty vybraných veličin: a ... 6 378 137m

k0...0,9996

e ... 0,081 819 190 842 621 5

e´2... 0,006 739 496 742 276 435

5.3 Matematický vztah pro UTM a elipsoid postup je popsán dle [8]

( ) ( ) ⎥⎦

⎤⎢⎣

⎡′−++−++−+=

1205872185

61

522

3

0AeCTTACTANkx

(1)

( ) ( )⎭⎬⎫

⎩⎨⎧

⎥⎦

⎤⎢⎣

⎡′−++−+++−+⋅+−=

7203306005861

24495

2

622

42

2

00AeCTTACCTAtgNMMky ϕ

(2)

( ) ( ) ( ) ⎥⎦

⎤⎢⎣

⎡+−+′−++−+++=

7201614861

2428134245

211

62

422

2

0ATTAeCCTACkk ,

(3)

kde:

• k0 ... velikost zkreslení na centrálním poledníku daného pásu

• e´2 ... je čtverec druhé excentricity, 2

22

1 eee−

=′

(4)

• N ... příčný poloměr křivosti, ϕ22 sin1 e

aN−

=

(5)

• T (substituce) ...

(6)

ϕ2tgT =

• C ...

(7)

ϕ22 coseC ′=

• A ... ( ) ϕλλ cos0−=A ... (zeměpisná délka je počítána v radiánech)

(8)

29

Page 30: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

⎥⎦

⎤+⎟⎟

⎞⎜⎜⎝

⎛+−⎟⎟

⎞⎜⎜⎝

⎛+++

⎢⎣

⎡+⎟⎟

⎞⎜⎜⎝

⎛+++−⎟⎟

⎞⎜⎜⎝

⎛−−−−=

KKK

KK

ϕϕ

ϕϕ

6sin3072354sin

102445

25615

2sin102445

323

83

2565

643

41

664

642642

eee

eeeeeeaM

(9)

M0 = M počítáno pro φ0, šířku protínající centrální poledník λ0

v počátku souřadnicové soustavy poledníkového pásu x,y.

Je-li, 2πϕ ±=

potom můžeme vynechat všechny rovnice kromě rovnice

(9) , ze kterých vycházíme pro M a M0. Potom x = 0, y = k0(M - M0), k = k0.

Rovnice (3) pro k může být rovněž psána jako funkce φ a x:

( ) ⎥⎦

⎤⎢⎣

⎡′++= 22

0

222

0 2cos11

Nkxekk ϕ

(10)

K získání souřadnic UTM je přivlastněný „ falešný východ“ přidán k ose x a

„falešný sever “ k ose y po výpočtu z rovnic (1) a (2) .

Pro inverzní výpočet potom platí:

( )

( ) ⎥⎦

⎤−′−++++

+⎢⎣

⎡′−−++−⋅⎟⎟

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛−=

7203252452989061

24941035

26

21

22111

422

111

2

1

111

DCeTCT

DeCCTDR

tgN ϕϕϕ

(11)

( )[ ( ) 1

52

122

111

3

110 cos120

248328256

21 ϕλλ ⎥⎦

⎤+′+−+−+++−+=

DTeCTCDCTD ,

(12) která vychází z rovnice pro φ1:

KK

KKK

+⎟⎟⎠

⎞⎜⎜⎝

⎛−+

+⎟⎟⎠

⎞⎜⎜⎝

⎛++⎟⎟

⎞⎜⎜⎝

⎛+−+⎟⎟

⎞⎜⎜⎝

⎛+−+=

μ

μμμμϕ

8sin512

1097

6sin96

1514sin32

5516

212sin32

272

3

41

31

41

21

311

1

e

eeeee

(13)

30

Page 31: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

kde :

• e1 .. excentricita : )1(1

)1(12

2

1e

ee

−+

−−=

(14)

• μ ...

⎟⎟⎠

⎞⎜⎜⎝

⎛−−−−

=

K2565

643

41

642 eeea

(15)

• M ... 0

0 kyMM += , kde M0 se počítá z rovnice (9) pro dané φ0. Index 1

znamená, že v uvedeném vztahu pro danou veličinu zaměníme φza φ1.

• 01kN

xD =

(16)

• 2

3)sin1()1(

122

2

1 ϕeeaR

−−

=

(17) Hlásný systém MGRS je pouze kódovaným zápisem rovinných souřadnic

zobrazení UTM.

31

Page 32: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

6. Popis programu

Program Convert.exe počítá převod souřadnic mezi UTM (N,E),

elipsoidem WGS 84 (φ, λ neboli lat, lon) a systémem MGRS.

Program pracuje ve 3 modulech:

• převod z UTM do WGS 84 a MGRS

vstup: N, E, zone, layer

výstup: lat, lon, kód MGRS

• převod z WGS 84 do UTM a MGRS

vstup: lat, lon

výstup: N, E, zone, layer, kód MGRS

• převod z MGRS do UTM a WGS 84

vstup: kód MGRS

výstup: N, E, lat, lon

Výběr modulu probíhá v prvním dialogovém okně po spuštění

programu.

Obr.8 : Dialogové okno pro výběr modulu

ad 1) UTM → WGS 84, MGRS

vstupní parametry:

• N … northing, určuje, na které polokouli bod je, nabývá hodnot od 0 do

10 000 000m (na severní polokouli hodnota od rovníku směrem k pólu

stoupá, na jižní polokouli je tomu obráceně)

32

Page 33: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

• E … easting, nabývá hodnot od 0 do 668 0000m (počátek souřadnic

má hodnotu x = 500 000)

• Zone … číslo poledníkového pásu, nabývá hodnot od 1 do 60 (rozsah

pásu je 6°)

• Layer … vrstva, je popsána písmeny od C do X , kde I, O se nepoužívají

(značení začíná od 80° jižní šířky směrem na sever, rozsah vrstvy je 8°)

Postup výpočtu : a) převod na zeměpisné souřadnice:

- přepočet délky poledníkového oblouku z rovnice (16)

- výpočet zeměpisných souřadnic dle postupu uvedeného

v matematickém úvodu (5.3)

b) převod do MGRS :

- první část kódu je číslo příslušného poledníkového pásu a

označení vrstvy, což se přepíše ze zadaných hodnot

- ve druhé části jsou dvě písmena označující příslušný 100km

čtverec, první písmeno určuje sloupec, druhé řádek

- poslední údaj uvádí polohu bodu v daném čtverci, počátek

souřadnicové soustavy je v levém dolním rohu čtverce, údaj

se shoduje se souřadnicí v UTM v řádech desítek tisíc, tedy

je-li E = 604 819,71 a N = 1 690 908,32, potom koncový údaj

kódu bude 0491890908

Obr.9: Převod z UTM

33

Page 34: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

ad 2) WGS → UTM, MGRS

vstupní parametry:

• lat … latitude, zeměpisná šířka, je to úhel mezi rovinou normály v bodě

na povrchu elipsoidu a rovinou rovníku, nabývá hodnot od –90°do 90°,

rozsah UTM je od –84°do 80°

• lon … longitude, zeměpisná délka, je to úhel, který svírá rovina místního

poledníku, procházejícího určovaným bodem a rovina Greenwichského

(nultého) poledníku, nabývá hodnot od –180° do 180°

Postup výpočtu: a) převod do UTM:

- výpočet zóny (poledníkového pásu)

- výpočet délky poledníkového oblouku od rovníku k dané

zeměpisné šířce

- výpočet zeměpisných souřadnic uvedený v kapitole (5.3)

b) převod do MGRS je prováděn stejným způsobem jako v předchozím

modulu

Obr.10: Převod WGS 84 UTM, MGRS

ad 3) MGRS → UTM, WGS 84

vstupní parametry:

• kód MGRS … alfanumerický kód souřadnic UTM, 14-15 znaků (podle

počtu číslic v označení poledníkového pásu)

34

Page 35: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

postup výpočtu: a) převod do UTM:

- číslo pásu a označení vrstvy označuje sférický čtyřúhelník

(určený vrstvou a poledníkovým pásem), ve kterém se bod

nachází

- převod úhlů na délkový element (z definice metru jako

desetimiliontiny zemského kvadrantu, tedy vzdálenosti od

pólu k rovníku)

- určení souřadnic UTM

b) převod do WGS 84 se provádí z určených souřadnic UTM stejným

způsobem jako v modulu

Obr.10: Převod MGRS UTM, WGS 84

6.1 Microsoft Visual C++ 6.0 Tato verze vývojového prostředí Visual C++ je starší, přesto je možné ji

, alespoň částečně, přizpůsobit aktuálnímu stavu vývojových prostředí. Můj

výběr software pro tuto práci ovlivnily tři věci: 1) znalost (alespoň základní)

jazyka C++ , 2) dostupnost vývojového prostředí (možnosti, které mám doma,

v blízkém okolí), 3) fakt, že 90% uživatelů používá produkty společnosti

35

Page 36: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Microsoft a proto je využitelnost výsledného produktu maximální. Vybrané

prostředí pro mě představovalo něco nového a naprosto odlišného od

dosavadních zkušeností, jelikož programování v tomto prostředí neznamená

pouze sestavování algoritmů, ale předpokládá se i určitá znalost operačního

systému Windows.

36

Page 37: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Závěr Tato bakalářská práce se zabývá výpočty převodů mezi zeměpisnými

souřadnicemi z elipsoidu WGS 84 [φ, λ], rovinnými souřadnicemi zobrazení

UTM [N, E] a alfanumerickým systémem MGRS. Převod se týká pouze

rozsahu zobrazení UTM, tedy od 80° j.š. do 84°s.š.. Výsledkem celé práce je

program pro automatický souřadnicový převod. Program byl vytvářen ve

vývojovém prostředí Microsoft Visual C++ 6.0. Vznik funkčního programu

vyžadoval rozšíření stávajících znalostí z oblasti programování v jazyce C++,

studium nového vývojového prostředí Visual C++ a doplnění znalostí

z matematické kartografie. Výběr software byl již naznačen v textové části

práce. Představoval pro mě něco zcela nového, využívá ale jazyk C++, který

byl součástí výuky mého dosavadního studia na FSv. Při výběru vývojového

prostředí jsem se rozhodovala pouze mezi těmi, které jsou pro mne dostupné

na domácím PC. Tedy mezi Visual Basic a Visual C++, freeware verze jiných

prostředí, dostupných na internetu, mi nebyly před tím známy. Ačkoli C++ patří

mezi programovací jazyky se složitější syntaxí, z uvedených dvou voleb mi byl

samozřejmě bližší. Práce na finální podobě programu se neobešla bez potíží

a nebyla pro mě jako pro laika jednoduchá, přesto věřím, že výsledná podoba

programu odpovídá požadavkům zadání. Program převádí souřadnice

obousměrně mezi uvedenými systémy. Výběr směru převodu uživatel volí

v prvním dialogovém okně.

37

Page 38: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Seznam použité literatury: [1] Veverka B. : Kartografické standardy NATO. Geodetický a kartografický

obzor, 45/87, 1999, č.7-8, str.140-147.

[2] Kubátová R. : Systém JTSK a WGS 84, jejich charakteristika a vzájemná

transformace, Bakalářská práce, ZČU v Plzni

[3] Jurkina M.A.,Pick M. : Numerické výpočty ve světovém geodetickém

referenčním systému 1984 (WGS 84), Vojenský geografický obzor, 2006,

č.1, příloha 2

[4] Geocaching Encyclopaedia, článek WGS 84 , dostupný na

http://wiki.geocaching.cz/wiki/WGS-84

[5] Hánek.: Zobrazení UTM, text pro projekt CTU 0513011 (2005), dostupné

na http://klobouk.fsv.cvut.cz/~hanek/K154/PDF/UTM.pdf

[6] Divišová L.: UTM, semestrální práce z tématické kartografie, ZČU Plzeň,

2000

[7] Smýkalová R.: Mercatorův přínos pro matematickou kartografii, 8.vědecká

konference doktorandů a mladých vědeckých pracovníků, 2007, FPV UKF

Nitra, dostupné na

http://citadel.ukf.sk/konferencia/papers/PDF_Matematika/Smykalova.pdf

[8] Snyder, J.P.: Map Projections :A Working Manual, 1987, Geological Survey

(U.S.)

[9] Buchar P. : Matematická kartografie, skripta, 2005, ČVUT

[10] Talhofer V.: Základy matematické kartografie, studijní texty, Univerzita

obrany, Fakulta vojenských technologií, katedra vojenské geografie a

meteorologie 2007, Brno

[11] Wikipedia,The Free Encyclopedia, article:Universal Transverse Mercator, dostupné na http://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system Seznam příloh: Příloha I: Zdrojový kód programu Convert.exe

Příloha II: Zobrazení UTM, značení sítě

38

Page 39: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Příloha I: Zdrojový kód programu Convert.exe Data.cpp #include "stdafx.h" #include "resource.h" #include "param.h" // Global Variables: HWND hWnd; HINSTANCE hInst; // current instance TCHAR szTitle[MAX_LOADSTRING]; // The title bar text TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text // OPENFILE structure and it's pointer LPOPENFILENAME lpofn; OPENFILENAME ofn; // File Name buffer char FileName[MAX_LOADSTRING]; // File structures FILE *in, *out; BOOL fn; file 2.cpp / file2.cpp : Defines the entry point for the application. // #include "stdafx.h" #include "resource.h" #include "param.h" #include "proto.h" int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. MSG msg; HACCEL hAccelTable; // Initialize global strings LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_FILE2, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); // Perform application initialization: if (!InitInstance (hInstance, nCmdShow)) { return FALSE;

39

Page 40: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

} hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_FILE2); // Main message loop: while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } // // FUNCTION: MyRegisterClass() // // PURPOSE: Registers the window class. // // COMMENTS: // // This function and its usage is only necessary if you want this code // to be compatible with Win32 systems prior to the 'RegisterClassEx' // function that was added to Windows 95. It is important to call this function // so that the application will get 'well formed' small icons associated // with it. // ATOM MyRegisterClass(HINSTANCE hInstance) { WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_FILE2); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = (LPCSTR)IDC_FILE2; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); return RegisterClassEx(&wcex); } // // FUNCTION: InitInstance(HANDLE, int) // // PURPOSE: Saves instance handle and creates main window // // COMMENTS: // // In this function, we save the instance handle in a global variable and // create and display the main program window.

40

Page 41: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

// BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { hInst = hInstance; // Store instance handle in our global variable hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) { return FALSE; } // ShowWindow(hWnd, nCmdShow); ShowWindow(hWnd, SW_HIDE); // ShowWindow(hWnd, SW_SHOWNORMAL); UpdateWindow(hWnd); return TRUE; } // // FUNCTION: WndProc(HWND, unsigned, WORD, LONG) // // PURPOSE: Processes messages for the main window. // // WM_COMMAND - process the application menu // WM_PAINT - Paint the main window // WM_DESTROY - post a quit message and return // // LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; TCHAR szHello[MAX_LOADSTRING]; LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING); switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDD_DIALOG_MAIN: DialogBox(hInst, (LPCTSTR)IDD_DIALOG_MAIN, hWnd, (DLGPROC)MyMainDialog); break; case IDD_WGS2UTM: DialogBox(hInst, (LPCTSTR)IDD_WGS2UTM, hWnd, (DLGPROC)wgs2utm); break; case IDD_UTM2WGS: DialogBox(hInst, (LPCTSTR)IDD_UTM2WGS, hWnd, (DLGPROC)utm2wgs);

41

Page 42: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

break; case IDD_MGRS: DialogBox(hInst, (LPCTSTR)IDD_MGRS, hWnd, (DLGPROC)mgrs); break; case IDD_BATCH: DialogBox(hInst, (LPCTSTR)IDD_BATCH, hWnd, (DLGPROC)BatchDlg); break; case IDM_ABOUT: DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_CREATE: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDD_DIALOG_MAIN, NULL); break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: Add any drawing code here... // RECT rt; // GetClientRect(hWnd, &rt); // DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); EndPaint(hWnd, &ps); // SendMessage(hWnd, WM_COMMAND, (WPARAM)IDD_DIALOG_MAIN, NULL); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } // Mesage handler for about box. LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return TRUE; } break; } return FALSE;

42

Page 43: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

} mgrs.cpp #include "stdafx.h" #include "resource.h" #include <stdio.h> #include <string.h> #include <process.h> #include <math.h> #include <commdlg.h> #include <winnls.h> #include <dlgs.h> #include "proto.h" #define MAX_LOADSTRING 100 extern HWND hWnd; int getLatZoneDegree(char l) { char letters[] = { 'A', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Z' }; int degrees[] = { -90, -84, -72, -64, -56, -48, -40, -32, -24, -16, -8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 84 }; for (int i = 0; i < 22; i++) { if (letters[i] == l) { return degrees[i]; } } return -100; } int getDigraph1Index(char letter) { char digraph1Array[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; for (int i = 0; i < 24; i++) { if (digraph1Array[i]==letter) { return i+1; } } return -1; } int getDigraph2Index(char letter) { char digraph2Array[] = { 'V', 'A', 'B', 'C', 'D', 'E', 'F', 'G',

43

Page 44: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V' }; for (int i = 0; i < 21; i++) { if (digraph2Array[i]==letter) { return i; } } return -1; } LRESULT CALLBACK mgrs(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { char degb[20], minb[20], secb[20], degl[20], minl[20], secl[20], mgrs[50]; char text[10]; long zone, eutm, nutm; char latZone, layer, row, col; double a1, a2; long latZoneDegree; double digraph1Index, digraph2Index; double startindexEquator; double zoneCM; double a6[] = { 16, 0, 8 }; long a5; double a7; double a3; double easting, northing; char digraph1, digraph2; char str[20]; bool minus; switch (message) { case WM_INITDIALOG: return TRUE; break; case WM_COMMAND: switch(wParam) { case IDOK: // OK button pressed // algorithmic processing of input data GetDlgItemText(hDlg, IDC_ZONEM, text, 5); zone = atoi(text); GetDlgItemText(hDlg, IDC_LAYERM, text, 5); latZone = (char)text[0]; GetDlgItemText(hDlg, IDC_COLM, text, 5); digraph1 = (char)text[0]; GetDlgItemText(hDlg, IDC_ROWM, text, 5); digraph2 = (char)text[0]; GetDlgItemText(hDlg, IDC_EM, text, 8); easting = atof(text); GetDlgItemText(hDlg, IDC_NM, text, 8); northing = atof(text); latZoneDegree = getLatZoneDegree(latZone);

44

Page 45: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

if (latZoneDegree < 0) minus = true; else minus = false; if (minus) { switch(latZoneDegree) { case -84: latZoneDegree = 0; break; case -72: latZoneDegree = 8; break; case -64: latZoneDegree = 16; break; case -56: latZoneDegree = 24; break; case -48: latZoneDegree = 32; break; case -40: latZoneDegree = 40; break; case -32: latZoneDegree = 48; break; case -24: latZoneDegree = 56; break; case -16: latZoneDegree = 64; break; case -8: latZoneDegree = 72; break; case 0: latZoneDegree = 84; break; } } a1 = (double)latZoneDegree * 40000000 / 360.0; if (minus) a2 = 2000000 * ceil(a1 / 2000000.0); else a2 = 2000000 * floor(a1 / 2000000.0); digraph2Index = getDigraph2Index(digraph2); startindexEquator = 1; if (( 1 + zone % 2) == 1) { startindexEquator = 6; } a3 = a2 + (digraph2Index - startindexEquator) * 100000; if (a3 <= 0) { a3 = 10000000 + a3; } northing = a3 + northing; if (northing == 10000000) northing = 0; zoneCM = -183 + 6 * zone; digraph1Index = getDigraph1Index(digraph1); a5 = 1 + zone % 3; a7 = 100000 * (digraph1Index - a6[a5 - 1]); easting = easting + a7; //LatLonToUtm (Bwgs84, Lwgs84, (LPSTR)&north, (LPSTR)&east, (LPSTR)&zone, (LPSTR)&layer, (LPSTR)&mgrs); sprintf(str, "%15.1f", easting); SetDlgItemText(hDlg, IDC_LATM, str); sprintf(str, "%15.1f", northing); SetDlgItemText(hDlg, IDC_LONM, str); UtmToLatLon (zone, latZone, northing, easting, (LPSTR)&degb, (LPSTR)&minb, (LPSTR)&secb, (LPSTR)&degl, (LPSTR)&minl, (LPSTR)&secl, (LPSTR)&mgrs); SetDlgItemText(hDlg, IDC_STUPNE_BM, (LPSTR)&degb); SetDlgItemText(hDlg, IDC_MINUTY_BM, (LPSTR)&minb); SetDlgItemText(hDlg, IDC_VTERINY_BM, (LPSTR)&secb); SetDlgItemText(hDlg, IDC_STUPNE_LM, (LPSTR)&degl); SetDlgItemText(hDlg, IDC_MINUTY_LM, (LPSTR)&minl); SetDlgItemText(hDlg, IDC_VTERINY_LM, (LPSTR)&secl);

45

Page 46: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

break; case IDCANCEL: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDD_DIALOG_MAIN, NULL); EndDialog(hDlg, LOWORD(wParam)); break; case IDABOUT: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDM_ABOUT, NULL); break; } break; } return FALSE; }

MyMainDialog.cpp #include "stdafx.h" #include "resource.h" #include <stdio.h> #include <string.h> #include <process.h> #include <commdlg.h> #include <winnls.h> #include <dlgs.h> #include "proto.h" #define MAX_LOADSTRING 100 extern HWND hWnd; LRESULT CALLBACK MyMainDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: switch(wParam) { case IDCANCEL: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDM_EXIT, NULL); EndDialog(hDlg, LOWORD(wParam)); break; case IDABOUT: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDM_ABOUT, NULL); break; case ID_WGS_TO_UTM: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDD_WGS2UTM, NULL); EndDialog(hDlg, LOWORD(wParam)); break; case ID_UTM_TO_WGS: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDD_UTM2WGS, NULL); EndDialog(hDlg, LOWORD(wParam)); break; case ID_MGRS: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDD_MGRS, NULL); EndDialog(hDlg, LOWORD(wParam));

46

Page 47: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

break; case IDBATCH:

PostMessage(hWnd, WM_COMMAND, (WPARAM)IDD_BATCH, NULL); EndDialog(hDlg, LOWORD(wParam)); break; } break; } return FALSE; }

StdAfx.cpp // stdafx.cpp : source file that includes just the standard includes // file2.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H and not in this file utm2wgs.cpp #include "stdafx.h" #include "resource.h" #include <stdio.h> #include <string.h> #include <process.h> #include <commdlg.h> #include <winnls.h> #include <dlgs.h> #include "proto.h" #define MAX_LOADSTRING 100 extern HWND hWnd; double northing; LRESULT CALLBACK utm2wgs(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { char text[20]; int Zone; char layer; double north, east; char degb[20], minb[20], secb[20], degl[20], minl[20], secl[20], mgrs[50]; switch (message)

47

Page 48: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

{ case WM_INITDIALOG: return TRUE; case WM_COMMAND: switch(wParam) { case IDCNS: GetDlgItemText(hDlg, IDNORTH, text, 15);

if (text[0] == 'N') { SetDlgItemText(hDlg, IDNORTH, (LPSTR)&"S"); northing = -10000000; } else { SetDlgItemText(hDlg, IDNORTH, (LPSTR)&"N"); northing = 0; } break; case IDOK: // OK button pressed // algorithmic processing of input data GetDlgItemText(hDlg, IDC_NORTHING, text, 15); north = atof(text); GetDlgItemText(hDlg, IDC_EASTING, text, 15); east = atof(text); GetDlgItemText(hDlg, IDC_ZONE, text, 15); Zone = atoi(text); GetDlgItemText(hDlg, IDI_LAYER, text, 15); layer = (char)text[0]; //string s(text);// string sub = s.substr(21);

north = north + northing; // north / south decission UtmToLatLon (Zone, layer, north, east, (LPSTR)&degb, (LPSTR)&minb, (LPSTR)&secb, (LPSTR)&degl, (LPSTR)&minl, (LPSTR)&secl, (LPSTR)&mgrs); SetDlgItemText(hDlg, IDC_STUPNE_B, (LPSTR)&degb); SetDlgItemText(hDlg, IDC_MINUTY_B, (LPSTR)&minb); SetDlgItemText(hDlg, IDC_VTERINY_B, (LPSTR)&secb); SetDlgItemText(hDlg, IDC_STUPNE_L, (LPSTR)&degl); SetDlgItemText(hDlg, IDC_MINUTY_L, (LPSTR)&minl); SetDlgItemText(hDlg, IDC_VTERINY_L, (LPSTR)&secl); SetDlgItemText(hDlg, IDC_MGRS, (LPSTR)&mgrs); break; Case IDCANCEL: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDD_DIALOG_MAIN, NULL); EndDialog(hDlg, LOWORD(wParam)); break; case IDABOUT: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDM_ABOUT, NULL); break; } break; } return FALSE; } wgs2utm.cpp #include "stdafx.h" #include "resource.h"

48

Page 49: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

#include <stdio.h> #include <string.h> #include <process.h> #include <commdlg.h> #include <winnls.h> #include <dlgs.h> #include "proto.h" #define MAX_LOADSTRING 100 extern HWND hWnd; LRESULT CALLBACK wgs2utm(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { double width_deg, width_min; double width_sec, width; double length_deg, length_min; double length_sec, length; double K1=0.863499977, K2=0.504348876, K3=42.52539444, deltaV, pi=3.141592654; double sinw, sinl; char text[10], mgrs[50]; int i_width, i; double Bwgs84, Lwgs84; double degb, minb, secb, degl, minl, secl; char east[30], north[30], zone[30], layer[30]; switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: switch(wParam) { case IDOK: // OK button pressed // algorithmic processing of input data GetDlgItemText(hDlg, IDC_STUPNE_B, text, 8); degb = atof(text); GetDlgItemText(hDlg, IDC_MINUTY_B, text, 3); minb = atof(text); GetDlgItemText(hDlg, IDC_VTERINY_B, text, 7); secb = atof(text); GetDlgItemText(hDlg, IDC_STUPNE_L, text, 8); degl = atof(text); GetDlgItemText(hDlg, IDC_MINUTY_L, text, 3); minl = atof(text); GetDlgItemText(hDlg, IDC_VTERINY_L, text, 7); secl = atof(text); if (degb < 0) {

49

Page 50: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

minb = -minb; secb = -secb; } if (degl < 0) { minl = -minl; secl = -secl; } Bwgs84 = (degb + minb/60 + secb/3600); Lwgs84 = (degl + minl/60 + secl/3600); LatLonToUtm (Bwgs84, Lwgs84, (LPSTR)&north, (LPSTR)&east, (LPSTR)&zone, (LPSTR)&layer, (LPSTR)&mgrs); SetDlgItemText(hDlg, IDC_MGRS, (LPSTR)&mgrs); SetDlgItemText(hDlg, IDC_NORTHING, (LPSTR)&north); SetDlgItemText(hDlg, IDC_EASTING, (LPSTR)&east); SetDlgItemText(hDlg, IDC_ZONE, (LPSTR)&zone); SetDlgItemText(hDlg, IDC_LAYER, (LPSTR)&layer); i = 0; break; case IDCANCEL: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDD_DIALOG_MAIN, NULL); EndDialog(hDlg, LOWORD(wParam)); break; case IDABOUT: PostMessage(hWnd, WM_COMMAND, (WPARAM)IDM_ABOUT, NULL); break; } break; } return FALSE; } wgs2utm_proc.cpp #include "stdafx.h" #include "resource.h" #include <stdio.h> #include <string.h> #include <process.h> #include <commdlg.h> #include <winnls.h> #include <dlgs.h> #include "proto.h" #define MAX_LOADSTRING 100 // Some constants used by these functions. static const double fe = 500000.0; static const double ok = 0.9996; static const double pi = 3.141592654; static const double a = 6378137.0; static const double f = 1 / 298.257223563; static const double deg2rad = pi/180;

50

Page 51: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

static const double rad2deg = 180/pi; // An array containing each vertical UTM zone. static char cArray[] = "CDEFGHJKLMNPQRSTUVWX"; double CalculateESquared (double a, double b) { return ((a * a) - (b * b)) / (a * a); } double CalculateE2Squared (double a, double b) { return ((a * a) - (b * b)) / (b * b); } double denom (double es, double sphi) { double sinSphi = sin (sphi); return sqrt (1.0 - es * (sinSphi * sinSphi)); } double sphsr (double a, double es, double sphi) { double dn = denom (es, sphi); return a * (1.0 - es) / (dn * dn * dn); } double sphsn (double a, double es, double sphi) { double sinSphi = sin (sphi); return a / sqrt (1.0 - es * (sinSphi * sinSphi)); } double sphtmd (double ap, double bp, double cp, double dp, double ep, double sphi) { return (ap * sphi) - (bp * sin (2.0 * sphi)) + (cp * sin (4.0 * sphi)) - (dp * sin (6.0 * sphi)) + (ep * sin (8.0 * sphi)); } void LatLonToUtm (double lat, double lon, LPSTR Nutm, LPSTR Eutm, LPSTR _zone, LPSTR _layer, LPSTR mgrs) { double recf; double b; double eSquared; double e2Squared; double tn; double ap; double bp; double cp; double dp; double ep; double olam; double dlam; double s; double c; double t; double eta; double sn; double tmd;

51

Page 52: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

double t1, t2, t3, t6, t7; double nfn; double zone, northing, easting; char layer, error[]={"Error"}; zone = (long)((lon + 180) / 6 + 1); if (zone == 61) zone = 1; if (lon > 0 && lon < 9 && lat > 72 && lat < 84) zone = 31; if (lon > 9 && lon < 21 && lat > 72 && lat < 84) zone = 33; if (lon > 21 && lon < 33 && lat > 72 && lat < 84) zone = 35; if (lon > 33 && lon < 42 && lat > 72 && lat < 84) zone = 37; if (lon > 3 && lon < 9 && lat > 56 && lat < 64) zone = 32; if (lat < 84.0 && lat >= 72.0) { // Special case: zone X is 12 degrees from north to south, not 8. layer = cArray[19]; } else { layer = cArray[(int)((lat + 80.0) / 8.0)]; } if (lat >= 84.0 || lat < -80.0) { // Invalid coordinate; the vertical zone is set to the invalid // character. layer = '*'; } double latRad = lat * deg2rad; double lonRad = lon * deg2rad; recf = 1.0 / f; b = a * (recf - 1.0) / recf; eSquared = CalculateESquared (a, b); e2Squared = CalculateE2Squared (a, b); tn = (a - b) / (a + b); ap = a * (1.0 - tn + 5.0 * ((tn * tn) - (tn * tn * tn)) / 4.0 + 81.0 * ((tn * tn * tn * tn) - (tn * tn * tn * tn * tn)) / 64.0); bp = 3.0 * a * (tn - (tn * tn) + 7.0 * ((tn * tn * tn) - (tn * tn * tn * tn)) / 8.0 + 55.0 * (tn * tn * tn * tn * tn) / 64.0) / 2.0; cp = 15.0 * a * ((tn * tn) - (tn * tn * tn) + 3.0 * ((tn * tn * tn * tn) - (tn * tn * tn * tn * tn)) / 4.0) / 16.0; dp = 35.0 * a * ((tn * tn * tn) - (tn * tn * tn * tn) + 11.0 * (tn * tn * tn * tn * tn) / 16.0) / 48.0; ep = 315.0 * a * ((tn * tn * tn * tn) - (tn * tn * tn * tn * tn)) / 512.0; olam = (zone * 6 - 183) * deg2rad; dlam = lonRad - olam; s = sin (latRad); c = cos (latRad); t = s / c; eta = e2Squared * (c * c); sn = sphsn (a, eSquared, latRad); tmd = sphtmd (ap, bp, cp, dp, ep, latRad); t1 = tmd * ok; t2 = sn * s * c * ok / 2.0; t3 = sn * s * (c * c * c) * ok * (5.0 - (t * t) + 9.0 * eta + 4.0 * (eta * eta)) / 24.0; if (latRad < 0.0) nfn = 10000000.0; else nfn = 0; northing = nfn + t1 + (dlam * dlam) * t2 + (dlam * dlam * dlam * dlam) * t3 + (dlam * dlam * dlam * dlam * dlam * dlam) + 0.5; t6 = sn * c * ok; t7 = sn * (c * c * c) * (1.0 - (t * t) + eta) / 6.0; easting = fe + dlam * t6 + (dlam * dlam * dlam) * t7 + 0.5;

52

Page 53: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

if (northing >= 9999999.0) northing = 9999999.0; sprintf(Nutm, "%8.1f", northing); sprintf(Eutm, "%8.1f", easting); sprintf(_zone, "%d", (int)zone); sprintf(_layer, "%c", layer); int i = 0; if ((northing < 10000000) && (easting < 1000000)) { mgrs_proc(northing, easting, zone, layer, mgrs); } else { while(error[i]!=0) *mgrs++ = error[i++]; *mgrs = 0; } } void UtmToLatLon (int zone, char layer, double northing, double easting, LPSTR degb, LPSTR minb, LPSTR secb, LPSTR degl, LPSTR minl, LPSTR secl, LPSTR mgrs) { double recf; double b; double eSquared; double e2Squared; double tn; double ap; double bp; double cp; double dp; double ep; double nfn; double tmd; double sr; double sn; double ftphi; double s; double c; double t; double eta; double de; double dlam; double olam; double lat, lon; long deg, min, sec; recf = 1.0 / f; b = a * (recf - 1) / recf; eSquared = CalculateESquared (a, b); e2Squared = CalculateE2Squared (a, b); tn = (a - b) / (a + b); ap = a * (1.0 - tn + 5.0 * ((tn * tn) - (tn * tn * tn)) / 4.0 + 81.0 * ((tn * tn * tn * tn) - (tn * tn * tn * tn * tn)) / 64.0); bp = 3.0 * a * (tn - (tn * tn) + 7.0 * ((tn * tn * tn) - (tn * tn * tn * tn)) / 8.0 + 55.0 * (tn * tn * tn * tn * tn) / 64.0) / 2.0; cp = 15.0 * a * ((tn * tn) - (tn * tn * tn) + 3.0 * ((tn * tn * tn * tn) - (tn * tn * tn * tn * tn)) / 4.0) / 16.0; dp = 35.0 * a * ((tn * tn * tn) - (tn * tn * tn * tn) + 11.0 * (tn * tn * tn * tn * tn) / 16.0) / 48.0; ep = 315.0 * a * ((tn * tn * tn * tn) - (tn * tn * tn * tn * tn)) / 512.0;

53

Page 54: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

if ((layer <= 'M' && layer >= 'C') || (layer <= 'm' && layer >= 'c')) { nfn = 10000000.0; } else { nfn = 0; } tmd = (northing - nfn) / ok; sr = sphsr (a, eSquared, 0.0); ftphi = tmd / sr; double t10, t11, t14, t15; for (int i = 0; i < 5; i++) { t10 = sphtmd (ap, bp, cp, dp, ep, ftphi); sr = sphsr (a, eSquared, ftphi); ftphi = ftphi + (tmd - t10) / sr; } sr = sphsr (a, eSquared, ftphi); sn = sphsn (a, eSquared, ftphi); s = sin (ftphi); c = cos (ftphi); t = s / c; eta = e2Squared * (c * c); de = easting - fe; t10 = t / (2.0 * sr * sn * (ok * ok)); t11 = t * (5.0 + 3.0 * (t * t) + eta - 4.0 * (eta * eta) - 9.0 * (t * t) * eta) / (24.0 * sr * (sn * sn * sn) * (ok * ok * ok * ok)); lat = ftphi - (de * de) * t10 + (de * de * de * de) * t11; t14 = 1.0 / (sn * c * ok); t15 = (1.0 + 2.0 * (t * t) + eta) / (6 * (sn * sn * sn) * c * (ok * ok * ok)); dlam = de * t14 - (de * de * de) * t15; olam = (zone * 6 - 183.0) * deg2rad; lon = olam + dlam; deg = (long)(lon*rad2deg); min = (long)((lon*rad2deg - deg)*60); sec = (long)( (lon*rad2deg*3600) - ((deg*3600)+(min*60)) ); if(min < 0) min = - min; if(sec < 0) sec = - sec; sprintf(degl, "%d", deg); sprintf(minl, "%d", min); sprintf(secl, "%d", sec); deg = (long)(lat*rad2deg); min = (long)((lat*rad2deg - deg)*60); sec = (long) ( (lat*rad2deg*3600) - ((deg*3600)+(min*60)) ); if(min < 0) min = - min; if(sec < 0) sec = - sec; sprintf(degb, "%d", deg); sprintf(minb, "%d", min); sprintf(secb, "%d", sec); mgrs_proc(northing, easting, zone, layer, mgrs); } void utmwgs_proc(int Zone, double north, double east, LPSTR degb, LPSTR minb, LPSTR secb, LPSTR degl, LPSTR minl, LPSTR secl, LPSTR mgrs) { double a, b, E2, EE, Eutmred, L0, BR, DB, T, N, B2, B3, L1, L2, L3, A;

54

Page 55: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

double Ro; double Eutm, Nutm, B, L; long deg, min, layer; double sec; char mgr[50], clayer; Eutm = east; Nutm = north; if (Nutm < 0) Nutm = Nutm + 10000000; //positive value Eutmred = (Eutm - 500000) / 0.9996; // redukovana delka char letter(int index) { char col; switch(index) { case 1: col = 'A'; break; case 2: col = 'B'; break; case 3: col = 'C'; break; case 4: col = 'D'; break; case 5: col = 'E'; break; case 6: col = 'F'; break; case 7: col = 'G'; break; case 8: col = 'H'; break; case 9: col = 'J'; break; case 10: col = 'K'; break; case 11: col = 'L'; break; case 12: col = 'M'; break; case 13: col = 'N'; break; case 14: col = 'P'; break; case 15: col = 'Q'; break; case 16:

55

Page 56: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

col = 'R'; break; case 17: col = 'S'; break; case 18: col = 'T'; break; case 19: col = 'U'; break; case 20: col = 'V'; break; case 21: col = 'W'; break; case 22: col = 'X'; break; case 23: col = 'Y'; break; case 24: col = 'Z'; break; default: col = 'Z'; break; } return col; } void mgrs_proc(double Nutm, double Eutm, long Zone, char clayer, LPSTR mgr) { char col, line, text[20]; int layer[4] = {8,6,4,2}; int windex, bg, j; double mgrsl, mgrsw, ref; LPSTR mg2; mg2 = mgr; mgrsl = Eutm; windex = 0; bg = ((Zone % (24/layer[windex]) - 1) * layer[windex]) + 1; bg = (((Zone-1) % 3) * 8) + 1; col = letter(bg); if (mgrsl <500000) { j = bg + layer[windex]/2; while(mgrsl < 500000) { mgrsl = mgrsl + 100000; j--; } mgrsl = mgrsl - 500000; }

56

Page 57: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

else { j = bg + layer[windex]/2; ref = 500000; while(mgrsl >= ref) { ref = ref + 100000; j++; } j--; ref = ref - 100000; mgrsl = mgrsl - ref; } col = letter(j%24); // altitude j = 1; ref = 0; mgrsw = Nutm; if (mgrsw >= 0) { while(mgrsw >= ref) { ref = ref + 100000; j++; } ref = ref - 100000; j--; mgrsw = mgrsw - ref; if ((Zone % 2) == 0) { j = j + 5; } j = j % 20; line = letter(j); } else { mgrsw = -mgrsw; while(mgrsw >= ref) { ref = ref + 100000; j--; if(j == 0 ) j = 20; } ref = ref - 100000; mgrsw = mgrsw - ref; mgrsw = 100000- mgrsw; if ((Zone % 2) == 0) { j = j + 5; } j = j % 20; if(j == 0 ) j = 20; line = letter(j); clayer--; if (clayer=='O') clayer = 'N'; switch(clayer) { case 'X':

57

Page 58: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

clayer = 'M'; break; case 'W': clayer = 'L'; break; case 'V': clayer = 'K'; break; case 'U': clayer = 'J'; break; case 'T': clayer = 'H'; break; case 'S': clayer = 'G'; break; case 'R': clayer = 'F'; break; case 'Q': clayer = 'E'; break; case 'P': clayer = 'D'; break; case 'N': clayer = 'C'; break; } } sprintf(text, "%d %c %c %c %05d %05d",Zone, clayer, col, line, (long)mgrsl, (long)mgrsw); j = 0; while(text[j] != 0) *mg2++ = text[j++]; *mg2 = 0; return; }

58

Page 59: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

Příloha II : Zobrazení UTM, značení sítě [11]

59

Page 60: VÝPOČTY V SYSTÉMU MGRS - cvut.czgama.fsv.cvut.cz/~cepek/proj/bp/2007/adela-kratochvilova... · 2011-05-07 · souřadnic mezi elipsoidem WGS 84 (φ, λ) a zobrazení UTM (N, E)

60


Recommended