Frage

Ich habe für Punkt in Polys in Postgis gearbeitet, und ich habe diese Funktion:

select * from table_name wo ST_Contains (Spalte, st_setsrid (st_makepoint (-92,095109, 46,804100), 4326));

die Spalte ein multipoly (((Punkte)))

Ich versuche, einen Weg zu finden, eine ähnliche Übung mit MySQL zu tun, und fragte mich, ob es ähnliche Funktionen war, dies zu tun. Die Entwickler-Website für MySQL ist sehr begrenzt mit den Beschreibungen und Dokumentation auf der Multipolys.

Hat jemand so etwas getan?

War es hilfreich?

Lösung

MySQL nicht viel räumlicher Abfragen implementieren - ich weiß nicht, für sicher enthalten, aber es gibt Möglichkeiten, es annähert und andere Funktionen. Zum Beispiel können Sie Abstände zwischen den Punkten tun, indem Sie alle Ergebnisse mit den Koordinaten in einem bestimmten Rechteck ziehen und dann die Berechnung der Entfernung wie hier. Sie auch Rechtecke für eine Annäherung an Ihrem contains Problem verwenden können. Zunächst wird eine allgemeinere WKT Syntax für Ihre wählen:

select * from table_name where contains(the_polygon, GeomFromText('POINT(12.3 45.6)');

Ich denke, die offene Spezifikation für contains nicht implementiert ist, aber es ist eine MySQL-Funktion eines Minimum für die Verwendung von Rechteck begrenzt anzunähern, ob Ihr Punkt ist im Polygon:

select * from table_name where MBRContains(the_polygon, GeomFromText('POINT(12.3 45.6)');

Ich habe auf MySQL eine Menge Rechtecke in der Regel am Ende mit, weil es einfach ist, die äußeren Grenzen des Koordinatensatzes zu berechnen. Insgesamt PostGIS ist viel besser, aber man kann ein paar Cross-Datenbank Dinge tun, wenn Sie zu haben.

UPDATE : Nach dieser Frage gebeten wurde, ein schöne Zusammenfassung opengeo.org geschrieben wurde; es scheint, dass selbst dann, wenn es nicht offensichtlich ist oder oft behauptet MySQL MBR verwendet. Schauen Sie auch in der nativen Postgres Typen point, lseg, box, path, polygon, und circle wenn Sie mehr über verstehen wollen, wie PostGIS funktioniert und warum seine 2D-Feature-Implementierer eine kürzere Reihe im Allgemeinen zu hacken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top