Wie verwenden Sie MySQL-spatial-Abfragen finden alle Datensätze, in X radius?
Ich habe eine Tabelle in einer MySQL-Datenbank mit einem räumlichen geometrie-Spalte vom Typ POINT. Ich möchte in der Lage sein zu nehmen, ein Punkt in der Mitte der Karte und finden Sie alle Datensätze innerhalb von X Meilen (oder was auch immer-Abstand). Ich kann nicht scheinen zu finden, ein gutes Beispiel oder eine Erklärung, wie dies zu tun, nicht zu bekommen, stark in der geometrischen Mathematik. Ich bin froh, diese Strecke zu fahren, aber würde erstmal gerne versuchen und lösen es mit einer echten räumlichen Datenbank.
Wollte nur zu beachten, dass Recht keine, die ich zu lösen versuche, dies mit der Technik (nicht präzise, sondern nur versuchen das jetzt) ein polygon mit Datenpunkte. Meine Abfrage sieht wie folgt aus. SELECT * from business WHERE MBRContains(GeomFromText('Polygon((30 -100, 30 -90, 25 -90, 25 -100, 30 -100))'), geolocation -) ich habe einen Datensatz in der Tabelle mit einer Länge von 39 und einer langen -94. Wie ich es verstehe, dies sollte zeigen, bis in das resultset und das tut es nicht. Also das ist in einem anderen Winkel auf die Frage.
Du machst es falsch (oder nur kompliziert). Die Berechnung der bounding-box in PHP mit github.com/anthonymartin/GeoLocation.php und dann die Abfrage wie
Du machst es falsch (oder nur kompliziert). Die Berechnung der bounding-box in PHP mit github.com/anthonymartin/GeoLocation.php und dann die Abfrage wie
WHERE lat BETWEEN minL AND maxL AND lon BETWEEN minO AND maxO
. Das ist Platz suchen, statt ein Kreis, aber Ihre web-Karte ist rechteckig sowieso, nicht wahr?InformationsquelleAutor Preston Crawford | 2010-07-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wird es nicht funktionieren, weil MySQL noch nicht wirklich implementiert, den code um diese Arbeit zu machen. Benutzen Sie nur bounding-box-Abfragen.
Feststellen, es gibt keine hier aufgelisteten Funktionen:
http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html
Ich würde empfehlen PostGIS oder Spatialite statt.
Vereinbart - die Dinge haben sich geändert mit MySQL 5.6.1 aber habe ich noch nicht getestet, aber entweder
Ich sehe Tonnen von Funktionen aufgeführt, die Ressource. Können Sie das klären?
InformationsquelleAutor TheSteve0