Loading...
Loading...
Find nearest features efficiently using PostGIS KNN (<->) and distance ordering (with SRID/unit guidance).
npx skill4agent add mmbmf1/geospatial-skills postgis-nearest<-><-><-><->geographyCREATE INDEX IF NOT EXISTS features_geom_gix ON features USING gist (geom);-- point is EPSG:4326 here
WITH p AS (
SELECT ST_SetSRID(ST_MakePoint($1, $2), 4326) AS geom
)
SELECT f.*
FROM features f, p
ORDER BY f.geom <-> p.geom
LIMIT 1;WITH p AS (
SELECT ST_SetSRID(ST_MakePoint($1, $2), 4326) AS geom
)
SELECT f.*
FROM features f, p
ORDER BY f.geom <-> p.geom
LIMIT 10;WITH p AS (
SELECT ST_SetSRID(ST_MakePoint($1, $2), 4326) AS geom
)
SELECT
f.*,
ST_Distance(f.geom::geography, p.geom::geography) AS distance_m
FROM features f, p
ORDER BY f.geom <-> p.geom
LIMIT 1;WITH p AS (
SELECT ST_SetSRID(ST_MakePoint($1, $2), 4326) AS geom
)
SELECT f.*
FROM features f, p
WHERE ST_DWithin(f.geom::geography, p.geom::geography, 5000) -- 5km
ORDER BY f.geom <-> p.geom
LIMIT 1;WITH p AS (
SELECT ST_Transform(
ST_SetSRID(ST_MakePoint($1, $2), 4326),
$3 -- client_srid
) AS geom
)
SELECT f.*
FROM features f, p
ORDER BY f.geom <-> p.geom
LIMIT 1;features.geom<->f.geomORDER BY geom <-> point LIMIT 1geom