Страница 1 из 1

Длина линии

Добавлено: 06 мар 2013, 06:24
Shinoby
Пытаюсь рассчитать длину дороги в метрах, но что-то не могу разобраться с системами кординат.
В БД координаты хранятся в EPSG: 4326. Как правильно измерить длину линии в метрах?

Делаю так
SELECT ST_AsGeoJSON(geo) geo, ST_Length(ST_Transform(geo, 3857)) length FROM roads
Но в результате запроса длина существенно больше, чем при замере линейкой в qgis на слое с той же системой координат (3857).

Re: Длина линии

Добавлено: 06 мар 2013, 06:50
Denis Rykov
Возможно, разница от того, что в QGIS вы измеряете на эллипсоиде.

Re: Длина линии

Добавлено: 06 мар 2013, 06:56
Shinoby
Можете объяснить подробнее? :)
Разница довольно существенна, улица измеренная в qgis и 2gis - 500м. А запрос выдает 800.

Re: Длина линии

Добавлено: 06 мар 2013, 07:27
Denis Rykov
В PostGIS посчитайте длину так:

Код: Выделить всё

SELECT ST_Length_Spheroid(geo, 'SPHEROID["WGS 84",6378137,298.257223563]') length FROM roads;
На сколько теперь отличаются результаты измерения?

Re: Длина линии

Добавлено: 06 мар 2013, 08:09
Shinoby
Большое спасибо, теперь рассчитывается правильно )