art-d-sign
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 04.05.2004, 20:53   #1
TP-Veteran
 
Benutzerbild von Scriff
 
Registriert seit: Nov 2002
Ort: bei Stuttgart (Esslingen)
Scriff macht alles soweit korrekt
Arrow

Suche mit Kilometerradius


Hallole,

hat jemand eventuell ne Ahnung wie man eine Suche auf ein Datenbestand mit Kilometerradius verfahren kann.

ein Beispiel:
Ich suche aus einem Datenbestand einen Ort der Bluimen verkauft, und nun möchte ich das er mir aus diesen Datenbestand zB.alle Blumenläden die im Umkreis von zB.20km von meinen angegebenen Ort auch mit ausgibt.

Hab echt kein Plan wie ich da rangehen soll.
Scriff ist offline   Mit Zitat antworten


Alt 04.05.2004, 21:39   #2
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Schon mal was von Geraden gehört? 5. Klasse, aber immerhin nützlich.
Auf jeden Fall musst du die Datenbank so gestalten, daß du ein virtuelles Gitter hast, wie auf der Karte. Danach kannst du flott mit dem Radiuswert nach Orten suchen.
Strogij ist offline   Mit Zitat antworten
Alt 04.05.2004, 23:17   #3
TP-Specialist
 
Benutzerbild von Master_T2
 
Registriert seit: Oct 2002
Ort: Übach-Palenberg
Master_T2 bringt sich richtig einMaster_T2 bringt sich richtig ein
Alssoooooo in anbetracht, dass ich gestern Mathe LK Abiklausur geschrieben hab und da ne Menge Vektorrechnung vorkam könntest du das ganze vielleicht so aufbauen:

Du nimmst dir einen Ort als Bezugsort. Bsp.: Ort X. Wenn du jetzt einen neuen Ort hinzufügst in die DB, dann speicherst du in der Tabellen die Entfernung zum Bezugsort ab. Wenn Ort Y jetzt 5 km in x-Richtung und 10km in y-Richtung entfernt ist, dann hat der Ort Y die Koordinaten Y(5/10). Wir nehmen an, dass es noch einen Ort Z gibt mit den Koordinaten Z(12/11).

Um jetzt alle Orte zu ermitteln, die im Radius von 20 km um Punkt Y liegen musst du den Differenzvektor zu jedem Punkt bilden. Der Betrag des Differenzvektors sagt dir dann, ob der Punkt im Radius r liegt.

Bsp.: Liegt Punkt Z im 20km Radius von Y:
(5/19) - (12/11) = (-7/-1)
Differenzvektor ist also (-7/-1)
Der Betrag: |r| = Wurzel(a² + b²)
Also: r = Wurzel(50) = 7,07 km

Somit liegt der Punkt im Radius. Jetzt bastelst du dir eine Schleife und machst das mit jedem Punkt und feddisch...

Hoffe du hast es verstanden
__________________
Grüße aus Übach-Palenberg
Tim

WEB.ASSISTANTS IT-SOLUTIONS
www.web-assistants.de

Hängt das doch mal an eine beliebige PHP-Datei: ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
Master_T2 ist offline   Mit Zitat antworten
Alt 04.05.2004, 23:36   #4
TP-Junior
 
Registriert seit: May 2004
Ort: Seesen
Skar Swift macht alles soweit korrekt
Ich würde die Beziehungen zwischen den einzelnen Punkten eventuell noch in einer extra-Tabelle in der Datenbank speichern, dann geht der Server nicht so schnewll in die Knie, weil er nciht jede Mal alle sneu berechnen muss!
__________________
"Ein Tag, an dem du nicht lächelst, ist ein verlorener Tag."
- Charlie Chaplin
Skar Swift ist offline   Mit Zitat antworten
Alt 04.05.2004, 23:44   #5
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
@Master_T2 hehe würde man jede Software so entwickeln, wären die Prozessoren drei mal so "schwach" wie jetzt Es ist einfach zu verwirrend an einer Seite wegen dem Bezugsort und zweitens sind die Rechnungen zu komplex - Wurzel ziehen und Co... und zwar zu jedem Datensatz! Außerdem lässt sich solches System schwer erweitern, wenn man weitere Aufgaben berechnen möchte. Man sollte flexibel und praktisch denken.
Strogij ist offline   Mit Zitat antworten
Alt 04.05.2004, 23:47   #6
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Zitat:
Original geschrieben von Skar Swift
Ich würde die Beziehungen zwischen den einzelnen Punkten eventuell noch in einer extra-Tabelle in der Datenbank speichern, dann geht der Server nicht so schnewll in die Knie, weil er nciht jede Mal alle sneu berechnen muss!
Wenn es konstante Werte wären, bräuchte man es gar nicht dynamisch zu machen. Mit der Extra-Tabelle kommt mit der Zeit nur Datensalat/-müll raus, denn Datensätze werden ja hinzugefügt und diese E-Tabelle aktualisieren kostet noch mehr Zeit.
Strogij ist offline   Mit Zitat antworten
Alt 05.05.2004, 00:00   #7
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Zitat:
Alssoooooo in anbetracht, dass ich gestern Mathe LK Abiklausur geschrieben hab
Gruß an den Kollegen! Bei mir wars Englisch-LK . Heute Geschichte-GK und am Donnerstag LK Bio.

Viel Erfolg für die eine oder zwei anderen Klausuren, die du auch noch schreiben musst!

----------

Zitat:
würde man jede Software so entwickeln, wären die Prozessoren drei mal so "schwach" wie jetzt Es ist einfach zu verwirrend an einer Seite wegen dem Bezugsort und zweitens sind die Rechnungen zu komplex - Wurzel ziehen und Co...
Na komm...sowas rechnet dir selbst ein 20 Jahre alter Taschenrechner in ein paar Milisekunden aus.

Und wie willst du es überhaupt sonst machen? Es gibt keine noch einfachere Formel, um den Abstand zwischen zwei Punkten auszurechnen.
seb ist offline   Mit Zitat antworten
Alt 05.05.2004, 08:41   #8
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Scheiße, wegen dem Umbau im Forum ist mein Beitrag weg! Auf jeden Fall widerspreche ich(und auch viele andere Programmierer) dir seb, wenn du Computer-Algorithmen und Mathematik-Formeln in einen Topf steckst.
Strogij ist offline   Mit Zitat antworten
Alt 05.05.2004, 08:59   #9
TP-Veteran
 
Benutzerbild von fettmme
 
Registriert seit: Feb 2002
fettmme bringt sich richtig einfettmme bringt sich richtig ein
Was Du suchst sind Geodaten. Sie bilden einen festen Koordinatenpunkt auf der Erde. Mittels dieser Koordinaten kannst Du ganz leicht eine Entfernung berechnen.

Unter http://opengeodb.de/ gibt's eine kostenlose Datenbank und Beispielscripte.
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/
fettmme ist offline   Mit Zitat antworten
Alt 05.05.2004, 09:04   #10
TP-Veteran
 
Benutzerbild von Scriff
 
Registriert seit: Nov 2002
Ort: bei Stuttgart (Esslingen)
Scriff macht alles soweit korrekt
Arrow

@fettmme
jo das sieht vielversrechend aus...das schau ich mir mal näher an.

Die Vektorenberechnung stell ich mir etwas zu unflexibel und performancefressend vor.
Die Sache mir der Geraden muss ich dann auch mal in Ruhe ausprobieren.

Auf jeden Fall wart ihr mir ne grosse Hilfe...na mal sehn ob noch was kommt...
eventuell hat ja jemand sowas schonmal im kleinen Sinne gemacht
Scriff ist offline   Mit Zitat antworten
Alt 05.05.2004, 09:30   #11
TP-Veteran
 
Benutzerbild von Scriff
 
Registriert seit: Nov 2002
Ort: bei Stuttgart (Esslingen)
Scriff macht alles soweit korrekt
Unhappy

Achherje
Haste mal versucht das Dump einzuspielen (3MB)
Da hängt sich ja mein Rechner auf

Gibt es da ein Trick oder muss ich das Dump lieber unterteilen
Scriff ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Suche mit Kilometerradius Suche mit Kilometerradius
« Bildwechsel automatisch und zufällig | Webmailer »

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

Erweiterte Suche
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:15 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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

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