[[TranslatedPages(revision=3,outdated=This page is partly incomplete and outdated. See EPSG:4326 and the proj4 plugin exists !)]] [[PageOutline(1-10,Inhoud)]] = Het begrijpen van coördinaten in JOSM = == Coördinaten van OpenStreetMap == OpenStreetMap gebruikt coördinaten met Latitude/Longitude in de [https://en.wikipedia.org/wiki/World_Geodetic_System WGS84] [https://en.wikipedia.org/wiki/Geodetic_datum geodetische datum] (wat compatibel is met GPS) voor zijn [osmwiki:Data_Primitives#Node knopen], opgeslagen in de notatie voor decimale graden met 7 decimale plaatsen in de [osmwiki:.osm .osm] XML-bestanden. Dezelfde plaats op de wereld zou enigszins verschillende waarden voor Latitude/Longitude hebben in andere coördinatensystemen, afhankelijk van de respectievelijke [https://en.wikipedia.org/wiki/Reference_ellipsoid 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 [https://en.wikipedia.org/wiki/Cartesian_coordinates Cartesiaans] coördinatensysteem, d.i. loodrechte assen hebben om knopen en wegen op een rechthoekig, plat computerscherm te renderen. JOSM gebruikt de [http://java.sun.com/docs/books/tutorial/2d/overview/index.htm Java 2D graphics API] om het proces van renderen af te handelen. De API van Java implementeert het concept van een [http://java.sun.com/docs/books/tutorial/2d/overview/coordinate.html 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 [source:/trunk/src/org/openstreetmap/josm/data/coor/Coordinate.java Coordinate]. ==== LatLon ==== De klasse [source:/trunk/src/org/openstreetmap/josm/data/coor/LatLon.java LatLon] erft van [source:/trunk/src/org/openstreetmap/josm/data/coor/Coordinate.java 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 [source:/trunk/src/org/openstreetmap/josm/data/coor/EastNorth.java EastNorth] erft van [source:/trunk/src/org/openstreetmap/josm/data/coor/Coordinate.java 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 [https://en.wikipedia.org/wiki/Map_projection 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 [source:/trunk/src/org/openstreetmap/josm/data/projection 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 [source:/trunk/src/org/openstreetmap/josm/data/projection/Projection.java 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 [https://en.wikipedia.org/wiki/Mercator_projection 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 ==== [https://en.wikipedia.org/wiki/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 [https://en.wikipedia.org/wiki/Transverse_Mercator_projection Transverse Mercator]-projectie is een aanpassing van de Mercator-projectie, waarbij de cilinder 90° wordt gedraaid. Het [https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system 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 [https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system#Locating_a_position_using_UTM_coordinates 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.