f Соотношение карт, координат, датумов, проекций
Гонки и путешествия под парусом
Новости Регаты Рулевые Форум Видео Фотоконкурс Справочник

Автор Тема: Соотношение карт, координат, датумов, проекций  (Прочитано 2372 раз)

0 Пользователей и 1 Гость смотрят эту тему.

bserg2

  • Сообщений: 1382
  • Уважуха: +105/-46
  • Тип: катамаран
чот ты по моему сфероидного коня в вакууме изобретаешь.
Изначальная задача какая?  я надеюсь у тебя не стоит задача придумать глобально свою систему координат?

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

я взял Саспланету, вырезал кусок Москвы 0.25 градуса по обоим сторонам, скачал карту при 13 приближении, получил картинку 728х1295 пикселей  (кажется рука немного дрогнула, но не суть)
верхний левый угол:   56,00   37,5      нижний правый: 55,75    37,75   (всё только в градусах, ненавижю минуты)

потом выбрал станцию Останкино  (красная точка в нижней трети карты)
посмотрел её координаты в Сасе  55,8172   37,603    (считаем это координата, что дал гпс)
надо найти пиксельные координаты точки  на картинке.
Линейная интерполяция, никаких сфероидов. карта привязана по 2м точкам.  координаты в пикселях 300, 947  (начало координат верхний левый угол)
точно попадает.  точно, в смысле для такого разрешения карты, точность +- 1-2 пиксела
При таких размерах карта считай  плоская, какие нафиг дуги?




Можно аппроксимировать например кубическими сплайнами, только зачем? Всё упрётся в точность привязки карты, как ты её будешь привязывать?  потребуется куча реперный точек.

« Последнее редактирование: 16 Ноября, 2016, 23:40:34 от bserg2 »

Ёж

  • Сообщений: 3167
  • Уважуха: +126/-96
  • Тяжелая байдарка пр. "Амдерма"
  • Название: Севпростор
Так речь про нативный генштаб идет, а не про цельнотянутые тайлы из интернетовских программ. Для таких картинок будет использоваться другой датум.

Вот о чем я говорю - 10-километровка для наглядности. Причем, она не просто криволинейная по всем четырем сторонам, но ее и криво отсканированная))
« Последнее редактирование: 17 Ноября, 2016, 01:13:25 от Ёж »
Везучий чайник www.sevprostor.ru

Ёж

  • Сообщений: 3167
  • Уважуха: +126/-96
  • Тяжелая байдарка пр. "Амдерма"
  • Название: Севпростор
А вот морские карты, кстати - они равноугольные, то бишь тупо квадратные. С ними все гораздо проще. Ну и генштаб из саспланеты, как мне представляется - растянут в прямоугольник. Т.е. если его распечатаь на бумаге - пользоваться им уже нельзя будет. Тем более, что полей там нету.

В общем, я придумал алгоритм. Он проще пареной репы. Берем широту просто по вертикальной линии, проецируем это на отрезок, соединяюий 2 соседние калибровочные точки, и так 3 раза. Получаем х,у трех точек. Строим по ним дугу. Откуда-нибудь откладываем нужное количество градусов по окружности и получаем точку на карте.
« Последнее редактирование: 17 Ноября, 2016, 01:08:28 от Ёж »
Везучий чайник www.sevprostor.ru

bserg2

  • Сообщений: 1382
  • Уважуха: +105/-46
  • Тип: катамаран
Вот о чем я говорю - 10-километровка для наглядности. Причем, она не просто криволинейная по всем четырем сторонам, но ее и криво отсканированная))


и нафиг она тебе нужна в таком вот виде?
ты хочешь смотреть в какой части света находишься?



вот библиотека
https://github.com/mapsforge/mapsforge
« Последнее редактирование: 17 Ноября, 2016, 02:22:32 от bserg2 »

Ёж

  • Сообщений: 3167
  • Уважуха: +126/-96
  • Тяжелая байдарка пр. "Амдерма"
  • Название: Севпростор
Вот о чем я говорю - 10-километровка для наглядности. Причем, она не просто криволинейная по всем четырем сторонам, но ее и криво отсканированная))


и нафиг она тебе нужна в таком вот виде?
ты хочешь смотреть в какой части света находишься?



вот библиотека
https://github.com/mapsforge/mapsforge

Хмм. Как это нафиг нужна? Это единственно верный вид карты, нарисованной в двуугольной проекции. Другой она быть никак не может. Просто на десятикилометровке хорошо видно, что она является куском сфероидального двуугольника. Ну а вообще, и 500к имеют точно такие же гриволинейные широты и меридианы, просто кривизна меньше и при навигации не учитывается.
Везучий чайник www.sevprostor.ru

Ёж

  • Сообщений: 3167
  • Уважуха: +126/-96
  • Тяжелая байдарка пр. "Амдерма"
  • Название: Севпростор
А что за мапсфорж такой? Это что-то вообще не по теме вроде.
Везучий чайник www.sevprostor.ru

Никанор Воронежский

  • Пользователь забанен
  • Сообщений: 5587
  • Уважуха: +233/-303
  • Анша Абдуль
  • Название: Торнадо был.
  • Тип: Сейчас Ямаха ттр-250
Ну че все молчат, математиков чтоли нет?

Короче, проблема в нахождении точки на карте по заданным географическим координатам. Я думал-думал, и подумал, что если задача у нас - навигация на лодке, то всеми этими жуткими рассчетами можно пренебречь. В чем это выражается? Значит, есть у нас карта с привязкой по 9 точкам. Т.е. по 3 точки на каждой стороне и одна в середине. Не будем рассчитывать кривые по формулам, а допустим, что по 3 точкам на каждой стороне у нас строятся окружности (на самом деле они неправильные, но мы на это забьем). Короче, мы в итоге получаем 3 опорных окружности по широтам с известными радиусами и известной разницой в положении  их центров. Допустим, нам надо построить окружность, зная только ее широту. Берем две окружности, меду которых должна находиться новая, и произодим морфинг в нное количество итераций. Получаем искомую окружность. Так же поступаем и с долготами. Как-то так.
У меня отец моряк. Он всю жизнь, между рейсами где то учился. И вот я нашел у него учебник штурмана. И он оказался такой простой...

bserg2

  • Сообщений: 1382
  • Уважуха: +105/-46
  • Тип: катамаран
А что за мапсфорж такой? Это что-то вообще не по теме вроде.


ну если мапсфорж не нравится, вот исходники Rmaps - это уже точно по теме.


конечно, правильнее делать как ты говоришь, а совсем правильно - учитывать проекцию карты и делать преобразования от этой проекции.






Ёж

  • Сообщений: 3167
  • Уважуха: +126/-96
  • Тяжелая байдарка пр. "Амдерма"
  • Название: Севпростор
Rmaps - это тоже совсем не то. Все эти говнопрограммы заточенные под интернет не умеют работать с нормальными человеческими проекциями. Единственно труевая и безальтернативная порога для растровой навигации - это ози эксплорер. И я опираюсь именно на него, как на эталон) В общем-то отображение точки на карте у меня уже, вроде, получается. Теперь надо делать индексацю всей кучи карт.
Везучий чайник www.sevprostor.ru

bserg2

  • Сообщений: 1382
  • Уважуха: +105/-46
  • Тип: катамаран
не читал но осуждаю   ;D
Rmaps очень даже умеет оффлайн карты.


любишь Ози - на тебе исходники Андрозика  https://github.com/andreynovikov/Androzic