Boris писал(а):Если не трудно обоснуйте, величину этих самых искажений
Известно, что любой картографической проекции присущи искажения. Да Вы и сами, "чтобы уменьшить различие между спроецированными расстояниями (переведенными на плоскость спроецированной поверхности) и расстояниями, вычисленными с учетом кривизны Земли" рассчитали центральный меридиан.
Зависимости искажений от типа проекций описаны в математической картографии. В нашем случае это разница между 226000м и 226471.11м. Я же хотел сказать, что вычисляя расстояние между двумя точками, Вы с одной стороны вносите поправку за наклон отрезка, с другой стороны вносите искажения, проецируя точки на плоскость. Если Вы считаете, что этими искажениями можно пренебречь, то об этом должно быть сказано в статье, в которой о точности вспоминается не один раз и принимаются меры к ее улучшению.
Boris писал(а):и почему теорема Пифагора для точек в 3-х мерном пространстве не применима для расчета расстояний на местности
Против этой теоремы я ничего не имею. Дело в том, что координаты X, Y, h описывают точку не в 3-х мерном пространстве. Я бы сказал не 3D а 2.5D
X, Y - проекция 3D точки на плоскость, h - высота точки над эллипсоидом. X,Y,Z это 3D, а вот X,Y,h не совсем.
Повторюсь. Я не говорю о величинах искажений, я говорю об источниках этих искажений. Учитывать эти искажения или нет, зависит от задачи и желания.
Boris писал(а):Я не помню, что бы я писал о программировании на MapBasic'е. О командах - писал, а о программировании - где? И как без программирования рассчитать длину линии для 3-х координат?
Я тоже о командах.
Я вероятно не очень хорошо выражаю свои мысли.По этому просто напишу как поступил бы я:
(Подразумевается, что некорректные данные уже удалены)
0a. Не стал бы менять систему координат.
(
Пересчет координат из системы в систему добавит ошибку. Во всяком случае точности не прибавит. Зачем тогда возится.
У нас же есть MapInfo. А он работает с любыми координатами.
)
0b. Не стал бы создавать точки. Если конечно не нужен визуальный контроль.
(
Зачем точки, если не меняем систему координат?
Да и вычислять средний меридиан и границы карты лень
)
1. Создал бы копию исходной таблицы и удалил первую строку скопированной таблицы.
(
Т.е. первая строка таблицы копии соответствовала второй строке исходной таблицы.
Последнюю строку исходной таблицы тоже можно удалить за ненадобностью.
В итоге имеем две одинаковые таблицы со сдвигом на одну строку.
1 - 2
2 - 3
3 - 4
4 - 5
...
)
2. Объединил бы эти таблицы.
(
Получилась таблица, в каждой строке которой, содержаться координаты и высоты текущей и следующей точек.
Еще добавил бы 4 столбца(колонки) к этой таблице, в которые буду записывать результаты вычислений
)
3. Команда "Таблица->Обновить колонку".
(
Эту команду выполняем 4 раза, заполняя созданные ранее 4 столбца(колонки):
a. используем Distance для вычисления расстояния между точками на эллипсе.
b. используем h2 - h1 для вычисления превышений между точками.
c. используем расстояние и превышение для вычисления поправки за наклон.
d. используем ((h2 - h1)/2)/R для вычисления поправки за высоту отрезка над эллипсоидом.
)
4. применяем к длине отрезков все поправки и суммируем.
Это чисто MapInfo (никакого программирования и Excel).
А если использовать окно MapBasic то п. 3 можно сильно сократить.