Spring naar bijdragen

Aanbevolen berichten

Geplaatst (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>

bewerkt door bas_vdl
Geplaatst

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?

Geplaatst
Huh :eek: .......

 

ik snap geen snars van dit verhaal :blush: .

 

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.

Geplaatst
Huh :eek: .......

 

ik snap geen snars van dit verhaal :blush: .

 

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.

Geplaatst
Tsja, dat krijg je ervan als de Latitude en Longitude omdraaid

Latitude 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...

;)

Geplaatst
Tsja, dat krijg je ervan als de Latitude en Longitude omdraaid

Latitude 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???

Geplaatst
/**
* 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

  • Onlangs hier   0 leden

    • Er kijken geen geregistreerde gebruikers naar deze pagina.
×
×
  • Nieuwe aanmaken...