functie Omrekenen coördinaten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart nukem

bart nukem

23/11/2009 18:27:00
Quote Anchor link
Wie wil mij verder helpen onderstaande functie te gebruiken. De bedoeling is dat deze functie een RD coördinaat (bijv x194965 y328209) omrekent in longitude lattitude (goed voor google maps). De functie is geschreven door Vasco Tenner en mocht vrij worden gebruikt, waarvoor mijn dank

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php


function amersfoort2greenwich($ax, $ay, &$gx, &$gy){

    /* This is formula in sql to calculate Greenwich co-ordinates from
    *  the Dutch "Amersfoort" co-ordinates ("N" in quadrant).
    *  Our computer on the Dutch Ringing Ringing does use this program.
    */

    /* from Amersfoort (quadrant "N") coordinates to Greenwich */

    /*
     select $ca="180"
     select $cb="450"
    */

    /* first  amsfrt coordinaat : lengte = smallest number
    * second amsfrt coordinaat : breedte= largest number
    * first  geogr  coordinaat : breedte
    * second geogr  coordinaat : lengte
    */

    /* coordinaten outside min and max ? */

     if (($ax  <   0) ||($ax  > 300) ||($ay < 300) ||($ay > 650)) return

false;
     $abr=187762.0;  /* latitude  Amersfoort in seconden */
     $ale=19395.5;   /* longitude Amersfoort in seconden */

    /* calculate the point 500 m NorthEast from point of intersection
from given line */

     $x= ($ax -154.5)/100;
     $y= ($ay-462.5)/100;

    /* calculate greenwich latitude */
     $z=3236.033*$y-32.592*$x*$x-.247*$y*$y-.85*$x*$x*$y;
     $z=$z-.065*$y*$y*$y+.005*$x*$x*$x*$x-.017*$x*$x*$y*$y;
    /* $z is the difference to amfrt in sec */
     $gr=floor(($z+$abr)/3600); /* latitude degrees */
     $m=($z+$abr)/36;
     $z=$m-$gr*100;
     $mn=floor($z*.6+.5); /* latitude in minutes */
     if ($mn >= 60){
           $mn=0;
           $gr=$gr+1;
     }


    if ($mn < 10) $ca=$gr."0".substr($mn,strlen($mn)-1,1);
    else $ca=$gr.substr($mn,strlen($mn)-2,2);

    /* calculate greenwich longitude */
     $z=5261.305*$x+105.979*$x*$y+2.458*$x*$y*$y-.819*$x*$x*$x;
     $z=$z+.056*$x*$y*$y*$y-.056*$x*$x*$x*$y;
    /* $z is the difference to amfrt in sec */
     $gr=floor(($z+$ale)/3600); /* longitude degrees */
     $m=($z+$ale)/36;
     $z=$m-$gr*100;
     $mn=floor($z*.6+.5); /* longitude minutes */
     if ($mn >= 60){
           $mn=0;
           $gr=$gr+1;
     }



    if ($mn < 10) $cb=$gr."0".substr($mn,strlen($mn)-1,1);
    else $cb=$gr.substr($mn,strlen($mn)-2,2);

    $q="E";

    $gx = $ca/100;
    $gy = $cb/100;
    return true;
}


?>
 
PHP hulp

PHP hulp

25/12/2024 07:15:11
 
Emmanuel Delay

Emmanuel Delay

24/11/2009 09:46:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$ax
= 194.965 ;  // Uitdrukken in km, niet in m
$ay = 328.209 ;
$gx = '';  // de variabele moet aangemaakt worden vooraleer de functie te gebruiken
$gy = '';  // dito

$result = amersfoort2greenwich($ax, $ay, $gx, $gy);
echo '<div>'. $gx .'</div><div>'. $gy .'</div>';

function
amersfoort2greenwich($ax, $ay, &$gx, &$gy){
...

?>


EDIT:
(een beetje off topic)
Heeft Nederland echt zo een eigen coördinatenstelsel?
Wordt dat gebruikt?
Ik (Belg) had er nog nooit van gehoord.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Complegendary

complegendary

30/11/2009 14:21:00
Quote Anchor link
Ja, het rijksdriehoek systeem wordt gebruikt, het is iig de standaard voor natuurwaarnemingen. Ook Belgie heeft een rijksdriehoek grid, maar dat is iets minder slim opgezet dan het Nederlandse. In het Nederlandse grid zijn x en y coordinaten niet te verwarren (x<y oid). Het belgische heeft dat niet.
 
Emmanuel Delay

Emmanuel Delay

30/11/2009 15:47:00
Quote Anchor link
complegendary schreef op 30.11.2009 14:21:
Ook Belgie heeft een rijksdriehoek grid, maar dat is iets minder slim opgezet dan het Nederlandse...


Hehe, verwondert me niets.
:)
 
Bart nukem

bart nukem

01/12/2009 18:44:00
Quote Anchor link
Bovenstaande oplossing werkt, echter gedeeltelijk. Met bovengenoemde coordinaten krijg ik als uitkomst 50.57 en 5.58 en moet zijn:50 56,532251 en 5 57,348197 of iets in die zin. Het lijkt erop dat dat het e.e.a wordt afgerond. Iemand enig idee dit eruit te halen? Het zit hem ergens in de floor... denk ik.
Daarnaast rekent de functie volgens mij kilometer en zou moeten rekenen in meters...
Gewijzigd op 01/01/1970 01:00:00 door bart nukem
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.