php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.03.2007, 20:03  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard GeoDaten / OpenGeoDB

Hallo zusammen,

ich experimentiere derzeit etwas mit OpenGeoDB und habe letztendlich den
Anspruch eine PLZ Suche in einem bestimmten Umkreis durchzuführen.

Dabei bin ich auf die OpenGeoDB gestoßen. Nun in erster Line ist das ja
nicht viel mehr als die in einer Datenbank gesammelten PLZ/Vorwahlnummer
etc.

Wie ich damit etwas anstellen kann, ist mir durchaus bewusst, was ich aber
noch nicht verstanden habe ist die Sache mit der Umkreissuche.
Ist das mit einer derartigen DB überhaupt möglich? Und wie schließe ich
von GeoDaten bzw. PLZ auf einen Umkreis von z.B. 25 KM.

Wenn mir da mal jemand auf die Sprünge helfen könnte wäre das richtig klasse.

Grüße
Tine
tinchen ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.03.2007, 20:44  
CIX88
Gast
 
Beiträge: n/a
Standard

Die Umkreissuche basiert auf den Angaben von geografischer Länge und Breite.
Diese Angaben müssen dort mit enthalten sein.
Ist dies überhaupt der der Fall ?
 
Alt 02.03.2007, 20:52  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard

Ein Datensatz sieht z.B. so aus.
INSERT INTO `geo` (`geo_id`, `geo_ort`, `geo_plz`, `geo_lat`, `geo_lon`) VALUES (30384, 'Wien', 1199, 48.2, 16.3667);

So müssten `geo_lat` und `geo_lon` Angaben in geografischer Länge und Breite sein.

Meine Frage ist nun ein wenig, wie ich in der query zu allen Ergebnissen bezüglich einer
Postleitzahl in 25 KM Entfernung komme.

In einer Karte anzeigen etc. das geht alles, aber mit diesem Rechnen komme ich nicht
klar.
tinchen ist offline  
Alt 02.03.2007, 20:55  
CIX88
Gast
 
Beiträge: n/a
Standard

Irgendwo liegt dieser Fetzen bei mir rum:

$s_km = 10;
$breite und $laenge kommen aus der DB.
tab_breite und tab_laenge sind aus der GeoDB.

Query:
SQRT( 71 * 71 *
( tab_breite - $breite ) *
( tab_breite - $breite ) + 111 * 111 *
( tab_laenge - $laenge ) *
( tab_laenge - $laenge ) ) < $s_km

(nicht getestet)
 
Alt 02.03.2007, 21:50  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Du musst unterscheiden zwischen geodezimalen und georadianten Längen- bzw. Breitengrad-Angaben. Ich habe gerade gegooglet, georadiant scheint kein sonderlich verbreitetes Wort zu sein, wir haben es jedoch in der Firma (Routenplanung) so genannt. Georadiant bezeichnete die Angaben, die in Stunden, Minuten und Sekunden abgegeben wurden. Die andere Einheit beruht auf dem bekannten Dezimalsystem

Bevor du dich nochmal in die Analysis stürzt (eigentlich recht einfach: "befindet sich ein Punkt in einem Kreis"-Aufgabe), such doch einfach im Web nochmal nach "Umkreissuche openGeoDB".

Falls du es händisch machen musst, beachte genannte Einheiten und dass die Abstände der Längengrade in Richtung Äquator zunehmen. Je kleiner deine Umkreissuche ist, desto unwichtiger ist das jedoch für deine Berechnung.
Zergling-new ist offline  
Alt 02.03.2007, 22:02  
CIX88
Gast
 
Beiträge: n/a
Standard

Hab aus Interesse auch mal Google benutzt, und das gefunden:
http://www.geonames.org/export/

Damit geht auch Umkreissuche

EDIT:

Also mit dem besagten Link ^^^ sollte das ganze reicht einfach zu machen sein:
http://www.cix88.de/cix_php/php_graf...ap_umkreis.php

Der Export liegt dann als XML-File vor.
Allerdings bin ich eben etwas auf die Fresse geflogen, beim Versuch DOM_XML zu benutzen:
http://www.cix88.de/cix_php/php_web/...kreissuche.php

Das Script ist mir regelrecht abgesoffen ...

Mit geonames ist zwar eine nette Spielerei, aber mir wäre es lieber, wenn die Daten in der eigenen DB liegen
 
Alt 05.03.2007, 20:35  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard

Puh, das ist für mich schon gar nicht so ohne.

Wenn ich da mal rückfragen darf:
Was und woher ist
PHP-Code:
include('_c_map_umkreis_class.php'); 
Gruß
Tine
tinchen ist offline  
Alt 05.03.2007, 20:47  
CIX88
Gast
 
Beiträge: n/a
Standard

Ähhh jo, eine eigene Klasse, um die Koordinaten überhaupt auf einer Karte darstellen zu können.
Eigentlich nichts besonders, die Klasse ermittelt die Entfernung 2er Punkte, rechnet dies auf Pixel um, und zeichnet dort ein Punkt, Kreis oder was weis ich
Aus Breite und Höhe von realer Entfernung wird ein Verhältnis zur Karte ermittelt.
Diese Karte bekommt dann Bezugspunkte, wo aus die Berechnung stattfindet.
 
Alt 06.03.2007, 09:36  
Erfahrener Benutzer
 
Benutzerbild von JEGO
 
Registriert seit: 01.12.2003
Beiträge: 2.555
PHP-Kenntnisse:
Anfänger
JEGO wird schon bald berühmt werden
Standard

sehr nettes skript CIX... darf man das verwenden? bzw. wie sieht es mit deinen Urheberrechten aus?
__________________
Gruß JEGO

Ein PHP Script tut, was Du schreibst, nicht was Du willst.
JEGO ist offline  
Alt 06.03.2007, 11:35  
CIX88
Gast
 
Beiträge: n/a
Standard

Es steht gar nicht zum Download
Ist aber nur Spielerei und noch lange nicht so fertig, dass es überall problemlos einsetzbar ist.
Wenn z.B. die Karte verzerrt ist, dann stimmen die gezeichneten Punkte nimmer.

Schick mir eine PN mit E-Mail ...
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
EEnga/Geo - ein Webservice für Geodaten daretta PHP-Fortgeschrittene 4 02.12.2007 18:39
Google Maps statt OpenGeoDB? Plague PHP Tipps 2007 8 18.06.2007 11:43
OpenGeoDB: Alle Städte in einem Landkreis (SQL Code) Plague PHP Tipps 2006 3 13.12.2006 17:44
die neue Struktur von der opengeodb Plague PHP-Fortgeschrittene 2 13.07.2006 08:33
noch mal opengeodb Plague PHP-Fortgeschrittene 3 12.07.2006 22:42
Opengeodb Datenbankabfrage via SQL Code Plague PHP Tipps 2005-2 5 06.09.2005 18:53
opengeodb Datenbankverbindung fehlgeschlagen Plague PHP Tipps 2005-2 3 31.08.2005 17:01
Geodaten Ypsillon PHP Tipps 2004-2 9 22.12.2004 13:09

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php geodaten ermitteln, php geodaten, geodaten php, opengeodb download, geodb download, geodb umkreissuche, umkreissuche geodaten, geodaten umkreissuche, geodezimal, opengeodb, opengeodb karte, opengeodb script, umkreissuche geodb, opengeodb webservice, geodaten opengeodb, plz geodaten download, geodaten für umkreissuche, opengeodb plz, geodaten mit php, php geodata

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.