Mailinglisten-Archive |
Moin, nächstes Problem: ich möchte eine "fuzzy" Suche nach Ortschaften ermöglichen. Dafür habe ich eine MySQL Tabelle mit Orten, jeweils id name lgrad bgrad z.B. 116 Hintertupfingen 47:51:00 08:51:00 Die Längen- und Breitengrade sind, um Rundungsfehler zu vermeiden, erstmal als TIME abgespeichert, das läßt sich aber problemlos ändern. Was ich jetzt machen möchte ist eine Select-Abfrage nach dem Stil SELECT stadt2 from orte WHERE 80km < distance(Hintertupfingen,stadt2) < 100km Problem: Mit dem Pythagoras kommt man hier nicht sehr weit, da die Längen-und Breitengrade nicht exakt parallel sind - eine Minute (1/60 Grad) Rechenfehler sind ca. 2km und das wird bei meiner Anwendung zu viel, vor allem für kleinere Entfernungen. Ich habe hier ein Perl-Skript welches ca 20 Zeilen lang mit cosinus und sinus jongliert, und damit die Entfernung zwischen zwei Orten ausrechnen kann. Mit dem richtigen Syntax kriege ich das sicherlich portiert, aber ... Frage: - Macht das Sinn? Ich denke schon, denn sonst müßte ich jedesmal 40.000 Städte rausselektieren und die Berechnung extern machen. - Geht MySQL überhaupt so weit, daß man dort richtige Prozeduren schreiben kann? - Was gibt es sonst noch für Möglichkeiten? Die Datenbank wechseln hatte ich eigentlich nicht vor ... -- `Man sollte dem Verantwortlichen für ILOVEYOU alles http://www.linuxfaq.de mögliche antun, aber wahrscheinlich wird bloß http://www.hitchhikers.de seine Firma zweigeteilt." -- Usenet http://www.pinguin.conetix.de
php::bar PHP Wiki - Listenarchive