У меня простой вопрос о расчете расстояний в PostGIS.
Я хотел бы получить расстояние между двумя геометриями. Я использую этот sid: 4269 в метрах, что я делаю сейчас, это: ST_Distance((a.geom,b.geom)) FROM ...
но я получаю результат в градусах. Я думаю, что я должен работать с географией, но как я могу привести геом к географии? Я пытался с (a.geom :: geography), но я получаю ошибку.
Что я могу сделать, чтобы получить результат в метрах?
Спасибо
postgis
coordinate-system
postgresql
distance
YassineGeoma
источник
источник
SELECT ST_Distance_Sphere(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 4)'), ST_GeomFromEWKT('SRID=4326;POINT(-72.1260 42.45 15)'))
Единицы измерения SRID 4269 ( NAD 83 ) не являются метрами - это геодезическая проекция , то есть координаты - градусы (географические координаты).
Ответ pacofvf даст вам расстояние в метрах, но если вы действительно указали свои начальные координаты в метрах, то вам следует использовать прогнозируемую систему координат. Вероятно, для Северной Америки вы хотите что-то вроде государственной системы координат самолетов, которая имеет ряд различных проекций в зависимости от того, какой регион вы хотите отобразить.
Я подозреваю, что вы просто используете значения широты / долготы, так что, вероятно, этот второй абзац не имеет значения - просто используйте
ST_Distance_Sphere
функцию, как указано выше.источник