Umkreissuche mit Google-Koordinaten mit MySQL

Mit der nachfolgende Funktion kann die Entfernung zwischen 2 Punkten auf der Erdkugel berechnet werden.


CREATE FUNCTION `GoogleDistance_KM`(
geo_breitengrad_p1 double,
geo_laengengrad_p1 double,
geo_breitengrad_p2 double,
geo_laengengrad_p2 double ) RETURNS double
RETURN (6371 * acos( cos( radians(geo_breitengrad_p2) ) * cos( radians( geo_breitengrad_p1 ) )
* cos( radians( geo_laengengrad_p1 ) - radians(geo_laengengrad_p2) )
+ sin( radians(geo_breitengrad_p2) ) * sin( radians( geo_breitengrad_p1 ) ) )
);

Somit kann man ganz einfach in einer MySQL-Datenbank die Elemente ermitteln die zm Beispiel im Umkreis zu einem bestimmten Punkt liegen. Ich denke das Beispiel läßt sich auch leicht auf den SQL-Server oder auf eine Oracle-Datenbank übertragen.

Läßt sich dann ganz einfach benutzen:

CREATE TABLE `Adressen` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 60 ) NOT NULL ,
`address` VARCHAR( 80 ) NOT NULL ,
`geo_laengengrad` double NOT NULL ,
`geo_breitengrad` double NOT NULL
)

SELECT id, adresse, geo_laengengrad, geo_breitengrad
from adressen
where GoogleDistance_km(geo_breitengrad, geo_laengengrad, 40, -122) <= 100

Mehr zur Berechnung von Entfernungen, Peilung, Mittelpunkt etc gibts hier

Google-Maps und die Wasserstandsmeldung vom Nil

Nun in Google-Maps kann man eigentlich nicht die Wasserstandmeldung vom Nil erfahren.Aber ein paar Leute die nix zutun hatten, haben mit Hilfe von Google-Maps eine Webseite zusammengebaut mit der man den steigenden Meeresspiegel auf der nördlichen Halbkugel simulieren kann. Die kann gerade für die Leute interessant sein, die im Norden von Deutschland ein Haus kaufen wollen oder in 20 Jahren ein Standbad eröffnen (kann ja interessant sein zu wissen wo der Strand dann ist 🙂 )

Also einfach mal hier schauen: flood.firetree.net