# Entfernung berechnen anhand der PLZ



## Sascha1976 (10. Januar 2005)

Hallo,
hat jemand von euch eine Idee, wie man anhand der PLZ die entfernung berechnen kann ?

z.B.
40591 zu 40591 = 0 Kilometer entfernung
40591 zu 40229 = 1 Kilometer entfernung

Leider fällt mir dazu nichts ein, wie man die berechnung machen könnte.

Vieleicht hat sich ja schonmal einer von euch darüber der Kopf zerbrochen oder hat irgendwo schonmal eine Lösung gefunden.

Gruß
Sascha


----------



## Timbonet (10. Januar 2005)

Die PLZ hat nichts mit der Entfernung zu tun. Du kannst aber mit Hilfe von z.B. http://opengeodb.de/ diese in Koordinaten umrechnen und dann die Entfernung bestimmen.


----------



## Sascha1976 (10. Januar 2005)

Ich glaube das wären zu viele abfragen.

Da die abfrage ja bei jedem Seitenaufruf neu berechnet werden muß.

Der eingeloggte User geht auf dei Seite wer ist Online und soll ja dann sehen, wer Online ist und weit die Person von einem Wegwohnt.

Als Anlage hab ich mal nen Bild drangehangen, wie es ungefähr aussehen soll.

Nur leider ist das nicht in PHP sondern in cfm Programmiert worden.

Gruß
Sascha


----------



## meilon (10. Januar 2005)

Hi,
Wenn ich das recht auf http://opengeodb.de/ gesehen habe, kann man sich diese Datenbank auch selber auf seinem Server installieren.
Wie wärs damit?

mfg


----------



## Oliver Gringel (10. Januar 2005)

Wieso sind das zu viele Abfragen? Das ist genau eine Abfrage. Du liest ja irgendwann man die User-Daten aus der Datenbank aus. Die Daten joinst du dann anhand der PLZ mit den Daten der GeoDB, und schon hast du zu allen Usern die Koordinaten.


----------



## Timbonet (10. Januar 2005)

Oder du speicherst dann die Koordinaten direkt bei den Userdaten. Dann bleibt die Anzahl der Abrufe gleich und du mußt nur noch eine Funktion zur Entfernungsberechnung aufrufen.


----------



## Sascha1976 (10. Januar 2005)

Das Problem ist, wenn ich die Koordinaten für folgende Düsseldorf PLZ berechne, sind es immer die gleichen.


*40591 Düsseldorf* 
Länge	6.76667  /  6° 46' 0''
Breite	51.2167  /  51° 13' 0''

*40229 Düsseldorf*
Länge	6.76667  /  6° 46' 0''
Breite	51.2167  /  51° 13' 0''

*40629 Düsseldorf*
Länge	6.76667  /  6° 46' 0''
Breite	51.2167  /  51° 13' 0''

Erst wenn ich eine andere Stadt nehme, bekomme ich andere Koordinaten.
*40699 Erkrath*
Länge	6.9  /  6° 54' 0''
Breite	51.2167  /  51° 13' 0''


Ich brauch aber die entfernung zu jeder PLZ. Auch den Düsseldorfer.


Gruß
Sascha


----------



## Timbonet (10. Januar 2005)

Dann mußt du dir eine Datenquelle suchen, die das ganze höher auflöst - oder die Daten selbst erfassen. Da Postleitzahlen aber mehr oder weniger willkürlich vergeben werden können, ist das nicht einfach..


----------



## Sascha1976 (10. Januar 2005)

Hab bei Google was gefunden, aber das bringt mich nicht wirklich weiter.

Aber vieleicht kann ja jemdnad von euch damit was anfangen.


```
Entfernungsberechnung
---------------------

Entfernungen zwischen zwei Zustellbezirken oder Postfachbereichen lassen sich mithilfe
der Gauß-Krüger- oder UTM-Koordinaten durch einfache Anwendung des Pytagorassatzes 
berechnen, da diese Koordinatensysteme rechtwinkelig und metrisch sind:

Formel für die Entfernungsberechnung mit Gauß-Krüger-Koordinaten:
        difRechts := abs(GKRECHTS1 - GKRECHTS2)
        difHoch   := abs(GKHOCH1   - GKHOCH2  )
        strecke   := sqrt(difRechts * difRechts + difHoch * difHoch)

Formel für die Entfernungsberechnung mit UTM-Koordinaten:
        difRechts := abs(UTMRECHTS1 - UTMRECHTS2)
        difHoch   := abs(UTMHOCH1   - UTMHOCH2  )
        strecke   := sqrt(difRechts * difRechts + difHoch * difHoch)

GKRECHTS1 / UTMRECHTS1: Rechtswert der ersten Postleitzahl
GKHOCH1 / UTMHOCH1:     Hochwert der ersten Postleitzahl
GKRECHTS2 / UTMRECHTS2: Rechtswert der zweiten Postleitzahl
GKHOCH2 / UTMHOCH2:     Hochwert der zweiten Postleitzahl
abs():                  Absolutbetrag
sqrt():                 Quadratwurzel
strecke:                Das Ergebnis ist die Entfernung in Meter.
```
Quelle: http://www.killetsoft.de/ortplzrf.htm


Gruß
Sascha


----------



## Oliver Gringel (10. Januar 2005)

Das ist eine nette Anwendung des Satzes des Pythagoras, aber ich verstehe nicht, was das mit deinem Problem zu tun haben könnte?


----------



## Matthias Reitinger (10. Januar 2005)

Und ich verstehe nicht, was das mit PHP zu tun hat... ab zum Coders Talk damit.


----------



## Sascha1976 (10. Januar 2005)

Es muß doch irgendeine Lösung geben.

In cgi gibt es das ja auch.
siehe hier: http://www.koordinaten.de/online/2plz.shtml

Gruß
Sascha


----------



## Layna (10. Januar 2005)

GaußKrüger sagt mir gar nicht.. die Formel an sich macht aber Sinn.
DiffRechts ist der Detrag der Differenz der Y-Koordinaten.
DiffHoch entsprechend der Betrag der Differenz der X-Koordinaten.
Aus den beiden Beträgen baust du, für die entfehrnung, ein Rechtwinklches Dreiech und amcht einen Pytagorad: a²+b²=c², ergibt c = sqrt(a²+b²)... sqrt ist dabei die einfache Wurzel.
Scheinbar sind UTM und GaußKrüger Koordinatenwerte für die PLZ-bereiche.. wo du DIE herlkriegst kann ich jetzt auch nicht sagen, ich vermute mal aus dem erwähnten http://opengeodb.de/.
Hoffe das Hilft 
   Larayna


----------



## Sascha1976 (10. Januar 2005)

> Und ich verstehe nicht, was das mit PHP zu tun hat... ab zum Coders Talk damit.


Weil ich das ganze in PHP brauche, deswegen hat es was mit PHP zu tun.


Gruß
Sascha


----------



## Oliver Gringel (10. Januar 2005)

Sascha1976 hat gesagt.:
			
		

> Es muß doch irgendeine Lösung geben.
> 
> In cgi gibt es das ja auch.
> siehe hier: http://www.koordinaten.de/online/2plz.shtml
> ...


Ja sicher gibt es die. Die Daten, die du brauchst, stehen in der opengeodb. Wenn dir diese Koordinaten nicht genau genug sind, dann musst du die Daten eben selbst ergänzen bzw. verbessern. Wo liegt denn das Problem?


----------



## Sascha1976 (10. Januar 2005)

Bei opengeodb bekommst du nur die Koordinateen für Städte und nicht für Postleitzahlen.

Und dann brauch ich ja noch eine genaue Umrechnung, wie man aus den Koordinaten die entfernung berechnet.

Aber wenn das kein Problem ist, warum postest du nicht mal kurz den PHP-Code, wenn das doch so einfach für dich ist.  ;-] 

Gruß
Sascha


----------



## Oliver Gringel (10. Januar 2005)

Sascha1976 hat gesagt.:
			
		

> Bei opengeodb bekommst du nur die Koordinateen für Städte und nicht für Postleitzahlen.


Sicher sind da auch die Postleitzahlen angegeben. Wenn es mehrere Postleitzahlen zu einer Stadt gibt, dann werden die Postleitzahlen durch Komma getrennt in einer Spalte angegeben, aber das lässt sich ja recht schnell ändern, dass du für jede Postleitzahl einen Datensatz hast.


----------



## Matthias Reitinger (10. Januar 2005)

Sascha1976 hat gesagt.:
			
		

> Weil ich das ganze in PHP brauche, deswegen hat es was mit PHP zu tun.


Die Lösung des Problems (Datenbeschaffung, Berechnung) hat aber primär mal überhauptnichts mit der verwendeten Programmiersprache zu tun. Darum ist's hier besser aufgehoben.


----------



## Andreas Gaisbauer (12. Januar 2005)

Sascha1976 hat gesagt.:
			
		

> Es muß doch irgendeine Lösung geben.
> 
> In cgi gibt es das ja auch.
> siehe hier: http://www.koordinaten.de/online/2plz.shtml
> ...


Ich habs mal getested - scheint zu stimmen. Auf der Ergebnisseit steht aber auch folgendes: 


> Wenn Sie Interesse an Koordinaten-Programmen (Sourcecodes) oder an unseren zahlreichen Datenbanken haben, treten Sie doch einfach mit uns in Kontakt.


Dann würd ich das mal machen


----------



## Sascha1976 (17. Januar 2005)

Andreas Gaisbauer hat gesagt.:
			
		

> Ich habs mal getested - scheint zu stimmen. Auf der Ergebnisseit steht aber auch folgendes:
> 
> Dann würd ich das mal machen



Da das Projekt kostenlos ist und ich damit kein Geld verdienen möchte, möchte ich natürlich auch kein Geld dafür ausgeben.

Gruß
Sascha


----------



## Andreas Gaisbauer (17. Januar 2005)

Fragen kostet nichts - vielleicht können sie dir ja eine Quelle nennen...


----------



## rasta74 (2. August 2006)

Hallo,

vielleicht hilft Dir das weiter -> http://www.entfernung.net

Viele Grüße


----------



## Riv3r (5. September 2007)

Muss dieses Thema mal wieder auffrischen...

Ich bekomme einfach nie das richtige Ergebniss ô_O

Koordinaten habe ich.  Wie muss ich jetzt rechnen um die richtige entfernung zu bekommen...

Danke schonmal


----------



## Admi (5. September 2007)

Berechnungsmöglichkeiten:

http://opengeodb.hoppe-media.com/index.php?FAQEntfernung


----------



## Da_Chris (15. September 2007)

sorry sascha aber das was du da willst ist nicht möglich.
Postleitzahlen stehen nicht nur für städte sondern teilweise auch für stadtteile oder sogar landkreise. 
Die größe des Gebietes variiert zu stark um entfernungen anhand von postleitzahlen zu ermitteln.


----------



## D-LuX (12. Oktober 2007)

hast du denn jetzt schon ne möglichkeit gefunden?


----------



## Riv3r (12. Oktober 2007)

Wenn gewuenscht könnte ich ne kleine Klasse online stellen die die Berechnung ermöglicht...

MfG
Riv3r


----------



## Tobias Menzel (12. Oktober 2007)

@Riv3r: Immer her damit.  Ich denke, so eine Klasse dürfte einige hier interessieren (vielleicht auch in Form eines Tutorials? ).

Gruß
.


----------



## Riv3r (13. Oktober 2007)

Sooo...

Hab n kleines Testprojekt erstellt...

Hoffe die Berechnungsklassen stimmen so - wenn nicht bitte melden!

Download: GeoDaten

Bin gerade noch an einer grafischen Darstellung der GeoDaten...

MfG
Riv3r


----------



## Tobias Menzel (13. Oktober 2007)

Interessant ... aber soweit ich das sehen kann, geht es nicht um Postleitzahlen, sondern um Geokoordinagen, oder?

Gruß
.


----------



## Riv3r (13. Oktober 2007)

Die GeoDaten fuer die Berechnungen lassen sich ganz einfach aus der freien Datenbank OpenGeoDB auslesen und dann weiterverwerten...

Die grafische Anzeige basiert auch auf der oben genannten DB...


----------



## Sheyen (7. April 2009)

Suche gerade etwas ähnliches für ein Projekt.
Habe mir mal http://www.koordinaten.de/cgi-ko/plz_entfernung.cgi genauer angeschaut.
Und das lustige ist, das mir die Ergebnisseite auf der Map Ibbenbühren und Alsdorf ausgibt anstatt Peine und Berlin. 
Naja die OpenGeoClass ist ja leider auf PEAR angewisen.
Auch die Datenbankstruktur ist sehr verwirrend, trotz des Schemes.
Bekommt man eigentlich irgendwo http://opengeodb.hoppe-media.com/examples/distance.php zum download.
Habs net gefunden.Wenns hier auch keiner weiß werd ich mal anfragen.
Naja alles etwas aufwendig und umständlich.

Grüße
Sheyen


----------



## nicolaskeckl (5. August 2010)

Gauß-Krüger-Koordinaten sind die amtlichen Koordinaten. Sie werden ab dem Äquator (Hochwert) in Metern und - wenn ich mich nicht täusche - ab Greenwich Village Meridiane (Rechtswert) in m gemessen.


----------

