Végre koordináta konverzió könnyen

az átalakulás különböző koordinátarendszerek kézikönyv

Alkalmazások, amelyek a kapcsolódó szolgáltatások a helymeghatározás, most a gerincén népszerűsége, de a számítógép meg tudja határozni a helyét egy pont a világban? Számos módja van, hogy válaszoljon erre a kérdésre, de mindannyian vonni az egyik használata számos létező földrajzi koordináta-rendszer. Ebben a cikkben, a rendszer építész Salkosuo (számi Salkosuo) kínál Java ™ -code amely átalakítja koordinátáit két kedvelt rendszer: a jól ismert rendszer a hosszúsági és szélességi és Általános Mercator (UTM).

Salkosuo magukat. Software Architect, IBM

Amikor egy szervezet úgy dönt, hogy végre egy olyan alkalmazás, amely egy földrajzi koordináta-rendszer, általában írásban ilyen kérelem válik a feladat a fejlesztő. Épület alkalmazások földrajzi koordináták, magában foglalja a sok kis és nagy problémák, és az egyik ilyen probléma viszonylag egyszerű átalakítani koordinátákat egyik rendszerből a másikba. Ez a cikk kódot tartalmaz, amely elvégzi a konverziót és mentheti sok órányi munka.

Két különböző koordináta rendszer

Mielőtt búvárkodás a kódot mutatja be ezt a cikket, akkor meg kell beszélniük a koordináta-rendszer támogatására, hogy ez a kód: egy jól ismert rendszer szélességi és hosszúsági és az UTM (Általános Mercator - UTM). Azt is meg kell érinteni a katonai koordinátarendszerben (katonai Rácsjelölés System - MGRS), amelynek alapja az UTM.

A szélességi és hosszúsági

A rendszer szélességi és hosszúsági, talán a legismertebb meghatározásának módszere földrajzi koordinátákat. Ez hely képviseli két szám. Latitude - az a szög, a központtól a föld néhány párhuzamos a föld felszínét. Hosszúság - az a szög, a központtól a föld egy bizonyos meridián a föld felszínét. Szélességi és hosszúsági lehet tized fokokban kifejezve (DD) vagy fok, perc és másodperc (DMS); az utóbbi esetben a számok ebben a formátumban - 49 ° 30'00 „S 12 ° 30'00” E. Ez a formátum általánosan használják a GPS-navigátor.

Föld van osztva egyenlítő (0 ° szélességi) az északi és a déli féltekén, és a nulla meridián (0 ° hosszúsági fok), a képzeletbeli vonal az északi a déli pólus, amely prohoditcherez Greenwich város az Egyesült Királyságban és a bolygó osztja a keleti és a nyugati féltekén. A tartomány a szélességi az északi féltekén a 0 és 90 fok, és a déli féltekén - 0 és -90 fok. Tartomány keleti féltekén 0-180 fok, és nyugati féltekén 0 -180 fok.

Például, az a pont koordinátáival 61,44, 25,40 (DD formátumban), vagy 61 ° 26'24''N, 25 ° 23'60''E (DMS formátum) van a Finnország déli. Egy pont koordinátái -47,04, -73,48 (DD), vagy 47 ° 02'24 '' S, 73 ° 28'48''W (DMS) van a dél-Chile. Az 1. ábra mutatja a Föld képét átfedő vonalak párhuzamok és meridiánok:

1. ábra: Land látható vonalak szélességi és hosszúsági

Végre koordináta konverzió könnyen

További információk találhatók a Resources.

Mercator

UTM koordináta-rendszer - ez a módszer, amely egy rács, hogy meghatározzák a koordinátákat. UTM rendszer felosztja a földet a 60 zónák, amelyek mindegyike alapuló Mercator vetület. A vetületi térképészet - oly módon, hogy vezessenek be egy kétdimenziós síkon egyenetlen felületre, mint egy hagyományos kártya. A 2. ábrán egy keresztirányú Mercator vetítés:

2. ábra Mercator vetület

Végre koordináta konverzió könnyen

hosszúság UTM zónák vannak számozva 1-60; minden, de két zónát, amelyet a későbbiekben ismertetünk, szélessége 6 ° kelet-nyugati irányban. hosszúsági zóna teljesen fedezi a Föld felszínén közötti szélességi 80 és 84 ° S ° N.

Van is egy szélessége 20 zónák mindegyik 8 ° magasságú; ezek a zónák vannak számozva a C-X, a betűk I és O elhagyható. Zónák A, B, Y és Z jelentése a rendszeren kívül, hogy fedezze a sarki és antarktiszi. A 3. ábra a UTM sávot Európa számára. Ez a szám azt mutatja, két rendhagyó hosszúság terület: 32V zóna is kiterjed, az egész Dél-Norvégia, valamint a zóna 31V csökkent az csak a vízfelület.

3. ábra UTM zónák Európában

Végre koordináta konverzió könnyen

Az UTM-koordináták kerülnek bemutatásra ebben a formában hosszúság terület szélességi zóna Keleti tájolás Északi tájolás. ahol Keleti tájolás - a vetítési távolság a központi meridián terület hosszúság, északi elhajlás - a vetítési távolság az Egyenlítő felé. Az értékek a keleti és északi declinations méterben vannak megadva. Például, a szélesség / hosszúság koordináták 61,44, 25,40 UTM képviseletében a 35 V 414.668 6.812.844; szélesség / hosszúság -47,04, -73,48 megfelelnek az koordináták 4.789.269 18 615.471 G UTM.

A források további információkat az UTM és Mercator.

Katonai koordinátarendszer

MGRS koordinátarendszerben - a szabvány által használt NATO-csapatok. MGRS és UTM alapján további szakadék mindegyik zónát négyzetének 100x100 km. A négyzetek azonosítja kétbetűs kódot, az első levél - a kelet-nyugati hosszúság helyzetben zónában, a második levél - az észak-déli pozícióját.

Például, az UTM koordináta 35 V 414.668 6.812.844 egyenértékű koordináta MGRS 35VMJ1466812844. A pontosság a koordinátákat MGRS adott pontossággal egy méter, és képviseli egy szimbólum 15, 10, ahol az utolsó szimbólum értékeket képviseli a keleti és északi elhajlás az említett rács. A MGRS koordináták is képviseli 15 szimbólumok, mint az előző példában, vagy egy 13, 11, 9 vagy 7 szimbólumok; így bemutatott értékek rendre pontossága 1, 10, 100, 1000, vagy a 10000 méter.

Ez a cikk nem érti részletesen MGRS, de a letöltött kód tartalmaz közötti átváltási szélesség / hosszúság és MGRS. A további információkat lásd a forrásokat.

koordináta transzformáció

Tizedes fok fok / perc / másodperc, és vissza

Rendkívül egyszerű átalakítani koordinátákat NN formátumban DMS. A képlet A konverziós:

Ebben a példában, GG - a tört része a számítás. Kizáró hely azt jelenti, szélesség, a déli féltekén (S), és egy negatív hosszúság - a nyugati féltekén (W). Tegyük fel például, hogy van a koordináták formátuma DD - 61,44, 25,40. Lehet átalakítani a következők:

Így DMS formátumban van a következő koordinátákat - 61 ° 26'24''N 25 ° 24'00''E.

A képlet az átmenetet a DMS a DD:

Emlékezzünk vissza, hogy a hely a déli féltekén (S), negatív szélesség, és helyek a nyugati féltekén (W) negatív hosszúság.

Most végre koordináta transzformáció DMS 47 ° 02'24 '' S, 73 ° 28'48''W DD formátumban:

Ezek a koordináták a DD vannak -47,04, -73,48.

Átalakítás szélesség / hosszúság UTM és vissza

Formula átalakítására UTM itt nem közöljük, de a forráskód a következő fejezetben kiemeli ezt a problémát egy kicsit, de a források részben kapcsolatot biztosít a további információkat.

Koordináta transzformáció Java kódban

Ez a rész a forráskódot osztály könyvtár, amely végrehajtja koordináta közötti átváltási tizedes fok és az UTM. Ez az osztály az úgynevezett Java-com.ibm.util.CoordinateConversion és azt akarta, hogy hozzon létre egy külön osztályt módszerekkel lehet átalakítani. Ebbe az osztályba tartozik belső osztályok, amelyek valóban az átalakításhoz, és ha szükséges, ezeket az osztályokat lehet kivenni CoordinateConversion osztály átdolgozással, hogy hozzon létre egy könyvtárat csomagot vagy add osztályok meglévő csomagot. Conversion végzett ebbe az osztályba pontossága 1 méter.

A forráskód CoordinateConversion körülbelül 750 sort, úgy, hogy ebben a cikkben, hogy nem teljesen képviseli. Jelentős módszereket ismertetnek a következő részekben, és a teljes kód alatt érhetők el letöltések.

osztály CoordinateConversion

CoordinateConversion - a fő osztály tárgyak, amelyek akkor keletkeznek, amikor el kell végezni a koordináta transzformáció. Az 1. listában látható jelentős állami módszerekkel együtt belső magánórákat szerepel az osztály CoordinateConversion:

1. listán CoordinateConversion

A következő szakasz részletezi az átalakítást az hosszúsági / szélességi és UTM.

Konvertálása szélesség / hosszúság UTM

A koordináták alakítjuk szélesség / hosszúság módszerrel UTM karakterlánc latLon2UTM (dupla szélesség, dupla hosszúság). A végrehajtását ez a módszer létrehoz egy példányt a belső osztály LatLon2UTM c = new LatLon2UTM (); UTM koordináták, és visszaad egy 15-karakterlánc pontossággal 1 méter. Megvalósítás LatLon2UTM osztály módszerek látható a 2. lista:

2. lista public String convertLatLonToUTM (dupla szélesség, dupla hosszúság)

Ez eljárás végrehajtja az átalakulás, ami a különböző eljárások a szélességi és hosszúsági területen, kiszámítjuk a keleti és északi elhajlás stb A bemeneti adatok ellenőrzése, hogy érvényesítse () módszer. ha a kifejezés (szélesség <-90.0 || latitude> 90,0 || hosszúság <-180.0 || longitude>= 180,0) beállítása igaz, akkor a visszaállítás kivétel IllegalArgumentException.

Listing 3. védett void setVariables (dupla szélesség, dupla hosszúság)

getLongZone () módszerrel a 4. példában és a LatZones osztályban. rendelkezésre a forráskódot. azonosítására használt terület hosszúsági és szélességi övezetben. hosszúság terület által számított hosszúság paraméter. és szélességi a területet általában bemutatott állandók, használva egy tömböt LatZones osztályban.

Listing 4 védett string getLongZone (dupla hosszúság)

getNorthing () módszer 5. példa és getEasting () módszer a 6. példában, számított értékek északi és keleti elhajlás. Mindkét módszer használja a változók meghatározott módszer setVariables () 3. ábra.

5. lista védett kettős getNorthing (kettős szélesség)
Felsorolása 6. védett kettős getEasting ()

7. kódrészlet néhány példát a munka eredményeit program, többek között a koordinátákat a következő formátumban szélesség / hosszúság és a megfelelő UTM koordinátái:

Listing 7. Test konverzió szélesség / hosszúság értékek az UTM

Konvertálása UTM szélességi / hosszúsági

Az átalakulás a koordinátákat UTM formátumban szélességi / hosszúsági végezzük valamivel könnyebb, mint a fordított folyamat. A cikk „A Universal hálók” a Resources) mutatja az átalakulás képleteket. Felsorolása 8 kód módszert convertUTMToLatLong () látható. Ez a módszer adja vissza egy tömbben kettős értékek, ahol az első elem (index array [0]), - a szélesség, a második elemet (index array [1]) - ezt a hosszúsági. Mivel a szövegek paraméter tartalmaz UTM koordináták 1 méteres, és koordináták szélesség / hosszúság ugyanaz lesz a pontosság.

Listing 8. nyilvános dupla [] convertUTMToLatLong (String UTM)

convertUTMToLatLong () eljárás megosztja UTM koordináták a bemeneti karakterlánc paramétert, amelyek a méret 34 g 683 473 és 4942631. használ getHemisphere () módszer meghatározására a félgömb, ahol a nyílásba a megadott koordinátákat. Adjuk félgömb: a szélességi A. C. D. E. F. G. H. J. K. L és M jelentése a déli féltekén, és a fennmaradó zónák találhatók az északi féltekén.

setVariables () módszer. listán látható 9 készletek változók számításához szükséges, majd azonnal számított szélességi. Hosszúság kiszámított hosszúság zónában.

Listing 9. védett void setVariables ()

setVariables () metódus az értékek a keleti és északi deklináció beállításához szükséges változókat. Ezek a változók egyaránt tartozhatnak osztályok vannak beállítva a módszer és convertUTMToLatLong (karakterlánc UTM) a 8. ábra.

más módszerek

Source Code is tartalmaz más állami és magán módszerek és osztályok. Például, vannak olyan módszerek és osztályok koordináta konverziós közötti szélesség / hosszúság és MGRS helper módszerek végrehajtása konverziós fokkal radiánban és fordítva, és a különböző matematikai műveletek, mint a POW, SIN, COS, és TAN.

következtetés

Ez a cikk néhány elmélet a világ koordináta-rendszer a Java-osztály az átalakításhoz a koordinátákat az egyik rendszerből a másikba. Bár nem minden a képlet lehet átalakítani koordinátákat térünk ki részletesen, rendelkezésre állnak a források. Általában az elméleti információ nem szükséges a napi fejlesztési folyamat, ritka kivételektől eltekintve, amikor nincs más út, Nemrég volt győződve arról, hogy volt, hogy végre a feladat konvertáló koordinátákat.

Beletelt közötti konverzióra szélességi és Lon, UTM és MGRS, úgyhogy végre alapkutatási és végrehajtotta ezeket a változtatásokat a Java-osztály. Számomra a fejlesztés néhány órát vett, és remélem, hogy mások is tudják menteni néhány órával egyéb feladatokat, és hasznosnak találják használni CoordinateConversion osztály munkáját.

Kapcsolódó cikkek