Es gibt zwei MSSQL Tabellen, die räumliche Daten enthalten:
- AddressPoints - enthält geolocation von Adressen (POINT Struktur)
- Pipeline - enthält Geolokation der Rohrleitung (LINESTRING Struktur)
Abstand zwischen dem Punkt und dem nächsten LINESTING
Die AddressPoints-Tabelle sollte Abstand vom nächsten Pipeline-Segment enthalten. Ich versuche gerade, effiziente Abfrage zu schreiben. Ich endete mit folgenden Abfrage nach oben:
select a.ogr_fid, min(a.geom.STDistance(p.geom))
from AddressPoints a, Pipeline p
group by a.ogr_fid
jedoch AddressPoints und Pipeline Tabellen riesige Menge an Daten enthalten, die Ausführungsgeschwindigkeit auswirkt. Beide Tabellen enthalten räumliche Indizes, aber ich bin nicht sicher, ob diese Abfrage sie verwendet.
'MIN' schlägt vor, dass Sie nach der Entfernung des nächsten Nachbarn suchen, nicht nach allen Entfernungen. [In diesem MSDN-Artikel] (https://msdn.microsoft.com/en-us/library/ff929109.aspx) wird erläutert, wie Sie eine Abfrage für den nächsten Nachbarn schreiben, die räumliche Indizes verwendet. Die Anforderungen sind eher streng –