bas_vdl Geplaatst 1 december 2009 Geplaatst 1 december 2009 (bewerkt) Hallo, ik probeer een x/y van een platte kaart om te rekenen naar de oorspronkelijke latitude/longitude. hiervoor heb ik een zelfgemaakte kaart van nederland gemaakt. als basis heeft een screenshot van google maps gediend. mijn zelf gemaakt kaart heeft dus dezelfde afmetingen als die van google maps. toen ik de screenshot maakt heb ik ook de latitude en longitude bounds van google maps genoteerd voor het omrekenen (zie script). Helaas werkt de formule van lat/lon naar x/y niet helemaal juist? ziet iemand wat er hier fout gaat of is dit gewoon niet mogelijk? <script type="text/javascript"> /** * Latitude loopt van boven naar beneden = y * Longitude loopt van links naar rechts = x */ /** * X Y naar LAT LNG */ var geolatLowBound = 50.708634400828224; //lo verticaal var geolatHighBound = 53.55336278552809; //lb var geolngLowBound = 3.251953125; //rb horizontaal var geolngHighBound = 7.3828125; //ro //x/y bounds kaart.gif rechtsonder, UITKOMST: 50.708634400828224 - 7.3828125 //var x = 376; //var y = 422; //x/y amsterdam op kaart.gif, UITKOMST: 52.35345365643668 - 4.8779296875 var x = 148; var y = 178; var Lat = geolatHighBound - (geolatHighBound - geolatLowBound) / 422 * y; var Lon = geolngLowBound + (geolngHighBound - geolngLowBound) / 376 * x; alert(Lat + ' - ' + Lon); /** * LAT LNG naar X Y */ //lat/lon bounds google maps rechtsonder, UITKOMST: 376 - 422 //var Lat = 50.708634400828224; //var Lon = 7.3828125; //lat/lon amsterdam op google maps, UITKOMST +/-: 155 - 167 AFWIJKING VAN 7 EN 11 var Lat = 52.3755991766591; var Lon = 4.888916015625; var x = 376 - (Lat - geolatLowBound) / (geolatHighBound - geolatLowBound) * 376; var y = (Lon - geolngLowBound) / (geolngHighBound - geolngLowBound) * 422; alert(x + ' - ' + y); </script> 1 december 2009 bewerkt door bas_vdl
bas_vdl Geplaatst 1 december 2009 Auteur Geplaatst 1 december 2009 nog even wat debugging gedaan uitkomsten van lat/lng naar x/y hoek linksboven: lat: 53, lon: 3. uitkomst: x: 0, y:0 GOED hoek rechtsboven: lat: 53, lon: 7 uitkomst: x: 0, y: 422 FOUT, moet zijn x: 376, y: 0 hoek linksonder lat: 50, lon: 3 uitkomst: x: 376, y: 0 FOUT, moet zijn x: 0 y: 422 hoek rechtsonder lat: 50, lon: 7 uitkomst: x: 376, y: 422 GOED wat gaat hier fout?
Geopatra Geplaatst 1 december 2009 Geplaatst 1 december 2009 Huh ....... ik snap geen snars van dit verhaal . Zal wel aan mij liggen . Geopatra
bas_vdl Geplaatst 1 december 2009 Auteur Geplaatst 1 december 2009 Huh ....... ik snap geen snars van dit verhaal . Zal wel aan mij liggen . Geopatra Hallo, ik heb het opnieuw uitgelegd in andere woorden. hopelijk snap je er nu wel wat van en kun je hulp bieden.
kalkendotters Geplaatst 1 december 2009 Geplaatst 1 december 2009 Huh ....... ik snap geen snars van dit verhaal . Zal wel aan mij liggen . Geopatra Hallo, ik heb het opnieuw uitgelegd in andere woorden. hopelijk snap je er nu wel wat van en kun je hulp bieden. Tsja, dat krijg je ervan als de Latitude en Longitude omdraaid Latitude wordt op de Y-as gezet, en Longitude op de X-as.
jo-anne Geplaatst 1 december 2009 Geplaatst 1 december 2009 Tsja, dat krijg je ervan als de Latitude en Longitude omdraaidLatitude wordt op de Y-as gezet, en Longitude op de X-as. Hihi, ik heb geen verstand van scripts, maar dat wist ik dan nog wel weer...
bas_vdl Geplaatst 1 december 2009 Auteur Geplaatst 1 december 2009 Tsja, dat krijg je ervan als de Latitude en Longitude omdraaidLatitude wordt op de Y-as gezet, en Longitude op de X-as. Hihi, ik heb geen verstand van scripts, maar dat wist ik dan nog wel weer... sorry ik zie het niet???
kalkendotters Geplaatst 1 december 2009 Geplaatst 1 december 2009 /** * Latitude loopt van boven naar beneden = y * Longitude loopt van links naar rechts = x */ /** * X Y naar LAT LNG */ var Lat = geolatHighBound - (geolatHighBound - geolatLowBound) / 422 * y; var Lon = geolngLowBound + (geolngHighBound - geolngLowBound) / 376 * x; /** * LAT LNG naar X Y */ var x = 376 - (Lat - geolatLowBound) / (geolatHighBound - geolatLowBound) * 376; var y = (Lon - geolngLowBound) / (geolngHighBound - geolngLowBound) * 422; Even het meest essentiele uit de code laten staan. In het eerste deel gebruik je Y om Lat uit te rekenen, in het tweede deel gebruik je Lat om X uit te rekenen
Aanbevolen berichten