This page is partly incomplete and outdated. See EPSG:4326 and the proj4 plugin exists !
Inhoud
Het begrijpen van coördinaten in JOSM
Coördinaten van OpenStreetMap
OpenStreetMap gebruikt coördinaten met Latitude/Longitude in de WGS84 geodetische datum (wat compatibel is met GPS) voor zijn knopen, opgeslagen in de notatie voor decimale graden met 7 decimale plaatsen in de .osm XML-bestanden.
Dezelfde plaats op de wereld zou enigszins verschillende waarden voor Latitude/Longitude hebben in andere coördinatensystemen, afhankelijk van de respectievelijke ellipsoïde voor de verwijzing en de gebruikte referentiepunten.
Bewerker voor coördinaten
Java
De locatie van de knopen moet achteraf in kaart gebracht worden in een Cartesiaans coördinatensysteem, d.i. loodrechte assen hebben om knopen en wegen op een rechthoekig, plat computerscherm te renderen. JOSM gebruikt de Java 2D graphics API om het proces van renderen af te handelen. De API van Java implementeert het concept van een gebruikersruimte die zou kunnen worden begrepen als een groot kaartvenster met een origine van (0,0) in de linker bovenhoek, en virtueel een oneindige uitbreiding naar rechts (x) en naar beneden (y). Java 2D ondersteunt zowel integers als single of double precision float variabelen voor het paar (x,y).
Bij het weergeven van een gebied vanuit dit virtuele kaartvenster in de beperkte ruimte van het apparaat, het schermvenster in dit geval, converteert Java intern deze (x,y)-coördinaten naar schermcoördinaten, automatisch gedurende het renderen.
Hoewel negatieve coördinaten, die links of boven de origine (0,0) uitkomen, zijn in theorie mogelijk, het wordt echter niet aanbevolen om buiten de beschikbare schermruimte te tekenen, omdat niet alle versies van Java betrouwbaar werken als punten buiten het zichtbare gebied staan.
JOSM
JOSM definieert de te gebruiken coördinaten zowel voor weergave in Lat/Lon als ook voor het bewerkingsvenster EastNorth als double float
in de klasse Coordinate.
LatLon
De klasse LatLon erft van Coordinate en verschaft controles voor de legitieme begrenzing die moet liggen binnen -90,90 voor de latitude of -180,180 voor de longitude.
EastNorth
De klasse EastNorth erft van Coordinate.
east()
geeft de X en north()
geeft de Y-coördinaat terug.
Dit betekent dat de numerieke waarde van east() vergroot in de richting van East, terwijl de waarde van north() verkleint in de richting van North.
De klasse verschaft ook enkele methodes voor het manipuleren van de coördinaten.
Projectie
Het achteraf in kaart brengen van coördinaten LatLon in een platte kaart of het platte computerscherm is een projectie. JOSM ondersteunt ene aantal verschillende projecties omdat zij op verschillende manieren worden gebruikt, in het bijzonder de weergave van vormen of het gebruiken van verschillend bronmateriaal dat als is geprojecteerd, zoals afgedrukte kaarten, gegevens van de registratie van land, satellietafbeeldingen, WMS-servers, etc. om over getraceerd te worden. Sommige WMS-servers zouden op verzoek een variëteit aan projecties ondersteunen, anderen zijn beperkt tot één specifieke.
De projecties worden gedefinieerd in klassen in org.openstreetmap.josm.data.projection.
Bij het gebruiken van JOSM kan van de projectie worden gewisseld in het menu Voorkeuren. Huidige versies van JOSM ondersteunen het wisselen zonder opnieuw te hoeven opstarten.
Bij het wisselen van projectie worden dezelfde coördinaten LatLon weergegeven als verschillende numerieke waarden van EastNorth.
De bidirectionele conversie tussen LatLon en EastNorth is de bronberekening van elke implementatie van de klasse Projection. De implementatie dient er voor te zorgen dat het geldige bereik van waarden LatLon in kaart wordt gebracht als een geldig bereik in EastNorth.
Omdat enkele projecties slechts geldig zijn voor bepaalde regio's in de wereld, kan de implementatie ook grenzen definiëren waarbinnen JOSM kan bewerken, d.i. het venster van het apparaat verschuiven binnen de gebruikersruimte.
Enkele wijzen van gebruik voor ondersteunde projecties in JOSM worden hieronder vermeld.
Mercator
De cilindrische Mercator-projectie, vernoemd naar zijn uitvinder, brengt meridianen en parallellen recht en loodrecht in kaart.
In JOSM, verschijnen bijv. kleine ronde objecten, zoals rotondes, als een cirkel, en rechthoekige gebouwen worden als rechthoek gezien.
Nadeel is het uitstrekken van de polen tot oneindig.
Momenteel is Mercator de standaard projectie in JOSM.
De meeste WMS-servers ondersteunen deze projectie niet, maar JOSM geeft gegevens voor EPSG:4326 ook weer voor projectie in Mercator (wat niet geheel juist is, maar de resulterende fouten zijn zeer klein in de huidige versie van de software).
EPSG:4326
EPSG:4326 is een algemeen coördinaten referentiesysteem Lat/Lon dat verwijst naar WGS84.
(bespreking nodig voor gebruik in WMS-servers / Landsat en Yahoo Sat)
UTM
De Transverse Mercator-projectie is een aanpassing van de Mercator-projectie, waarbij de cilinder 90° wordt gedraaid.
Het Universal Transverse Mercator (UTM) met zijn 60 zones, alsook een aantal nationale raster referentiesystemen zijn gebaseerd op deze projectie.
Binnen zones van UTM of de nationale rastersystemen, kan een verwijzing van 2-dimensionale Cartesiaanse coördinaten worden gedefinieerd, gewoonlijk gegeven in Eastings en Northings als een waarde meter vanaf een bepaald punt van origine. Deze Eastings en Northings moeten niet worden verward met de coördinaat EastNorth binnen JOSM.
Land-specifieke projecties
Vele landen specificeren hun eigen referentiesystemen, sommige gebaseerd op Transverse Mercator, andere weer niet.
Over het algemeen kan JOSM elk van deze systemen ondersteunen, zodra de conversie van LatLon naar EastNorth is geïmplementeerd.
Ondersteuning voor de bibliotheek PROJ4 als plug-in, welke een groot aantal transformaties ondersteunt, zit in de planning.