Converteer geografische coördinaten online naar rechthoekige coördinaten. Punten op een kaart tekenen op gegeven rechthoekige coördinaten. Wat zijn rechthoekige coördinaten

29.09.2014

De ontvanger is een VLF-detectorontvanger en is ontworpen om een ​​lokaal zendstation te ontvangen. alle transistors met coëfficiënt winst van minimaal 20...30. L1 is een lijnbereikbediening van een oude tv. Literatuur 500 schema's voor radioamateurs\

  • 05.10.2014

    Bijna elke beginnende radioamateur streeft er in het begin van zijn creativiteit naar om een ​​netwerkvoeding (PSU) te ontwerpen om deze vervolgens te gebruiken om verschillende experimentele apparaten van stroom te voorzien. En natuurlijk zou ik graag willen dat deze voeding ‘vertelt’ over het gevaar van uitval van afzonderlijke componenten als gevolg van installatiefouten of storingen. Tegenwoordig zijn er veel regelingen, waaronder...

  • 29.09.2014

    De ontvanger is ontworpen om het MF DV-bereik te ontvangen. Stroombron - 3 elementen van elk 1,5 V, het stroomverbruik bedraagt ​​niet meer dan 3 mA. Het magnetische antennecircuit bestaat uit L1 L2 C1. bij ontvangst van DV zijn de spoelen in serie geschakeld en bij ontvangst van CB is L1 gesloten. Het signaal wordt verwijderd van spoel L3 en naar de RF-versterker gestuurd...

  • 08.10.2014

    De afbeelding toont een circuit van een eenvoudige hoofdtelefoonversterker (hoofdtelefoon) op 2 transistors met de volgende kenmerken: Uitgangsvermogen 0,1 W Harmonische coëfficiënt 0,07% Frequentiebereik 20...20000 Hz Voedingsspanning 15 V Stroomverbruik 120 mA De schakeling is een tweetrapsversterker met een uitgangstransistor die in lineaire modus A werkt met een ruststroom van ongeveer 120 ...

  • 13.11.2014

    Klasse AB-versterker op basis van TDA7375 is bedoeld voor gebruik als autoversterkers. De microschakeling heeft bescherming tegen ompoling, bescherming tegen statische elektriciteit, tegen kortsluiting van uitgangen naar de voedingsbus, naar de behuizing en naar elkaar. Een versterker gebaseerd op de TDA7375 kan door simpelweg jumpers tussen de ingangen te plaatsen in MONO-modus worden geschakeld, ook in ...

  • Niet iedereen begrijpt hoe, en vooral, waarom de conversie van bekende geografische coördinaten naar rechthoekige coördinaten plaatsvindt. Dit wordt veroorzaakt door het probleem dat het bolvormige oppervlak van onze planeet moet worden overgebracht naar het kaartvlak, waardoor vervormingen onvermijdelijk zijn.

    Het is veel handiger om de positie van een punt te zoeken wanneer voor een vlak beeld een systeem van rechthoekige (rechtlijnige) coördinaten wordt gebruikt. Dit type berekening wordt ook wel de Gauss-Kruger-projectie genoemd, omdat het deze twee Duitse wetenschappers waren die deze ontwikkelden om het gebogen aardoppervlak correct op een kaart weer te geven. In ons land is het nog steeds het meest toepasbaar voor militaire cartografie, geodesie en technisch ontwerp. Het gebruik van een soortgelijk UTM-coördinatensysteem is populair onder westerse landen.

    Algoritmen voor het omzetten van geografische coördinaten naar rechthoekige coördinaten

    Om geografische coördinaten snel om te zetten in rechtlijnige coördinaten en omgekeerd, worden speciale algoritmen gebruikt, die de basis zijn geworden van automatische programma's voor een dergelijke dienst. Er zijn ook online converters ontwikkeld die zowel Gauss-Kruger- als UTM-coördinaten herberekenen, wanneer de mate van locatie van een object, zelfs de minuten en seconden, worden omgezet in exacte meters - en omgekeerd, wanneer meters worden omgezet in graden.

    De breedte- en lengtegraadparameters waarop ons object zich bevindt, worden in het programma of de converter ingevoerd en de uitvoer heeft de volgende waarden: X(horizontale parameter) en j(verticale parameter). De omgekeerde vertaling gebeurt op dezelfde manier.

    De conversieformule (sleutel) houdt rekening met:

    • nummering van de zone volgens Gauss-Kruger (van de beschikbare 60);
    • schaalfactor (voor Gauss-Kruger is dit één, voor UTM is dit 0,9996);
    • trigonometrische functies;
    • initiële parallel;
    • axiale meridiaan;
    • grote en kleine halve assen;
    • voorwaardelijke verplaatsingen die inherent zijn aan de initiële parallel in het noorden, evenals aan de centrale meridiaan in het oosten;
    • de hoeveelheid vlakheid;
    • excentriciteit.

    GLONASS en GPS-satellietnavigatie zorgen voor een constante tracking van coördinaten van elk gewenst formaat. Je kunt de waarden zo instellen dat breedte- en lengtegraad worden weergegeven, en tegelijkertijd meters of kilometers worden weergegeven.

    Trouwens! Lange tijd heeft de USSR vertaalsleutels geclassificeerd - ze werden op speciaal verzoek door het leger uitgegeven voor geodesie.

    Wat zijn rechthoekige coördinaten

    De basis voor de projectie van een ellips op een vlak - hetzij volgens Gauss-Kruger, hetzij volgens het UTM-systeem - is het principe van Descartes' rechtlijnige calculus.

    • Voorbij de horizontale as X de abscis (parallel) die naar het oosten gaat, wordt als verticaal genomen Y- ordinaat (meridiaan) die naar het noorden gaat, voorbij de oorsprong O- hun kruispunt.
    • Een punt dat op het kaartvlak is gemarkeerd, wordt gemeten aan de hand van de verticale afstand tot de aslijn X(Dit is de waarde j), plus horizontaal ten opzichte van de aslijn Y(Dit is de waarde X).
    • Het vlak wordt door de assen in 4 delen verdeeld - de zogenaamde kwadranten, tegen de klok in genummerd (I, II, III, IV): I kwadrant rechtsboven (noordoost), II linksboven (noordwest), III linksonder (zuidwest) ). west), IV rechtsonder (zuidoost).

    De waarden hebben zowel een plus- als een minwaarde, die afhankelijk is van de positie ten opzichte van het kwadrant:

    • Kwadrant I heeft beide positieve waarden ( X, j);
    • Kwadrant II specificeert gemengde waarden (- X, j);
    • Kwadrant III heeft beide negatieve waarden (- X,-j);
    • Het IV-kwadrant heeft ook gemengde waarden ( X,-j).

    Verder hebben de systemen aanzienlijke verschillen.

    Voor de Gauss-Kruger-projectie is het op de kaart weergegeven gebied verdeeld in 60 zones, waarbij de afstand tussen de meridianen gelijk is aan 6º. Het aftellen gaat van Greenwich naar het oosten en naar de evenaar in het noorden. De eenheid wordt als schaalfactor genomen. Het startpunt is het snijpunt van de geselecteerde meridiaan met de evenaar.

    Het door de Amerikanen ontwikkelde UTM-systeem wordt gekenmerkt door soortgelijke indelingen in 60 zones, maar de berekende meridiaan is anders: de eerste zone begint op nummer vanaf de meridiaan van 177º westerlengte. De verschillen hebben ook betrekking op de schaalfactor: deze is gelijk aan 0,9996. Er zijn geen negatieve waarden in het UTM-systeem - hiervoor wordt 500 kilometer toegevoegd aan de westelijke abscis en 10.000 kilometer aan de zuidelijke ordinaat.

    Waar worden rechthoekige systemen gebruikt?

    Rechthoekige systemen zijn relevant voor kleinschalige kaarten, voor coördinatie tussen reddingswerkers en het leger, voor het gebied van militaire en geodetische cartografie, bij het ontwerpen van objecten op het grondgebied, technische werkzaamheden en het opstellen van schematische ontwerpen.

    Maar de belangrijkste toepassing is geodesie, leger en marine. Het waren de strijdkrachten van de meeste staten die overschakelden op rechthoekige coördinaten en daarmee militaire doelen markeerden.

    Een tutorial over het converteren tussen verschillende coördinatensystemen

    Positioneringsdiensten, waaronder op GPS gebaseerde navigatie- en kaartsites zoals Google Maps en Yahoo! Kaarten worden populair onder gebruikers. Veel organisaties maken al gebruik van locatiegebaseerde diensten, en nog veel meer zullen dit pad volgen zodra ze zich de voordelen en het potentieel van dergelijke toepassingen realiseren. In 2006 merkte analistenbureau Gartner op dat "positioneringsgerelateerde applicaties de komende twee tot vijf jaar mainstream zullen worden" en dat "een aanzienlijk aantal organisaties al mobiele bedrijfsapplicaties heeft geïmplementeerd die gebruik maken van positionering." (De sectie bevat een link naar dit rapport.)

    Wanneer een organisatie besluit een applicatie te implementeren die gebruikmaakt van een geografisch coördinatensysteem, wordt het schrijven van de applicatie doorgaans de taak van de ontwikkelaar. Het bouwen van een applicatie die geografische coördinaten gebruikt, omvat veel taken, groot en klein, en een van die relatief eenvoudige taken is het omzetten van coördinaten van het ene systeem naar het andere. Dit artikel bevat code die deze conversie uitvoert en u vele uren werk kan besparen.

    Twee verschillende coördinatensystemen

    Voordat we ingaan op de code die in dit artikel wordt gepresenteerd, is het noodzakelijk om de coördinatensystemen te bespreken die deze code moet ondersteunen: het bekende lengte- en breedtegraadsysteem en de Universal Transverse Mercator (UTM). Je moet ook het Military Grid Reference System (MGRS) aanraken, dat is gebaseerd op UTM.

    Breedte- en lengtegraad

    Breedtegraad- en lengtegraadsystemen zijn waarschijnlijk de bekendste manier om geografische coördinaten te definiëren. Daarin wordt de locatie weergegeven door twee cijfers. Breedte- dit is de hoek vanaf het middelpunt van de aarde tot een parallel op het aardoppervlak. Lengte- dit is de hoek vanuit het middelpunt van de aarde naar een bepaalde meridiaan op het aardoppervlak. Breedte- en lengtegraad kunnen worden uitgedrukt in decimale graden (DD) of graden, minuten en seconden (DMS); in het laatste geval worden getallen in dit formaat verkregen - 49°30"00" S 12°30"00" E. Dit formaat wordt meestal gebruikt in GPS-navigators.

    De aarde wordt door de evenaar (0° breedtegraad) verdeeld in een noordelijk en zuidelijk halfrond, en de nulmeridiaan (0° lengtegraad), een denkbeeldige lijn van de noord- naar de zuidpool die door de stad Greenwich in Groot-Brittannië loopt en deze verdeelt de planeet naar het oostelijk en westelijk halfrond. Het breedtegraadbereik op het noordelijk halfrond is van 0 tot 90 graden, en op het zuidelijk halfrond - van 0 tot -90 graden. Het bereik van het oostelijk halfrond is van 0 tot 180 graden, en het westelijk halfrond van 0 tot -180 graden.

    Een punt met de coördinaten 61.44, 25.40 (in DD-formaat) of 61°26"24""N, 25°23"60""E (in DMS-formaat) bevindt zich bijvoorbeeld in Zuid-Finland. En het punt met de coördinaten -47.04, -73.48 (DD) of 47°02"24""S, 73°28"48""W (DMS) ligt in het zuiden van Chili. Figuur 1 toont een afbeelding van de aarde met overlappende lijnen van parallellen en meridianen:


    Meer informatie vindt u in de sectie.

    Transversale Mercator-projectie

    Het UTM-coördinatensysteem is een methode die een raster gebruikt om coördinaten te definiëren. Het UTM-systeem verdeelt de aarde in 60 zones, elk gebaseerd op de Transverse Mercator-projectie. Kaartprojectie in de cartografie is een manier om een ​​tweedimensionaal oneffen oppervlak in een vlak weer te geven, zoals een gewone kaart. De transversale Mercatorprojectie wordt weergegeven:


    Lengtegraadzones in UTM zijn genummerd van 1 tot 60; alle zones behalve twee, die later zullen worden besproken, hebben een breedte van 6° van oost naar west. Lengtegraadzones bedekken het aardoppervlak volledig tussen breedtegraden 80°ZB en 84°N.

    Er zijn ook twintig breedtegraadzones, elk 8° hoog; deze zones zijn genummerd C tot en met X, waarbij de letters I en O zijn weggelaten. Zones A, B, Y en Z liggen buiten dit systeem en bestrijken het Noordpoolgebied en Antarctica. UTM-zones voor Europa worden weergegeven. Deze figuur toont twee niet-standaard lengtegraadzones: zone 32V wordt uitgebreid om heel Zuid-Noorwegen te bestrijken, en zone 31V wordt ingekort om alleen water te bestrijken.

    Coördinaten in UTM worden weergegeven in het formaat lengtegraadzone breedtegraadzone oostelijke declinatie noordelijke declinatie, Waar oostelijke declinatie is de geprojecteerde afstand vanaf de centrale meridiaan van de lengtegraadzone, noordelijke declinatie is de projectieafstand vanaf de evenaar. De waarden van de oostelijke en noordelijke declinatie worden aangegeven in meters. De lengte-/breedtegraadcoördinaten 61.44, 25.40 in UTM worden bijvoorbeeld weergegeven als 35 V 414668 6812844; lengte-/breedtegraadcoördinaten -47.04, -73.48 komen overeen met coördinaten 18 G 615471 4789269 in UTM.

    CoördinaatConversie-klasse

    CoördinaatConversie is de hoofdklasse waarvan de objecten worden gemaakt wanneer een coördinatenconversie moet worden uitgevoerd. Lijst 1 toont de essentiële publieke methoden samen met de innerlijke privéklassen waaruit de klasse CoördinaatConversie bestaat:

    Lijst 1. Coördinatieconversie
    public class CoördinaatConversie ( public CoördinaatConversie() ( ) public double utm2LatLon(String UTM) ( UTM2LatLon c = new UTM2LatLon(); return c.convertUTMToLatLong(UTM); ) public String latLon2UTM(dubbele breedtegraad, dubbele lengtegraad) ( LatLon2UTM c = nieuw LatLon2UTM(); return c.convertLatLonToUTM(breedtegraad, lengtegraad) //..implementatie heeft privéklasse LatLon2UTM overgeslagen ( public String convertLatLonToUTM(dubbele breedtegraad, dubbele lengtegraad) ( //..implementatie overgeslagen) //..implementatie overgeslagen) privéklasse LatLon2MGRUTM breidt LatLon2UTM uit ( public String convertLatLonToMGRUTM(dubbele breedtegraad, dubbele lengtegraad) ( //..implementatie overgeslagen ) //..implementatie overgeslagen ) privéklasse MGRUTM2LatLon breidt UTM2LatLon uit ( public double convertMGRUTMToLatLong(String mgrutm) ( //..implementatie overgeslagen ) //..implementatie overgeslagen ) privéklasse UTM2LatLon ( public double convertUTMToLatLong(String UTM) ( //..implementatie overgeslagen ) //..implementatie overgeslagen ) privéklasse Digraphs ( //gebruikt om tweeletterige codes te verkrijgen // bij het converteren van lengtegraad/breedtegraad naar MGRS //..implementatie weggelaten) private class LatZones ( //bevat methoden voor het definiëren van breedtegraadzones //..implementatie weggelaten)

    In het volgende gedeelte worden de conversies tussen lengte-/breedtegraad en UTM gedetailleerd besproken.

    Converteer van lengte-/breedtegraad naar UTM

    Coördinaten worden geconverteerd van breedtegraad/lengtegraad naar UTM met behulp van de String latLon2UTM-methode (dubbele breedtegraad, dubbele lengtegraad). De implementatie van deze methode creëert een instantie van de interne klasse LatLon2UTM c = new LatLon2UTM(); en retourneert UTM-coördinaten als een reeks van 15 tekens met een nauwkeurigheid van 1 meter. De implementatie van de LatLon2UTM-klassemethoden wordt getoond in Lijst 2:

    Lijst 2. public String convertLatLonToUTM(dubbele breedtegraad, dubbele lengtegraad)
    public String convertLatLonToUTM(dubbele breedtegraad, dubbele lengtegraad) ( validate(breedtegraad, lengtegraad); String UTM = ""; setVariables(breedtegraad, lengtegraad); String longZone = getLongZone(lengtegraad); LatZones latZones = nieuwe LatZones(); String latZone = latZones.getLatZone(breedtegraad); dubbele _easting = getEasting(); dubbele _northing = getNorthing(breedtegraad); ; retour UTM;

    Deze methode voert de conversie uit door verschillende methoden aan te roepen om de breedtegraad- en lengtegraadzone te verkrijgen, de oostelijke en noordelijke declinatie te berekenen, enz. De invoer wordt gecontroleerd in de methode validate() als de expressie (latitude< -90.0 || latitude >90,0 || lengte< -180.0 || longitude >= 180.0) resulteert in true, waarna de uitzondering IllegalArgumentException wordt gegenereerd.

    De methode setVariables() in Listing 3 stelt de verschillende variabelen in die nodig zijn om de transformaties te berekenen (zie voor meer informatie het artikel "The Universal Grids", gelinkt in de sectie:

    Lijst 3. beschermde ongeldige setvariabelen (dubbele breedtegraad, dubbele lengtegraad)
    protected void setVariables(dubbele breedtegraad, dubbele lengtegraad) ( breedtegraad = graadToRadian(breedtegraad); rho = equatoriale Straal * (1 - e * e) / POW(1 - POW(e * SIN(breedtegraad), 2), 3 / 2.0) ; nu = equatoriale straal / POW(1 - POW(e * SIN(breedtegraad), 2), (1 / 2,0));< 0.0) { var1 = ((int) ((180 + longitude) / 6.0)) + 1; } else { var1 = ((int) (longitude / 6)) + 31; } double var2 = (6 * var1) - 183; double var3 = longitude - var2; p = var3 * 3600 / 10000; S = A0 * latitude - B0 * SIN(2 * latitude) + C0 * SIN(4 * latitude) - D0 * SIN(6 * latitude) + E0 * SIN(8 * latitude); K1 = S * k0; K2 = nu * SIN(latitude) * COS(latitude) * POW(sin1, 2) * k0 * (100000000) / 2; K3 = ((POW(sin1, 4) * nu * SIN(latitude) * Math.pow(COS(latitude), 3)) / 24) * (5 - POW(TAN(latitude), 2) + 9 * e1sq * POW(COS(latitude), 2) + 4 * POW(e1sq, 2) * POW(COS(latitude), 4)) * k0 * (10000000000000000L); K4 = nu * COS(latitude) * sin1 * k0 * 10000; K5 = POW(sin1 * COS(latitude), 3) * (nu / 6) * (1 - POW(TAN(latitude), 2) + e1sq * POW(COS(latitude), 2)) * k0 * 1000000000000L; A6 = (POW(p * sin1, 6) * nu * SIN(latitude) * POW(COS(latitude), 5) / 720) * (61 - 58 * POW(TAN(latitude), 2) + POW(TAN(latitude), 4) + 270 * e1sq * POW(COS(latitude), 2) - 330 * e1sq * POW(SIN(latitude), 2)) * k0 * (1E+24); }

    De methode getLongZone() in Listing 4 en de klasse LatZones die beschikbaar is in worden gebruikt om de lengte- en breedtegraadzone te achterhalen. De lengtegraadzone wordt berekend op basis van de lengtegraadparameter, en breedtegraadzones worden gewoonlijk weergegeven als constanten, met behulp van een array in de klasse LatZones.

    Lijst 4. beschermde string getLongZone (dubbele lengtegraad)
    protected String getLongZone(dubbele lengtegraad) ( double longZone = 0; if (lengtegraad< 0.0) { longZone = ((180.0 + longitude) / 6) + 1; } else { longZone = (longitude / 6) + 31; } String val = String.valueOf((int) longZone); if (val.length() == 1) { val = "0" + val; } return val; }

    De methode getNorthing() in Listing 5 en de methode getEasting() in Listing 6 berekenen de waarden voor de declinatie in noordelijke en oostelijke richting. Beide methoden gebruiken de variabelen die zijn ingesteld in de methode setVariables() van .

    Lijst 5. beschermd dubbel getNorthing (dubbele breedtegraad)
    beschermd dubbel getNorthing(dubbele breedtegraad) ( dubbel noord = K1 + K2 * p * p + K3 * POW(p, 4); if (breedtegraad< 0.0) { northing = 10000000 + northing; } return northing; }
    Lijst 6. beschermd dubbel getEasting()
    beschermd dubbel getEasting() ( return 500000 + (K4 * p + K5 * POW(p, 3)); )

    Lijst 7 toont verschillende voorbeelden van de uitvoer van het programma, inclusief breedtegraad-/lengtegraadcoördinaten en de bijbehorende UTM-coördinaten:

    Listing 7. Test conversies van breedtegraad/lengtegraad naar UTM-waarden
    (0,0000 0,0000) "31 N 166021 0" (0,1300 -0,2324) "30 N 808084 14385" (-45,6456 23,3545) "34 G 683473 4942631" (-12,7650 -33,8765) "25 L 404859 8588690" (-80,5434 -170,6540) "02 C 506346 1057742" (90,0000 177,0000) "60 Z 500000 9997964" (-90,0000 -177,0000) "01 A 500000 2035" (90,0000 3,0000) "31 Z 500000 9 997964" (23.4578 -135.4545) "08 Q 453580 2594272" ( 77.3450 156.9876) "57 X 450793 8586116" (-89.3454 -48.9306) "22 A 502639 75072"

    Converteren van UTM naar breedtegraad/lengtegraad

    Het converteren van UTM-coördinaten naar breedtegraad/lengtegraad is iets eenvoudiger dan het omgekeerde proces. Het artikel "De universele rasters" in sectie ) biedt transformatieformules. Listing 8 toont de code voor de methode convertUTMToLatLong(). Deze methode retourneert een array met dubbele waarden, waarbij het eerste element (met array index ) de breedtegraad is en het tweede element (met array index ) de lengtegraad. Omdat de stringparameter UTM-coördinaten bevat met een nauwkeurigheid van 1 meter, zullen de lengte- en breedtegraadcoördinaten dezelfde nauwkeurigheid hebben.

    Lijst 8. public double convertUTMToLatLong(String UTM)
    public double convertUTMTToLatLong(String UTM) ( double latlon = ( 0.0, 0.0 ); String utm = UTM.split(" "); zone = Integer.parseInt(utm); String latZone = utm; easting = Double.parseDouble(utm) ; northing = Double.parseDouble(utm); String hemisphere = getHemisphere(latZone); dubbele breedtegraad = 0.0; if (hemisphere.equals("S")) ( northing = 10000000 - northing; ) setVariables() ; (phi1 - fact1 * (fact2 + fact3 + fact4)) / Math.PI; (zone > 0) ( zoneCM = 6 * zone - 183.0; ) else ( zoneCM = 3.0; ) lengtegraad = zoneCM - _a3; .equals("S")) ( breedtegraad = -breedtegraad; ) latlon = breedtegraad retourneert latlon;

    De methode convertUTMToLatLong() splitst de UTM-coördinaten in de invoertekenreeksparameter, die het formaat hebben 34G 683473 4942631 en gebruikt de methode getHemisphere() om het halfrond te bepalen waar de locatie met de opgegeven coördinaten zich bevindt. Het definiëren van een halfrond is eenvoudig: de breedtegraadzones A, C, D, E, F, G, H, J, K, L en M bevinden zich op het zuidelijk halfrond, en de overige zones bevinden zich op het noordelijk halfrond.

    De methode setVariables(), weergegeven in Listing 9, stelt de waarden in van de variabelen die nodig zijn voor de berekening, en vervolgens wordt de breedtegraad onmiddellijk berekend. De lengtegraad wordt berekend met behulp van de lengtegraadzone.

    Lijst 9. beschermde ongeldige setVariables()
    protected void setVariables() ( boog = noord / k0; mu = boog / (a ​​​​* (1 - POW(e, 2) / 4.0 - 3 * POW(e, 4) / 64.0 - 5 * POW(e, 6) / 256,0)); ei = (1 - POW((1 - e * e), (1 / 2,0))) / (1 + POW((1 - e * e), (1 / 2,0))) ; = 3 * ei / 2 - 27 * POW(ei, 3) / 32,0; 1097 * POW(ei, 4) / 512; phi1 = mu + ca * SIN(2 * mu) + cb * SIN(4 * mu) + cc * SIN(6 * mu) + cd * SIN(8 * mu) ; n0 = a / POW((1 - POW((e * SIN(phi1)), 2)), (1 / 2.0)); )), (3 / 2.0)); feit1 = n0 * TAN(phi1) / r0; _a1 = 500000 - n0 * k0); ); Q0 = e1sq * POW(COS(phi1), 2); Q0 - 4 * Q0 * Q0 - 9 * e1sq) * POW(dd0, 4) / 24; + 45 * t0 * t0 - 252 * e1sq - 3 * Q0 * Q0 ) * POW(dd0, 6) / 720; (dd0, 3) / 6,0;

    lof3 = (5 - 2 * Q0 + 28 * t0 - 3 * POW(Q0, 2) + 8 * e1sq + 24 * POW(t0, 2)) * POW(dd0, 5) / 120;

    _a2 = (lof1 - lof2 + lof3) / COS(phi1);

    _a3 = _a2 * 180 / Math.PI; )

    De methode setVariables() gebruikt de waarden easting en northing om de vereiste variabelen in te stellen. Deze variabelen behoren tot beide klassen en worden ingesteld in de methode convertUTMToLatLong(String UTM) van .

    Andere methoden

    Ik moest conversies uitvoeren tussen lengte- en breedtegraad, UTM en MGRS, dus deed ik wat basisonderzoek en implementeerde deze conversies in een Java-klasse. Het kostte me een paar uur om te ontwikkelen, en ik hoop dat anderen ook een paar uur kunnen sparen voor andere taken en het nuttig vinden om de klasse CoördinaatConversie in hun eigen werk te gebruiken.

    Bijvoorbeeld (volgens de standaard Google-servicehelp) is de lengtegraad, in een van de formaten van de dienst maps.google.ru, 41,40338° oosterlengte. In de praktijk zijn in decimale fracties van geodetische graden vijf decimalen voldoende, wat overeenkomt met de maximaal mogelijke werkelijke nauwkeurigheid (tot enkele meters horizontaal) van conventionele satellietnavigatieapparatuur bedoeld voor civiele gebruikers.
    De volgorde van de berekeningen is dan:
    40338 / 100.000 = X / 60
    X = (40338 * 60) / 100.000 ~ 24,2028 (uit de verhouding vinden we de teller van de rechter breuk).
    Hele minuten: 24"

    2028 / 10.000 = X / 60
    X = (2028 * 60) / 10.000 ~ 12,17
    Seconden: 12,17"

    Resultaat: 41,40338° = 41° 24" 12,17" (eenenveertig graden, vierentwintig minuten, twaalf komma zeven seconden).

    De breedtegraad wordt in dezelfde volgorde opnieuw berekend.

    Google ondersteunt verschillende hoekige gegevensformaten.

    Voorbeelden van hoe je het goed kunt doen

    Verkorte formulieren voor het vastleggen van geografische coördinaten (noordbreedte, oostlengte):

    Graden en, gescheiden door een spatie, minuten met hun decimalen:
    41 24.2028, 2 10.4418

    Decimale graden:
    41.40338, 2.17403

    De volledige vorm van het schrijven van een hoek (graden, minuten, seconden met hun decimalen):
    41° 24" 12.1674", 2° 10" 26.508"

    Een vereenvoudigde versie in graadminuten, die Google mogelijk kan herkennen als twee paar getallen (gehele graden en minuten), gescheiden door een komma, in de zoekregel worden getypt:
    41 24, 2 10

    De Googlemap-service beschikt over een online converter waarmee u coördinaten kunt converteren en naar het gewenste formaat kunt converteren.

    Online kaarten van verschillende internetdiensten maken het mogelijk locatiecoördinaten in te stellen en te ontvangen met een nauwkeurigheid van zes decimalen van graden, na de komma, dat wil zeggen tot op een meter. Dit is voldoende om samen te werken met moderne autonavigatiesystemen en ingebouwde mobiele apparaten (smartphones, tablets en andere gadgets), ontvangers van signalen van het satelliet-GLONASS (Rusland), GPS (VS) en Beidou (China). Navigatieapparatuur voor ‘civiele’ gebruikers heeft een enkele meetfout van maximaal enkele meters (in het horizontale vlak op het aardoppervlak). Elektronische digitale gegevens kunnen aanzienlijk variëren. Vectorkaarten hebben aanzienlijke voordelen ten opzichte van rasterformaten: de mogelijkheid om automatisch naar informatie te zoeken (op basis van de naam van een nederzetting, de kenmerken van een geografisch object) en snel bij te werken naar de huidige versie, goede leesbaarheid bij in- en uitzoomen, thematische lagen in lagen aanbrengen , het verkrijgen van een driedimensionaal driedimensionaal beeld, de mogelijkheid om gescande kopieën van papiermateriaal te overlappen, bijvoorbeeld van Sovjet-topografische tablets.

    De belangrijkste vormen van weergave van de waarden van geografische coördinaten met een nauwkeurigheid van enkele meters:
    graden met honderdduizendste (YY.YYYYY°)
    graden, minuten met duizendsten (GG° MM.MMM")
    graden, minuten, seconden met tienden (GG° MM" CC.S")


    Dit aantal decimalen komt overeen met de orde van de hoogst mogelijke nauwkeurigheid van een enkele meting van conventionele GPS-navigators, tijdens hun normale werking, onder aanvaardbare omstandigheden (succesvolle locatie van satellieten in de lucht, goed niveau van satellietsignaal, enz.). Bij herhaalde metingen op een vast puntapparaat zou de positioneringsnauwkeurigheid theoretisch moeten toenemen als gevolg van het verzamelen van statistieken om het wiskundige gemiddelde te bepalen uit een wolk van numerieke waarden. Maar dit heeft niet veel zin als het oorspronkelijke satellietsignaal door software wordt gewijzigd en een kunstmatige fout in de coördinaten bevat, die operators bijvoorbeeld in oorlogstijd vergroten voor gewone consumenten. In dergelijke gevallen treden in de selectieve toegangsmodus voor civiele gebruikers gegevensvervormingen op - het coördinatenraster kan aanzienlijk worden verschoven ten opzichte van de werkelijke positie.

    Bij het opgeven van de coördinaten van het zoekgebied, bijvoorbeeld als een toeristengroep verdwaald raakt op de route, wordt bij zoek- en reddingsoperaties de dienstdoende officier geïnformeerd over de geschatte locatie van de vermiste, in de vorm van cijfers:
    GG° MM" CC" noordelijke breedtegraad, GG° MM" CC" oostelijke lengte

    Als het niet mogelijk is om de coördinaten van de verlorenen te achterhalen, worden de reddingswerkers in dit geval in detail uitgelegd: waar ze moeten kijken, hoe ze daar moeten komen, waar ze het beste doorheen kunnen komen. Geografische oriëntatiepunten worden verzonden naarmate de referentie gedetailleerd is, van groot naar klein, waardoor de straal kleiner wordt en het zoeken wordt versneld.

    Voor een correcte presentatie en correcte berekeningen is het noodzakelijk om nauwkeurig het coördinatensysteem aan te geven dat wordt gebruikt voor mobiele positionering. Gebruikt in de praktijk:
    WGS-84 (wereldwijd, waarop alle GPS-navigators werken),
    "Pulkovo-42" (SK-42, gebruikt op oude militaire kaarten uit de Sovjettijd),
    MSK (elk lokaal coördinatensysteem).

    Hoe coördinaten van het ene getalformaat naar het andere te converteren

    Geografische coördinaten van hetzelfde punt kunnen in verschillende formaten worden uitgedrukt. Afhankelijk van het feit of minuten en seconden worden weergegeven als waarden van 0 tot 60 of van 0 tot 100 (decimalen).

    Het coördinatenformaat wordt meestal als volgt geschreven: DD - graden, MM - minuten, SS - seconden; schrijf dan eenvoudigweg DD.DDDD. Bijvoorbeeld:

    DD MM SS: 50° 40" 45"" E, 40 50" 30"" N. - Graden, minuten, seconden

    DD MM.MM: 50° 40,75" E, 40 50,5" N - Graden, decimale minuten

    DD.DDDDD: 50,67916 E, 40,841666 N - Decimale graden.

    Veel programma's begrijpen geen coördinaten die zijn uitgedrukt in een vorm waarin spaties zijn toegestaan, zoals DD MM SS of DD MM.MM. Voor normaal gebruik wordt aanbevolen om de coördinaten op te slaan in de vorm DD.DDDDD.

    Er zijn veel manieren om deze conversie uit te voeren, laten we de drie belangrijkste bekijken (in volgorde van effectiviteit).

    GPS correct instellen

    Om problemen met de coördinatenvertaling te voorkomen, is de eenvoudigste manier om de GPS onmiddellijk zo te configureren dat deze coördinaatwaarden in het formaat weergeeft DD.DDDDD. Dit kan echter niet handig zijn voor degenen die door het veld navigeren met behulp van topografische kaarten met een coördinatenraster, waarbij de coördinaten in een ander numeriek formaat zijn ondertekend. Aan de andere kant wordt het in dit geval aanbevolen om het coördinatenraster zelf in dit formaat te ondertekenen.

    Gebruik een speciaal script

    Als u in Arcview GIS werkt, kunt u een speciaal script gebruiken dat de herberekening voor u uitvoert.

    Om in Arcview te kunnen werken, moet er een tabel in DBF-formaat worden aangemaakt of geladen (een dergelijke tabel kunt u bijvoorbeeld in Excel maken). MOETEN openstaan ​​voor opname Tabel\Begin met bewerken.

    Deze tabel moet 2 kolommen bevatten (het totale aantal mag meer zijn) waarin coördinaatwaarden in het formaat moeten worden geschreven DDMMSS dat wil zeggen dat er geen spaties tussen de cijfers mogen staan, bijvoorbeeld 505050.3214

    Tijdens de werking zal het script u vragen om de naam op te geven van de kolom waarin de breedtegraadwaarden worden vastgelegd en de kolom waarin de lengtegraadwaarden worden vastgelegd. Vervolgens wordt u gevraagd een naam in te voeren voor de resulterende kolommen. Hierna voert het script de transformatie uit en schrijft de coördinaatwaarden in het formaat in nieuwe kolommen met de namen die u hebt ingevoerd DD.DDDDD.

    Bereken zelf de coördinaatwaarden opnieuw in Excel

    Formule voor het converteren van dd mm ss naar dd.ddddd:

    Formule voor het converteren van dd mm.mmmm naar dd.ddddd:

    Formule voor het converteren van dd.ddddd naar dd mm ss:

    DD = TRUNC(DDD)

    MM = TRUNC((DDDDD) * 60)

    SS = ((DDDDD) * 60 − MM) * 60

    waarbij DDD - coördinaten in DD.DDDD-formaat, DD - graden, MM (MM.MMMM) - minuten, SS - seconden

    Als u te lui bent om formules in te voeren en een tabel te maken, kunt u een kant-en-klaar exemplaar downloaden. Vervolgens hoeft u alleen maar uw coördinaten in te voeren en de kolommen met de resultaten te kopiëren en in een nieuw tabel- of tekstbestand te plakken, dat vervolgens in het GIS kan worden geïmporteerd.

    Om het herberekenen van coördinaten in Excel verder te vergemakkelijken, kunt u gebruik maken van een add-in die verbinding maakt met Excel. Na het verbinden worden er verschillende formules aan Excel toegevoegd waarmee je waarden uit DDMMSS (in verschillende formaten naar decimale graden) kunt converteren. Download de add-on. Beschrijving van het aansluiten en gebruiken van de add-on in het archief.

    • GRD__YY_MMSS - conversie van graden ingevoerd in 1 cel in de vorm GG,MMSS
    • GRD__YYMM_SS - conversie van graden ingevoerd in 1 cel in de vorm JJMM,SS
    • GRD__YY_MM_SS - conversie van graden ingevoerd in 3 cellen in de vorm GG MM SS