php.de
Alt 22.12.2004, 12:05  
Ypsillon
Gast
 
Beiträge: n/a
Standard Geodaten

Hallo,

also ich hab' hier jetzt eine datenbank die alle Gemeinden und Städte mit Koordinaten angibt. Ich möchte nun folgendes realisieren:

Ich will alle Datensätze in meiner Datenbank rausholen wo die PLZ um Umkreis von 10 KM liegt.

Ich hab da mehrere Probleme:
Code:
Wert1: 49.61
Wert2: 7.15
1) Weis ich nicht wie ich da jetzt einen Abstand in KM ausrechen soll
2) Wie realisiere ich das mit der Suche. Die Datenbank mit den Koorinaten ist >3 MB. Wenn ich jetzt jede PLZ aus der DB hole und den dann mit der Formel vergeiche, ob die PLZ aus der DB in 10 KM Umkreis zu der PLZ leigt, die ich angebe, dann macht mir das System doch schlapp.

Wer kann mir einen Tip geben wie ich das relisiere?

Danke!

Marc
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.12.2004, 12:07  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard

schon mal hier geguckt?
http://opengeodb.de/software/

Wenn du die db schon nutzt, dann kannst du ja auch den Rest anschauen?! :wink:
__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline  
Alt 22.12.2004, 12:09  
Gast
 
Beiträge: n/a
Standard

MySQL macht nicht so schnell schlapp

Du wirst dich wundern, was MySQL alles kann....
 
Alt 22.12.2004, 12:10  
Ypsillon
Gast
 
Beiträge: n/a
Standard

THX

Code:
<?php

$Erdradiuskm = 6370;
$pi180 = Pi() / 180;
$pi2 = Pi() / 2;

// Beispielwerte für Umkreissuche (20 km)
// um Frankfurt am Main
$BREITE = 50.1075;
$LAENGE = 8.67444;
$RADIUS = 20;

$sql = "
SELECT *,
(
$Erdradiuskm *
($pi2 - ATAN((SIN($BREITE * $pi180) * Sin(breite * $pi180) + Cos($BREITE
* $pi180) * Cos(breite * $pi180) * COS(($LAENGE - laenge)*$pi180)) /
SQRT( 1 - POW( (SIN($BREITE*$pi180) * Sin(breite * $pi180) + Cos($BREITE
* $pi180) * Cos(breite * $pi180) * COS( ($LAENGE - laenge) *
$pi180)),2))))
)
AS km
FROM koord
HAVING km <= $RADIUS
ORDER BY km
";

?>
 
Alt 22.12.2004, 12:13  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard

wie lange dauert denn eine solche Abfrage bei dir?
__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline  
Alt 22.12.2004, 12:16  
Ypsillon
Gast
 
Beiträge: n/a
Standard

wart ma ich muss erst noch die Geodatenbank reindumpen und die routine bauen. Ich schreibs Dir dann. Das isn PIII 733 hier. mal sehen.

Ich meld mich.

Marc
 
Alt 22.12.2004, 12:16  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard Re: Geodaten

Deine Aussage war:
Zitat:
Zitat von Ypsillon
dann macht mir das System doch schlapp
daher...
__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline  
Alt 22.12.2004, 12:22  
Ypsillon
Gast
 
Beiträge: n/a
Standard

Ja du hast recht , aber ich hab falsch gedacht. ich dachte ich muss jede PLZ rausholen und vergleichen, weisst.

Aber man errechnet das mit den koorinaten vorher und holt dann nur die PLZs raus, die man braucht.

Marc
 
Alt 22.12.2004, 12:23  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard

__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline  
Alt 22.12.2004, 13:09  
Ypsillon
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von supertramp
versteh ich net

Jedenfalls hängts davon ab, wieviel km umkreis man angibt, ich kan jedenfalls bei z.b. 50 KM keine Verzögerung im Seitenaufbau erkennen. Abfrage < 0,2 Sek.

Danke

Marc
 
 


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
GeoDaten / OpenGeoDB tinchen PHP Tipps 2007 14 07.03.2007 11:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php schnelle umkreissuche länge breite, http://www.php.de/php-tipps-2004-2/14606-geodaten.html, php geodaten -google, geodaten umkreissuche php, php geodaten, geodaten vergleichen im umkreis von php, geodaten für umkreissuche, php geodata to kilometer, php get geodata of url, geodaten breite, erdradiuskm * ($pi2 - atan((sin($breite * $pi180) * sin(plz.breite * $pi180) cos($breite * $pi180) * cos(plz.breite * $pi180) * cos(($laenge - plz.laenge)*$pi180)) / sqrt( 1 - pow( (sin($breite*$pi180) * sin(plz.breite * $pi180) cos($breite * $pi180) * co

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:37 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.