💾 Archived View for pub.phreedom.club › ~progserega_linux › glog › 2016.10.17_postgis.gmi captured on 2024-08-25 at 00:42:15. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-03-20)

-=-=-=-=-=-=-

Поиск близлежайших объектов в postgis

Есть postgis, в ней база OSM. Нужно получить точки, находящиеся рядом (ближе 50 метров) с заданной точкой с координатами 132.77883 и 43.17676:

 select osm_id,ref from planet_osm_point where st_distance(ST_Transform(way,4326),  ST_GeographyFromText('SRID=4326;POINT(' || '132.77883' || ' ' || '43.17676' || ')')) <=50;

Пояснения:

`ST_Transform(way,4326)` - геометрия в planet_osm_point хранится в поле way хитрым образом, но т.к. координаты в postgis-е хранятся в меркарторе (SRID=900913), а функции вычисления растояний работают с WGS84 (SRID=4326), а так же и наши координаты 132.77883 и 43.17676 тоже в WGS84, то нужно меркартор трафнсформировать в WGS84.

🔙 вернуться к началу...