<#> — Returnerar 2D-avståndet mellan A- och B-begränsningsrutorna.
double precision <#>(
geometry A , geometry B )
;
Operatorn <#>
returnerar avståndet mellan två avgränsningsrutor med flytande punkt, eventuellt läser dem från ett spatialt index (PostgreSQL 9.1+ krävs). Användbart för att göra närmaste granne ungefärlig avståndsordning.
![]() |
|
Denna operand kommer att använda alla index som kan finnas tillgängliga på geometrierna. Den skiljer sig från andra operatorer som använder spatiala index genom att det spatiala indexet endast används när operatorn är i ORDER BY-satsen. |
![]() |
|
Indexet fungerar bara om en av geometrierna är en konstant, t.ex. ORDER BY (ST_GeomFromText('POINT(1 2)') <#> geom) istället för g1.geom <#>. |
Tillgänglighet: 2.0.0 -- KNN endast tillgängligt för PostgreSQL 9.1+
SELECT * FROM ( SELECT b.tlid, b.mtfcc, b.geom <# > ST_GeomFromText('LINESTRING(746149 2948672,745954 2948576, 745787 2948499,745740 2948468,745712 2948438, 745690 2948384,745677 2948319)',2249) As b_dist, ST_Distance(b.geom, ST_GeomFromText('LINESTRING(746149 2948672,745954 2948576, 745787 2948499,745740 2948468,745712 2948438, 745690 2948384,745677 2948319)',2249)) As act_dist FROM bos_roads As b ORDER BY b_dist, b.tlid LIMIT 100) As foo ORDER BY act_dist, tlid LIMIT 10; tlid | mtfcc | b_dist | act_dist -----------+-------+------------------+------------------ 85732027 | S1400 | 0 | 0 85732029 | S1400 | 0 | 0 85732031 | S1400 | 0 | 0 85734335 | S1400 | 0 | 0 85736037 | S1400 | 0 | 0 624683742 | S1400 | 0 | 128.528874268666 85719343 | S1400 | 260.839270432962 | 260.839270432962 85741826 | S1400 | 164.759294123275 | 260.839270432962 85732032 | S1400 | 277.75 | 311.830282365264 85735592 | S1400 | 222.25 | 311.830282365264 (10 rows)