Zurück   klamm-Forum > klamm-Lose > Lose4Scripts

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15.04.2012, 22:47:02   #1 (permalink)
Erfahrener Benutzer

ID: 12911
Lose-Remote

Reg: 20.04.2006
Beiträge: 292
Standard [PHP/MYSQL] PLZ Umkreis

Ich gebe eine PLZ und die KM vor und
das Ergebnis liefert mir alle PLZ im Umkreis.

Basis MySQL, PHP
 
LoseAndMore.de ist offline   Mit Zitat antworten
Alt 18.04.2012, 19:48:15   #2 (permalink)
Erfahrener Benutzer
Benutzerbild von M3Y3R

ID: 336361
Lose-Remote

Reg: 08.05.2006
Beiträge: 1.610
Standard

Zitat:
Zitat von LoseAndMore.de Beitrag anzeigen
Ich gebe eine PLZ und die KM vor und
das Ergebnis liefert mir alle PLZ im Umkreis.

Basis MySQL, PHP
Hi,

das wird nicht funktionieren, da du innerhalb der MySQL-Datenbank alle PLZ speichern müsstest.
Des weiteren müsstest du irgendwie bei Angabe eines Radius die neue PLZ berechnen und da diese nicht fortlaufend sind, funktioniert die Logik leider nicht.

Mit fortlaufend meine ich, dass im Zentrum einer Stadt beispielsweise 28000 liegt und drumherum immer höher wird. Dies ist leider nicht der Fall...


Derzeit bin ich bei einem Software-Unternehmen tätig, welches sich mit Bewerbermanagement-Systemen beschäftigt. Zu unseren Kunden zählen Zeitarbeitsfirmen, Personalvermittlungsagenturen und so weiter und von denen kommt leider auch immer wieder dieser Wunsch.

Eine Möglichkeit wäre dies per Längen + Breitengrad zu ermitteln, aber selbst dies ist ziemlich Performancelastig und benötigt ebenfalls eine riesen Datenbank mit allen Standorten oder ein externen Anbieter was in den meisten Fällen nicht gewünscht ist oder sehr teuer werden könnte wegen Datenschutz oder Nutzungspauschale...


Gruß
Papenburger
 
M3Y3R ist offline   Mit Zitat antworten
Alt 18.04.2012, 22:26:53   #3 (permalink)
Erfahrener Benutzer
Benutzerbild von Yggxx

Reg: 13.12.2010
Beiträge: 237
Standard

Das stimmt so nicht.
Zu Beginn brauchst du eine grosse Datenmenge für die Ermittlung der benötigten Daten. Wenn die erstmal da sind, ist die benötigte Tabelle relativ klein und die Performance braucht sich natürlich auch nicht zu verstecken.
Mein Beispiel findest Du auf: http://umkreis . 1a-lose . de mit über 17.100 gespeicherten PLZ plus Längen-/Breitengrade plus Städtenamen. Natürlich ist es nicht g..gleMaps, aber das ist ja auch nicht verlangt.
 
Yggxx ist offline   Mit Zitat antworten
Alt 18.04.2012, 23:08:40   #4 (permalink)
Erfahrener Benutzer
Benutzerbild von M3Y3R

ID: 336361
Lose-Remote

Reg: 08.05.2006
Beiträge: 1.610
Standard

Zitat:
Zitat von Yggxx Beitrag anzeigen
[...]mit über 17.100 gespeicherten PLZ plus Längen-/Breitengrade plus Städtenamen.
Und wie genau berechnest du den Umkreis einer bestimmten PLZ?

Die PLZ´s sind ja vom Ortskern zum Ortsrand nicht aufsteigend oder ähnliches. Das heißt 28000 kann im Norden liegen und 28001 im Süden. Da zwischen kann dann 28054 liegen. Anhand der Längen- und Breitengrade hätte ich jetzt so Spontan keine Idee, wie man das berechnen könnte...

Ich nehme mal an, dass du mir die Daten + Script nicht zufällig zur Verfügung stellst?

Damit das niemand falsch versteht, das oben aufgeführte ist ein Beispiel und soll verdeutlichen dass es alleine über die PLZ nicht möglich ist den Umkreis zu berechnen. Über den Längen- und Breitengrad mag dies vielleicht grad so funktionieren...

__________________________

Berechnest du die Luftlinie?
 

Geändert von M3Y3R (18.04.2012 um 23:15:02 Uhr)
M3Y3R ist offline   Mit Zitat antworten
Alt 18.04.2012, 23:12:57   #5 (permalink)
Erfahrener Benutzer
Benutzerbild von Yggxx

Reg: 13.12.2010
Beiträge: 237
Standard

Dass das über die PLZs nicht geht, ist schon klar. Daher wird ja auch über Umwege eine passende Tabelle erstellt. Bei der Umkreis-Abfrage finden dann die Berechnungen statt, deren Ergebnis letztlich in passenden PLZs mündet.

edit:
Kannst Du dir - wie ich - alles über OpenGeoDB selbst nach deinen Wünschen zusammenstellen
 

Geändert von Yggxx (18.04.2012 um 23:14:14 Uhr)
Yggxx ist offline   Mit Zitat antworten
Alt 18.04.2012, 23:18:16   #6 (permalink)
return void
Benutzerbild von ice-breaker

ID: 93995
Lose-Remote

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.271
Standard

Zitat:
Zitat von Papenburger Beitrag anzeigen
Die PLZ´s sind ja vom Ortskern zum Ortsrand nicht aufsteigend oder ähnliches. Das heißt 28000 kann im Norden liegen und 28001 im Süden. Da zwischen kann dann 28054 liegen. Anhand der Längen- und Breitengrade hätte ich jetzt so Spontan keine Idee, wie man das berechnen könnte...
Ist doch vollkommen egal. Die PLZ wird mit einem Breitengrad irgendwo in der Stadt definiert sein, meistens irgendein Stadtkern oder so, von dem Punkt aus kann man eben x Kilometer nehmen. Dann liegen die echten Daten eben sagen wir 1km mit der genutzten Darstellung ausseinander, dann setzt man eben den Umkreis höher, also das ist echt das geringste Problem.



Über Performance würde ich mir auch keine Gedanken machen, wenn man danach Google findet man zwar Lösungen die jeden Server killen (trigonometrische Berechnungen mit der Erdkrümmung usw ) aber wenn wir mal ehrlich sind ist es uns doch egal, wie stark die Erde gekrümmt ist, bei einem Radius von 50km macht das mal so gut wie nichts aus. Und es muss bei der Suche auch kein echter Radius sein, dann nimmt man eben einen Quadratischen Umkreis um einen Punkt und man hat das Problem perfekt und absolut effizient auf die Datenbank abgebildet: einfach die Longitude und Latitude Bedinung jeweils mit einem Wertebereich von bis und fertig.
"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

www.internet-dsl-flatrate.de
ice-breaker ist offline   Mit Zitat antworten
Alt 18.04.2012, 23:21:38   #7 (permalink)
Erfahrener Benutzer
Benutzerbild von M3Y3R

ID: 336361
Lose-Remote

Reg: 08.05.2006
Beiträge: 1.610
Standard

Zitat:
Zitat von Yggxx Beitrag anzeigen
Kannst Du dir - wie ich - alles über OpenGeoDB selbst nach deinen Wünschen zusammenstellen
Okay, aber das hat den Nachteil, dass man die SQL-Tabelle immer aktuell halten muss. Das könnte man dann ja auch über einen CronJob lösen . Ist halt nur doof, wenn sich irgendwann die URL zum Dump ändert. ;-)

Zitat:
Zitat von ice-breaker Beitrag anzeigen
einfach die Longitude und Latitude Bedinung jeweils mit einem Wertebereich von bis und fertig.
Zur Berechnung des "angeblichen Umkreises" fehlt mir dann aber ein drittes Maß oder ich hab das ganze noch nicht verstanden.
Nehmen wir an, ich habe die PLZ "26871" auf dem Längengrad X und X und will alle PLZs im Umkreis von 10km. Wie berechnest du das dann?

Mir fehlt die Formel...
 

Geändert von M3Y3R (18.04.2012 um 23:28:21 Uhr)
M3Y3R ist offline   Mit Zitat antworten
Alt 19.04.2012, 00:51:17   #8 (permalink)
Gesperrt

mewcrazy eine Nachricht über ICQ schicken mewcrazy eine Nachricht über MSN schicken mewcrazy eine Nachricht über Skype™ schicken
Reg: 07.06.2009
Beiträge: 88
Standard

Keine Formel?

Das ist doch genau dein Job als Entwickler, das rauszufinden?
 

Geändert von mewcrazy (19.04.2012 um 00:51:48 Uhr)
mewcrazy ist offline   Mit Zitat antworten
Alt 19.04.2012, 08:09:17   #9 (permalink)
Erfahrener Benutzer
Benutzerbild von M3Y3R

ID: 336361
Lose-Remote

Reg: 08.05.2006
Beiträge: 1.610
Standard

Zitat:
Zitat von mewcrazy Beitrag anzeigen
Das ist doch genau dein Job als Entwickler, das rauszufinden?
Na, zu so später/früher Stunde nicht mehr und wenn ich am Tag über 8 Stunden entwickel bin ich abends froh, einfach im Inet zu surfen und evtl. für andere Sachen auf Anhieb eine Lösung finden, aber ich überlege mir mal was... ;-)

Es gibt ja Gott sei Dank, XAMPP oder VirtaulBox bzw. VmWare auf denen man Linux installieren könnte...
Aber mit Kanonen auf Spatzen schießen bringt auch nichts, also wird wohl XAMPP genutzt
 

Geändert von M3Y3R (19.04.2012 um 08:10:36 Uhr)
M3Y3R ist offline   Mit Zitat antworten
Alt 19.04.2012, 08:44:17   #10 (permalink)
ohne Vertrauen
Benutzerbild von Bububoomt

ID: 10361
Lose-Remote
Krank

Bububoomt eine Nachricht über ICQ schicken
Reg: 28.04.2006
Beiträge: 19.535
Standard

Also ich mußte i Studium noch für Datenbanken ein System erstellen, bei dem wasser/gas/strom leitungen definiert werden mußten und anhand einer Suche mußte dann auch festgestellt werden ob ein Rohr im Umkreis ist. Da war die berechnung auhc nciht trivial, da ja ein Rohr eine bestimmt dicke hat und ja zwischen zwei Punkten liegt...

Und dennoch war die Berechnung sehr fix, das schafft mysql sehr gut, da es jawenn die Abfrage gut ist Daten die gar nicht passen können schon herausfiltert und so die Menge der wirklichen berechnungen minimal sind.

Beispiel, wenn du ein Radius von 50km hast, und eine PLZ mit 1xxxx, kannst du alles mit PLZ>3 vernachlässigen.

Die Genauigkeit spielt hier eher die Rolle, denn nimmt man einfach den mittelpunkt eines Bezirks oder doch die Fläche?

Das es doch recht fix geht:
http://www.outdoornavigator.de/
-> Toren->Touren im Kartenausschnitt

Es hängt ganz davon ab, wie die daten gespeichert sind!
Bububoomt ist offline   Mit Zitat antworten
Alt 22.04.2012, 03:47:18   #11 (permalink)
Erfahrener Benutzer

ID: 118459
Lose-Remote

Reg: 20.04.2006
Beiträge: 4.530
Standard

Zitat:
Zitat von Papenburger Beitrag anzeigen
Na, zu so später/früher Stunde nicht mehr und wenn ich am Tag über 8 Stunden entwickel bin ich abends froh, einfach im Inet zu surfen und evtl. für andere Sachen auf Anhieb eine Lösung finden, aber ich überlege mir mal was... ;-)
Deine Aussagen zeugen nicht von besonderen Kenntnissen...

Zitat:
Zitat von Papenburger Beitrag anzeigen
Es gibt ja Gott sei Dank, XAMPP oder VirtaulBox bzw. VmWare auf denen man Linux installieren könnte...
Aber mit Kanonen auf Spatzen schießen bringt auch nichts, also wird wohl XAMPP genutzt
Ja und? Warum erzählst du uns das jetzt?

Zitat:
Zitat von Papenburger Beitrag anzeigen
Okay, aber das hat den Nachteil, dass man die SQL-Tabelle immer aktuell halten muss. Das könnte man dann ja auch über einen CronJob lösen . Ist halt nur doof, wenn sich irgendwann die URL zum Dump ändert. ;-)
Ist schon erstaunlich, wie oft die Orte ihre PLZ wechseln bzw. die Orte an andere Koordinaten rutschen, dass man das so oft updaten muss..

Zitat:
Zitat von Papenburger Beitrag anzeigen
das wird nicht funktionieren, da du innerhalb der MySQL-Datenbank alle PLZ speichern müsstest.
Und wo ist das Problem? Es gibt etwa 22.000 PLZ in Deutschland. Das ist doch nix...


Zitat:
Zitat von Papenburger Beitrag anzeigen
Derzeit bin ich bei einem Software-Unternehmen tätig, welches sich mit Bewerbermanagement-Systemen beschäftigt. Zu unseren Kunden zählen Zeitarbeitsfirmen, Personalvermittlungsagenturen und so weiter und von denen kommt leider auch immer wieder dieser Wunsch.
Dann arbeiten bei euch wohl keine fähigen Entwickler!

Zitat:
Zitat von Papenburger Beitrag anzeigen
Eine Möglichkeit wäre dies per Längen + Breitengrad zu ermitteln, aber selbst dies ist ziemlich Performancelastig und benötigt ebenfalls eine riesen Datenbank mit allen Standorten oder ein externen Anbieter was in den meisten Fällen nicht gewünscht ist oder sehr teuer werden könnte wegen Datenschutz oder Nutzungspauschale...
Schwachsinn. Man kann solche Datenbanken kaufen bzw. gibt es frei im Internet und so riesig sind die auch nicht. Wir haben eine Datenbank im Einsatz, die noch einige weitere Informationen über die Stadt enthält. Und das alles zusammen benötigt keine 4 MB Speicher.
Wenn man dann ein wenig Ahnung von SQL hat, ist es auch kein Problem eine relativ performante Query zu bauen, die einem die Ergebnisse ausspuckt.

Geändert von flaschenkind (22.04.2012 um 03:50:04 Uhr)
flaschenkind ist offline   Mit Zitat antworten
Alt 22.04.2012, 03:53:44   #12 (permalink)
Gesperrt

mewcrazy eine Nachricht über ICQ schicken mewcrazy eine Nachricht über MSN schicken mewcrazy eine Nachricht über Skype™ schicken
Reg: 07.06.2009
Beiträge: 88
Standard

Danke flaschenkind, du hast es auf den Punkt gebracht
 

Geändert von mewcrazy (22.04.2012 um 03:54:05 Uhr) Grund: alkohol :D
mewcrazy ist offline   Mit Zitat antworten
Alt 22.04.2012, 20:36:17   #13 (permalink)
Erfahrener Benutzer

ID: 12911
Lose-Remote

Reg: 20.04.2006
Beiträge: 292
Standard

Übrigens ist das Problem mit 10 MB An Daten und einem 120 KB script erledigt worden.
 
LoseAndMore.de ist offline Threadstarter   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Umkreis Suche bei User Suche defekt Requiem Bug-Report 13 24.02.2011 13:49:58
User-Suche (km-Umkreis) T-Flow Bug-Report 14 01.05.2008 13:01:36
100K für Mainzer + 50 Kilometer Umkreis Shirten Lose4Action 0 15.09.2007 08:54:19
[mysql/localhost] Mein MySql auf meinem PC macht Probleme 27o8 Sonstiges 4 01.07.2006 15:59:00


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:16:18 Uhr.