Mehr

PostGIS: was ist effizienter: Einzel- oder Zweipunktsuche

PostGIS: was ist effizienter: Einzel- oder Zweipunktsuche


Ich habe verschiedene Ansätze zur Durchführung von Suchen gesehen. Welches ist der beste Ansatz zum Speichern der Daten für die Datenbankeffizienz:
Speichern von Längen- und Breitengradpunkten

Längengrad Breitengrad

vs Speichern eines generierten Punkts von beiden Längengraden Breitengraden?

PUNKT(#{Längengrad} #{Breitengrad})

Kontext:Schienen 3.2.18 Anwendung,postgresql 9.3.4,postgis 2.1.3
Zum Auffinden von Objekten sind zwei Arten von Abfragen durchzuführen:

  1. Punkt mit Radius und
  2. Innerhalb eines Polygons

Instinktiv würde ein einzelner Punkt weniger Indexierung bedeuten.
Der folgende Kommentar von Jason Scheirer ist derselben Meinung:

Ich würde denken, dass es effizienter wäre, die Punktgeometrie als Spaltenwert vorgeneriert zu haben, als sie für jede Zeile in jeder Abfrage zu erstellen.

Das bedeutet jedoch nicht, dass es zugrunde liegende Mechaniken gibt, insbesondere für das Polygon, die in einem Modus effizienter sind als im anderen…


Sie erwähnen PostGIS. Wenn Sie PostGIS verwenden möchten, müssen Sie mit den mit PostGIS gelieferten räumlichen Funktionen und dem räumlichen Index den PostGIS-Geometrie- oder geografischen Datentyp verwenden.

Wenn Sie Breiten- und Längengrad in separaten Spalten speichern, müssen Sie das Rad neu erfinden, um räumliche Berechnungen durchzuführen.

Und ein 2D-Punkt besteht aus Längen- und Breitengrad oder x und y. Es gibt nichts wie einen Längengrad- oder Breitengradpunkt oder x-Punkt oder y-Punkt.


Schau das Video: Построяване на трапец в правоъгълна координатна система - пример