• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Suche eine PHP Klasse mit...

DunkleAura

Geowizard
Hi Gemeinde,

weiss jemand, ob es bereits eine Klasse in PHP gibt, welche die Distanz zwischen zwei Koordinaten errechnen kann, Wegpunktprojektion usw...

oder für eine andere Sprache?

Gruss DunkleAura
 

-tiger-

Geowizard
Pack deine Daten in eine PostgreSQL Datenbank mit PostGIS erweiterungen, dann kannst du bequem aus PHP raus alle möglichen Geo-Abfragen machen.

http://postgis.refractions.net/

...und wenn es noch so verlockend ist, weils auf den ersten Blick ähnlich und einfacher aussieht: Vergiss die Spatial Extensions für MySQL, die rechnen nur in 2D, da die Erde aber dummerweise eine runde Scheibe ist, ist das auf Dauer ne Sackgasse. PostGIS ist da erheblich weiter.
 
OP
DunkleAura

DunkleAura

Geowizard
-tiger- schrieb:
Pack deine Daten in eine PostgreSQL Datenbank mit PostGIS erweiterungen, dann kannst du bequem aus PHP raus alle möglichen Geo-Abfragen machen.

http://postgis.refractions.net/

...und wenn es noch so verlockend ist, weils auf den ersten Blick ähnlich und einfacher aussieht: Vergiss die Spatial Extensions für MySQL, die rechnen nur in 2D, da die Erde aber dummerweise eine runde Scheibe ist, ist das auf Dauer ne Sackgasse. PostGIS ist da erheblich weiter.
Danke für den Tipp, klingt sehr Interessant und sieht gut aus, jedoch benötige ich für mein vorhaben keine DB und hoffte eigentlich ohne DB zurecht zu kommen.

Sinn und Zweck ist eigentlich nur in erster Linie, ein rechner zu basteln welcher Opera mini tauglich ist um eben mal kurz die Distanz zwischen zwei Punkten zu errechnen oder eben zu Peilen. Dies ohne ellen langen Text oder x Seiten Werbung...

Mir ist schon klar dass es dies schon auf anderen Seiten gibt, jedoch nicht sehr Opera mini freundlich...

Wenn ich Java Entwickler wäre, würde ich mir kurz ein Programm für mein Mobile schreiben ;) aber da ich dies nicht bin, mach ich es wie ich es halt kann...

Gruss DunkleAura
 

GeoAtti

Geomaster
Hiho,

Ist zwar C, funtioniert mit wenigen Anpassungen aber auch unter PHP:

Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double sqr(double n)
{
    return n*n;
}

double deg2rad(double n)
{
    return M_PI*n/180;
}

double wgs84_dist(double lat1, double lon1, double lat2, double lon2)
{
    double b1, l1, b2, l2, a, f, ff, gg, l, ss, cc, w, rr, dd, h1, h2, s;

    b1=deg2rad(lat1);
    l1=deg2rad(lon1);
    b2=deg2rad(lat2);
    l2=deg2rad(lon2);

    a=6378137.000;
    f=1/298.257223563;

ff= (b1+b2)/2;
gg = (b1-b2)/2;
l = (l1-l2)/2;

 ss = sqr(sin(gg))*sqr(cos(l)) + sqr(cos(ff))*sqr(sin(l));
 cc = sqr(cos(gg))*sqr(cos(l)) + sqr(sin(ff))*sqr(sin(l));
 w = atan(sqrt(ss/cc));

 rr = sqrt(ss*cc)/w;
 dd = 2*w*a;
 h1 = (3*rr-1)/(2*cc);
 h2 = (3*rr+1)/(2*ss);


  s = dd*(1 + f*h1*sqr(sin(ff))*sqr(cos(gg))
          - f*h2*sqr(cos(ff))*sqr(sin(gg)));

  return s;
}

Atti
 

GeoAtti

Geomaster
Hiho,

Mit PI nehmen die es aber nicht gerade genau ... oben eine 2635-stellige Konstante definiert, unten aber mit 3.14159 rechnen! :shock:

Und irgendwie fehlen mir die Parameter des WGS84 Elipsoiden. Wird aber schon über den Daumen stimmen!

Atti
 
Oben