На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Особенности функций запроса координат точки

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1 2 След.
RSS
Особенности функций запроса координат точки, Чем отличаются различные функции запроса координат точек
 
В описании API функций запроса координат точек приводится несколько различных функций:

1. Запросить координаты точки в системе координат документа

_MAPIMP long int _MAPAPI mapGetPlanePoint(HOBJ info, DOUBLEPOINT *point,

                                         long int number, long int subject);

2. Запрос координат точки в метрах в системе координат карты

_MAPIMP long int _MAPAPI mapGetMapPlanePoint(HOBJ info, DOUBLEPOINT *point,

                                            long int number, long int subject);

3. Запрос координаты точки объекта в прямоугольной системе в метрах на местности

_MAPIMP double _MAPAPI mapXPlane(HOBJ info, long int number = 1, long int subject = 0);

_MAPIMP double _MAPAPI mapYPlane(HOBJ info, long int number = 1,

                                long int subject = 0);

Однако все эти функции возвращают одни и теже координаты.
Поясните, пожалуйста, почему так?
 
Это происходит потому, что система координат карты - прямоугольная в метрах.
 
Цитата
Andrey Gheleznyakov написал:
Это происходит потому, что система координат карты - прямоугольная в метрах.
Спасибо.
А почему тогда длина линии и длина на карте отличаются примерно в 2 раза?
Разве последние функции не должны возвращать реальные координаты на местности с учётом проекции карты?

Изменено: Денис Вицко - 16.03.2022 10:08:09 (исправил вставку картинок)
 
А какая у Вас проекция карты? Какова длина линии?
 


Длина линии 78м. На карте 139м
Изменено: Денис Вицко - 16.03.2022 10:09:31 (исправил вставку картинок)
 
У Вас равноуго́льная цилиндри́ческая прое́кция Мерка́тора, которая искажает площади и длины и тем сильнее, чем выше от экватора.
Длина линии - это реальная длина на местности. Длина на карте - это в проекции карты.
 
А можно как-то получить координаты объекта на местности с учётом проекции?
 
Это
Запрос координат точки в метрах в системе координат карты - mapGetMapPlanePoint
 
Цитата
Andrey Gheleznyakov написал:
Это
Запрос координат точки в метрах в системе координат карты - mapGetMapPlanePoint
Однако как было написано функции:

mapGetPlanePoint, mapGetMapPlanePoint, mapXPlane и mapYPlane
выдают одни и теже значения координат, расчёт по которым даёт завышеннное значение длины.

 
Правильно дают. Вы же просите в "в метрах в системе координат карты", а в карте стоит проекция искажающая длины. Вы сформулируйте правильно вопрос: нужна длина реальная, длина в проекции, координаты реальные, координаты в проекции?

Из справки[TABLE][TR][TD]Расчет длин, расстояний и площадей[/TD][TD] [/TD][/TR][/TABLE][TABLE][TR][TD]

Применение программы для расчета расстояний, длин, площадей и угловых величин позволяет получить наиболее точные результаты, которые должны быть одинаковыми в любых проекциях для одних и тех же геодезических координат обрабатываемых точек.

Наименьшие искажения линейных и угловых величин на ограниченной по долготе территории имеют топографические карты. Топографические карты имею проекцию Гаусса-Крюгера, которая математически описывается теми же формулами, что и проекция Universal Transverse Mercator (UTM). Формулы проекций приведены в ГОСТ Р 51794.

Для определения длины и азимута отрезка, имеющего известные геодезические координаты крайних точек, необходимо предварительно выполнить пересчет координат в плоские прямоугольные координаты на топографической карте. На точность вычислений существенно влияет положение осевого меридиана, выбранного для пересчета. При удалении точек от осевого меридиана погрешность вычислений возрастает. На удалении до трех градусов от осевого меридиана погрешность будет порядка 1: 1 500 – 1: 2 000.

Для минимизации искажений положение осевого меридиана выбирается в центре отрезка, а масштаб на осевом меридиане (Scale Factor) принимается равным 1. Таким образом, длина каждого отрезка определяется в собственной проекции. Если отрезок имеет протяженность в несколько градусов по долготе, то целесообразно деление отрезка на несколько частей по линии ортодромии - геодезической линии кратчайшего расстояния на поверхности вращения.

Таким образом, могут быть выполнены вычисления длин, расстояний и азимутов. Дирекционный угол имеет в каждой проекции свое значение, поскольку вычисляется относительно вертикальной линии прямоугольной сетки координат в заданной проекции.

Вычисление площади объекта, имеющего по долготе протяженность в пределах 6 градусов, выполняется путем пересчета координат к топографической карте с осевым меридианом в центре габаритов объекта.

Для получения уточненных значений длин, расстояний и площадей необходимо в меню Параметры выбрать пункт Уточнять площадь и длину. После этого результаты вычислений в задачах Расчеты по карте, Редактор карты, диалог Выбор объекта и других – будут выдавать уточненные значения. Если этот пункт не установлен, то вычисления выполняются по имеющимся координатам объектов без дополнительных преобразований.

Необходимо учитывать, что отображаемые плоские прямоугольные и геодезические координаты объектов зависят от текущих параметров проекции и выбранной системы отображения координат, а вычисления длин и площадей без уточнения значений выполняются по координатам объектов, хранящихся в соответствии с параметрами паспорта карты.

[/TD][/TR][/TABLE]
Страницы: 1 2 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности