Anzeige - [Interessiert an einer Anzeige?]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> Umkreissuche & Entfernung
Daniel Cieslar
novinet Websolutions
Geschrieben am: Mi 30.04.2008, 09:55
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 709
Mitglied seit: 3.10.2005


Hallo,

jetzt mal was für die Freaks unter uns... ich scheitere derzeit an der Abstandsentfernung einer Umkreissuche.

Folgende Sachlage: ich habe eine DB mit plz und Orten der User sowie deren longitude && latitude (in Google-Maps wird alles perfekt angezeigt).

Nun möchte ich ne umkreissuche machen, aber die Abstände sind wohl falsch... er zeigt mir auch komische Entfernungen an etc. Ich möchte das ganze gerne ohne zusätzliche geo-DB Datenbanken lösen, das muss ja zu machen sein. Hier mein Ansatz:

$daniel = read(db_q(user,"WHERE user = 'daniel'")); // Gibt mir die Daten des Users Daniel raus als Objekt.


$laenge = $daniel->map_longitude; // Longitude
$breite = $daniel->map_latitude; // Latitude
$radius = 6367.4; // Erdradius
$umkreis = 50;

$dbQ = db_q_single(user,"id,user,zip,city,(6367.41*SQRT(2*(1-cos(RADIANS(map_latitude))*cos(".$breite.")*(sin(RADIANS(map_longitude))*sin(".$laenge.")+cos(RADIANS(map_longitude))*cos(".$laenge."))-sin(RADIANS(map_latitude))*sin(".$breite.")))) AS Distance","WHERE map_longitude IS NOT NULL && zip IS NOT NULL && country = 'Deutschland' && (ACOS((SIN(radians($breite))*SIN(RADIANS(map_latitude))) + (COS(radians($breite))*COS(RADIANS(map_latitude))*COS(RADIANS(map_longitude)-radians($laenge)))) *6371) <= '$umkreis' ORDER BY Distance");
while($res = read($dbQ))
{.....}

Lasst euch nicht von meinen sql-Funktionen abschrecken, die verpacken nur die eigentlichen SQL-Befehle in schnellere Programmierabfolgen.. sonst nichts.

Ich habe auch mal gelesen, dass man die daten erst in RAD umwandeln muss - ich weiss net. Bin gerne bereit auch für ein fertiges Script was zu bezahlen, mein Ziel ist es einfach eine richtige Abfrage zu erhalten.

Dankeschön im Vorraus, Daniel



--------------------
www.calcolo.de - Calcolo 3.0 mit PDF-Rechnungen, Angebote, Mahnungen,...

www.pagepeel.de - das Original

www.novinet.de Websolutions Software Entwicklung, Consulting, Design - wir erstellen Ihren maßgeschneiderten Internetauftritt
Top
PMEmail PosterUsers WebsiteICQ
Top
 
 
jAuer
Jürgen Auer - freiberufl. Programmierer
#2 Geschrieben am: Mi 30.04.2008, 10:06 (+00:10)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 2089
Mitglied seit: 4.02.2006


Dies

CODE
(ACos((SIN(A.latitude_r) * SIN(@i_latitude_r)) +
(COS(A.latitude_r) * COS(@i_latitude_r) * COS(@i_longitude_r - A.longitude_r))
) * 6378.137) As Distance


ermittelt die Entfernung zwischen zwei Punkten.



--------------------
Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.

server-daten: Web-Datenbanken als Online - CRM - Lösung.
Konzentrieren Sie sich auf Ihr Kerngeschäft - nutzen Sie eine schlanke, schnelle Online-Datenbank von verschiedenen Standorten.
Top
PMEmail PosterUsers Website
Top
 
Daniel Cieslar
novinet Websolutions
#3 Geschrieben am: Mi 30.04.2008, 10:42 (+00:35)
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 709
Mitglied seit: 3.10.2005


Danke, hat funktioniert - hab jetzt auch das mit der Entfernung raus... und zum Schluss hab ich gemerkt, dass ich gestern auch schon genau die Lösung hatte mich aber vertippt habe... so, das hat mich ez 10 Stunden gekostet und ein wenig Geld... aber die Lösung hab ich *lach*

Wen es interessiert:
CODE

$dbQ = db_q_single(user,"id,user,zip,city,(ACos((SIN(map_latitude_rad) * SIN('$breite_rad')) + (COS(map_latitude_rad) * COS(".$breite_rad.") * COS(".$laenge_rad." - map_longitude_rad))) * $radius) AS Distance","WHERE (ACos((SIN(map_latitude_rad) * SIN('$breite_rad')) + (COS(map_latitude_rad) * COS(".$breite_rad.") * COS(".$laenge_rad." - map_longitude_rad))) * $radius) <= '$umkreis' ORDER BY Distance");




Gruß, D.


--------------------
www.calcolo.de - Calcolo 3.0 mit PDF-Rechnungen, Angebote, Mahnungen,...

www.pagepeel.de - das Original

www.novinet.de Websolutions Software Entwicklung, Consulting, Design - wir erstellen Ihren maßgeschneiderten Internetauftritt
Top
PMEmail PosterUsers WebsiteICQ
Top
 
danwip
#4 Geschrieben am: Mi 30.04.2008, 19:46 (+09:03)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 153
Mitglied seit: 15.02.2007


Womit bekommt man aus der PLZ und dem Ort eigtl die longitude und die latidude heraus?
Kann mir nicht vorstellen, dass ein User das eingeben muss.
Gibt es da fertige Datenbanken oder kann man das über Google Maps verwirklichen?


--------------------
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Informationen aus Wissenschaft, Natur und Technik

Tauscht hier Eure Tipps, Tricks und Ideen aus.

wippler.tecdesign
Hervorragendes Webdesign und Programmierung absolut preiswert. Denn Ihre Zufriedenheit ist unser Ziel. Wir begrüßen Sie auf unseren Seiten.
Top
PMEmail Poster
Top
 
jAuer
Jürgen Auer - freiberufl. Programmierer
#5 Geschrieben am: Mi 30.04.2008, 20:03 (+00:17)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 2089
Mitglied seit: 4.02.2006


QUOTE (danwip @ Mi 30.04.2008, 19:46)
Womit bekommt man aus der PLZ und dem Ort eigtl die longitude und die latidude heraus?
Kann mir nicht vorstellen, dass ein User das eingeben muss.
Gibt es da fertige Datenbanken oder kann man das über Google Maps verwirklichen?

Ich nutze innerhalb von server-daten zwei verschiedene Varianten:

Wenn ein Nutzer eine Postleitzahl eingibt und alles in der Umgebung von ... km sehen will, dann genügt es, der Postleitzahl Geokoordinaten zuzuweisen. Das kann man über eine zentrale Variante der OpenGeoDb bereitstellen, die von verschiedenen Kunden gemeinsam genutzt wird. Allerdings muß man sich da Lösungen für den Fall unscharfer Orte (Berl, Beerlin), mehrfacher Orte (Achim), ungenauer Postleitzahlen (102) und ungültiger Postleitzahlen (10248) überlegen.

Eine zweite Variante läuft über google: Beim Eingeben der Daten kann ein Nutzer seine Straße, PLZ und Ort eingeben, per Klick eine google-Maps aufrufen und dort die genauen Geokoordinaten bestätigen bzw. übernehmen.

Auf meiner Startseite ist unter 'Firmen mit mehreren Mitarbeitern' so etwas verlinkt. Das Stammdaten-Formular ist anonym aufrufbar und enthält diese Funktionalität.


--------------------
Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.

server-daten: Web-Datenbanken als Online - CRM - Lösung.
Konzentrieren Sie sich auf Ihr Kerngeschäft - nutzen Sie eine schlanke, schnelle Online-Datenbank von verschiedenen Standorten.
Top
PMEmail PosterUsers Website
Top
 
danwip
#6 Geschrieben am: Mi 30.04.2008, 20:09 (+00:05)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 153
Mitglied seit: 15.02.2007


OK, vielen Dank.


--------------------
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Informationen aus Wissenschaft, Natur und Technik

Tauscht hier Eure Tipps, Tricks und Ideen aus.

wippler.tecdesign
Hervorragendes Webdesign und Programmierung absolut preiswert. Denn Ihre Zufriedenheit ist unser Ziel. Wir begrüßen Sie auf unseren Seiten.
Top
PMEmail Poster
Top
 
Daniel Cieslar
novinet Websolutions
#7 Geschrieben am: Fr 2.05.2008, 11:50 (+39:41)
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 709
Mitglied seit: 3.10.2005


Ganz einfach gehts so:

CODE

$content = file_get_contents("http://maps.google.com/maps/geo?q=,".city.",".country."&output=csv&key=$deinkey");
list ($ka, $ka2, $Lat, $Lon) = split('[,]', $content);


Lat und Lon sind die gesuchten werte ;-)

Gruß, D.




--------------------
www.calcolo.de - Calcolo 3.0 mit PDF-Rechnungen, Angebote, Mahnungen,...

www.pagepeel.de - das Original

www.novinet.de Websolutions Software Entwicklung, Consulting, Design - wir erstellen Ihren maßgeschneiderten Internetauftritt
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/24233

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Foren-Betreiber haftet für verspätete Entfernung Sascha Ahlers 649 1 Fr 17.06.2005, 20:35




Anzeige - [Interessiert an einer Anzeige?]



Anzeigen




cyon Webhosting



[Interessiert an einer Anzeige?]