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

Re: Расстояние между точками

Добавлено: 10 сен 2018, 13:54
Эдуард Казаков
P.S. Чтобы считать расстояния, нужно выбрать какую=нибудь равнопремежуточную проекцию, посмотрев, какая из них дает минимальные ошибки для ваших типичных расстояний.
Если бы это было так, то судьба пространственных измерений в QGIS была бы весьма печальна.

Измерение в проекции никак не может быть точнее измерения на эллипсоиде, так как проекция есть производная от того же эллипосида или сферы.


Залезьте в Project - Project Properties - General. Там есть раздел measurements.
Там вы можете выбрать, как конкретно вы желаете измерять. Если в графе Ellipsoid указано
"None / Planimetric", это значит, что расчёты будут производиться в выбранной вами проекции. Если выбрана какая-либо модель эллипсоида, то расчёты будут производиться именно на ней, а не в проекции - это в общем-то и есть искомая настройка.

При этом выбор эллипсоида для измерений доступен тогда, когда у вас активирован режим "Enable on-the-fly CRS transformation" в Project - Project Properties - CRS.

В рамках вашего эксперимента попробуйте следующее. Создайте в QGIS линию из двух узлов, координаты которых введите точно с помощью плагина NumericalDigitize или Numerical Vertex Edit. Расчитайте в два разных поля этой линии её длину с помощью команды $length двумя способами: с None / Planimetric и с WGS84 в настройках эллипсоида для измерений.

Re: Расстояние между точками

Добавлено: 10 сен 2018, 17:04
gamm
Эдуард Казаков писал(а):
10 сен 2018, 13:54
Если бы это было так, то судьба пространственных измерений в QGIS была бы весьма печальна.
в реальности это именно так - для практических работ равнопромежуточной проекции достаточно. Для точных измерений длины дорог нужно знать реальный рельеф, и считать по нему. И тут никакой эллипсоид не спасет.

Re: Расстояние между точками

Добавлено: 10 сен 2018, 20:51
Svility
Эдуард Казаков писал(а): В рамках вашего эксперимента попробуйте следующее. Создайте в QGIS линию из двух узлов, координаты которых введите точно с помощью плагина NumericalDigitize или Numerical Vertex Edit. Расчитайте в два разных поля этой линии её длину с помощью команды $length двумя способами: с None / Planimetric и с WGS84 в настройках эллипсоида для измерений.

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

SELECT 
 round(
  CAST(
	ST_Length_Spheroid(geom, 'SPHEROID["WGS84",6378137,298.25728]')
	As numeric),3) AS st_length_spheroid
from my_line_table where id=437
Теперь все сходится :D $length и PostGis начали одинаковые значения показывать

Re: Расстояние между точками

Добавлено: 20 окт 2018, 13:48
honglei
why did you decide, for example, that the ruler receives the same numbers as input, which you substitute in post-index, and you do not use the result of rounding or recalculation through pixels or something else. For starters, you would be convinced that you consider the same by the same formulas.