Suche eine Datenbank von Koordinaten-gebundenen Daten für einen beliebigen polygonalen Bereich

StackOverflow https://stackoverflow.com/questions/624135

  •  05-07-2019
  •  | 
  •  

Frage

Ich habe eine relationale Datenbank, in der jeder Eintrag markiert ist, als ein Punkt mit Längen-und breitengradkoordinaten.Ich gebe dem Benutzer die Möglichkeit, markieren Sie eine beliebige polygon auf einer Karte, und Sie möchten, um alle Einträge in der polygonale Form.

Was wäre der beste Weg, dies zu erreichen?

Auch, es könnte sich lohnen, darauf hin, dass kleine Fehler ok sind (dh.wenn es ist ein effektiver Weg, um schalten Sie das polygon in eine Reihe von Rechtecken, dann ist das in Ordnung).

War es hilfreich?

Lösung

Mit räumlichen Erweiterungen, die meisten Datenbanken haben diese. In MySql kann man sie nur mit MyISAM-Tabellen verwenden, die nicht transaktionale sind.

http://dev.mysql.com/doc /refman/5.0/en/spatial-extensions.html

Andere Tipps

Eine Möglichkeit, um schnell zu reduzieren auf die Anzahl der Punkte, die zu berücksichtigen ist, um zu berechnen, umschließendes Rechteck für das polygon (d.h.nur min-x, min. y, max x, max y der Punkte im polygon), und wählen Sie dann für die Punkte, die innerhalb der bounding rectangle (d.h.wobei x zwischen min-x max-x und dieselbe für y).

Natürlich sind nicht alle diese Punkte sind unbedingt innerhalb des Polygons, aber jetzt können Sie hone code.

Ein alter Hack:

Zählen der Anzahl der Male einer Linie <point far away> zu <point in question> einem der Begrenzungssegmente des Polygons überquert.

  • Auch Zahlen bedeuten, der Punkt außerhalb des Polygons ist
  • Ungerade Zahlen bedeuten, es innerhalb des Polygons ist
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top