Я новичок в PostGIS и пытаюсь создать запрос радиуса.У меня есть таблица с полем geometry
(позиция), а также значения широты и долготы в отдельных полях.
Я пытаюсь найти точки в радиусе 10 км от широты: 40.753777, lon:-73,981568.
с:
SELECT postcode, lat, lon, st_asgeojson(position) geojson, ST_Distance(ST_MakePoint(lat, lon), ST_MakePoint(40.753777, -73.981568)) distance FROM addresses WHERE ST_DWithin(ST_MakePoint(lat, lon), ST_MakePoint(40.753777, -73.981568), 10000) order by id limit 10;
Результаты дают мне очень далекие очки.Тот же самый запрос с расстоянием до Земли с использованием широты и долготы дает мне гораздо более близкие результаты.
SELECT postcode, lat, lon, st_asgeojson(position) geojson FROM addresses WHERE earth_box(ll_to_earth(40.753777, -73.981568), 10000) @> ll_to_earth(addresses.lat, addresses.lon) order by id limit 10;
Но я действительно не знаю, правильно ли это тоже, что не так с запросом PostGIS?