Я написал этот запрос, и он работает, хотя это немного медленно:ST_Distance и «как» в PostGIS
SELECT name,
(ST_Distance(ST_Transform(way,900913),ST_Transform(ST_GeomFromText('POINT (-6.2222 53.307)',4326),900913)))
FROM ga_osm_latlong_polygon
WHERE
((ST_Distance(ST_Transform(way,900913),ST_Transform(ST_GeomFromText('POINT (-6.2222 53.307)',4326),900913)))
<= 1000)
ORDER BY
(ST_Distance(ST_Transform(way,900913),ST_Transform(ST_GeomFromText('POINT (-6.2222 53.307)',4326),900913))),
name
Я пытаюсь переписать его в более изящным способом, используя «как» :
SELECT name,
(ST_Distance(ST_Transform(way,900913),ST_Transform(ST_GeomFromText('POINT (-6.2222 53.307)',4326),900913))) AS d
FROM ga_osm_latlong_polygon
WHERE (d <= 1000)
ORDER BY d, name
К сожалению, я получаю: ОШИБКА: колонка "D" не существует
Любая идея о том, что я получаю здесь не так?
Спасибо!
Спасибо! по какой-то причине тип «география» не определен в моей PostGIS. Мне нужны на самом деле объекты (хранятся в lat/lon) в радиусе в метрах, поэтому я все преобразую в меркаторе. Любой другой подход для этого? – Mulone