Проблема с азимутом
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 20 авг 2012, 19:42
- Репутация: 0
Проблема с азимутом
Здравствуйте, у меня вот такая проблема:
имеется собственная программка, которая рисует трэк из файла формата *.nmea. Трэк представляет собой полет самолета - рисует его программа строго на север. А вот в программе OziExplorer рисует чуть по-другому: где-то градуса на два повернуто вправо. В своей проге я перевожу из широты, долготы на WGS84 в СК42, а затем в плоскостные координаты проекции Гаусса-Крюгера и по ним рисую относительно любой заданной мной точки. Что я делаю не так, почему отображается некорректно?
имеется собственная программка, которая рисует трэк из файла формата *.nmea. Трэк представляет собой полет самолета - рисует его программа строго на север. А вот в программе OziExplorer рисует чуть по-другому: где-то градуса на два повернуто вправо. В своей проге я перевожу из широты, долготы на WGS84 в СК42, а затем в плоскостные координаты проекции Гаусса-Крюгера и по ним рисую относительно любой заданной мной точки. Что я делаю не так, почему отображается некорректно?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Проблема с азимутом
Иногда это действительно проблема.Asashok писал(а):Здравствуйте, у меня вот такая проблема:
имеется собственная программка...
Поясните подробнее, что значит "отображается некорректно", пока не очень понятно.Asashok писал(а): Что я делаю не так, почему отображается некорректно?
Редактор материалов, модератор форума
- paleogis
- Модератор
- Сообщения: 1112
- Зарегистрирован: 22 мар 2009, 08:54
- Репутация: 200
- Ваше звание: Модератоо
Re: Проблема с азимутом
Наверное Вы имели ввиду на восток?Asashok писал(а): где-то градуса на два повернуто вправо.
Если Вы хотите чтобы участники форума могли разобраться в Вашей проблеме, то подробное описание, исходные данные, скриншоты в студию

-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Проблема с азимутом
Прежде чем писать программы, которые работают с пространственными данными, нужно изучить хотя бы базовые понятия.
В географической "проекции" линии, идущие с юга на север, всегда направлены вверх и параллельны друг другу.
В поперечной проекции Меркатора, частным случаем которой является проекция Гаусса-Крюгера, линии, идущие с юга на север, направлены строго вверх только в двух случаях: если они находятся на центральном меридиане зоны (или очень близко к нему) или на экваторе (или очень близко к нему).
Чем ближе к полюсам, тем сильнее заметно их отклонение от вертикали и непараллельность. В северном полушарии они будут сходиться к северному полюсу, в южном - к южному. Западнее центрального меридиана зоны - отклоняться вправо (да-да, вправо, а не к востоку, потому как идут-то они строго на север, только север не просто "везде вверху", а в одной конкретной точке полюса), восточнее центрального меридиана зоны - влево.
А учитывая, что OZIExplorer - вообще программа очень "самостийная", писалась человеком, у которого с картографическими знаниями очень плохо было и есть, и предназначена была для решения простой задачи отображения на экране отсканированных карт, там вообще полный бардак, и ориентация карты может зависеть, в том числе, от того, под каким углом изначально ту сканированную карту в сканер совали. OZIExplorer не карту под систему координат трансформирует, а сетку системы координат под карту подгоняет, на самом деле.
Выбросьте OZI и возьмите GlobalMapper - все равно ни за одну программу ведь платить не собираетесь, наверняка. А так хоть программа будет нормальной.
В географической "проекции" линии, идущие с юга на север, всегда направлены вверх и параллельны друг другу.
В поперечной проекции Меркатора, частным случаем которой является проекция Гаусса-Крюгера, линии, идущие с юга на север, направлены строго вверх только в двух случаях: если они находятся на центральном меридиане зоны (или очень близко к нему) или на экваторе (или очень близко к нему).
Чем ближе к полюсам, тем сильнее заметно их отклонение от вертикали и непараллельность. В северном полушарии они будут сходиться к северному полюсу, в южном - к южному. Западнее центрального меридиана зоны - отклоняться вправо (да-да, вправо, а не к востоку, потому как идут-то они строго на север, только север не просто "везде вверху", а в одной конкретной точке полюса), восточнее центрального меридиана зоны - влево.
А учитывая, что OZIExplorer - вообще программа очень "самостийная", писалась человеком, у которого с картографическими знаниями очень плохо было и есть, и предназначена была для решения простой задачи отображения на экране отсканированных карт, там вообще полный бардак, и ориентация карты может зависеть, в том числе, от того, под каким углом изначально ту сканированную карту в сканер совали. OZIExplorer не карту под систему координат трансформирует, а сетку системы координат под карту подгоняет, на самом деле.
Выбросьте OZI и возьмите GlobalMapper - все равно ни за одну программу ведь платить не собираетесь, наверняка. А так хоть программа будет нормальной.
- paleogis
- Модератор
- Сообщения: 1112
- Зарегистрирован: 22 мар 2009, 08:54
- Репутация: 200
- Ваше звание: Модератоо
Re: Проблема с азимутом
Подтверждаю GlobalMapper вполне адекватная прога 

-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 20 авг 2012, 19:42
- Репутация: 0
Re: Проблема с азимутом
Спасибо всем за ответы, проблема решилась. Вместо формулы преобразования в x,y на проекции Гаусса-Крюгера воспользовался другой:
W = sqrt(1-(e*sinB)^2); e^2 = f(2-f); f~1/300;
dX = a*(1-e^2)/W^3*dB
dY = a*cosB/W*dL.
Теперь все отображается так, как нужно.
W = sqrt(1-(e*sinB)^2); e^2 = f(2-f); f~1/300;
dX = a*(1-e^2)/W^3*dB
dY = a*cosB/W*dL.
Теперь все отображается так, как нужно.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя