Длина линии

Ответить
Shinoby
Новоприбывший
Сообщения: 10
Зарегистрирован: 28 фев 2013, 12:11
Репутация: 1

Длина линии

Сообщение Shinoby » 06 мар 2013, 06:24

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

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

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

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

Сообщение Denis Rykov » 06 мар 2013, 06:50

Возможно, разница от того, что в QGIS вы измеряете на эллипсоиде.
Spatial is now, more than ever, just another column- The Geometry Column.

Shinoby
Новоприбывший
Сообщения: 10
Зарегистрирован: 28 фев 2013, 12:11
Репутация: 1

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

Сообщение Shinoby » 06 мар 2013, 06:56

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

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

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

Сообщение Denis Rykov » 06 мар 2013, 07:27

В PostGIS посчитайте длину так:

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

SELECT ST_Length_Spheroid(geo, 'SPHEROID["WGS 84",6378137,298.257223563]') length FROM roads;
На сколько теперь отличаются результаты измерения?
Spatial is now, more than ever, just another column- The Geometry Column.

Shinoby
Новоприбывший
Сообщения: 10
Зарегистрирован: 28 фев 2013, 12:11
Репутация: 1

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

Сообщение Shinoby » 06 мар 2013, 08:09

Большое спасибо, теперь рассчитывается правильно )

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 15 гостей