Ну что ж... поделюсь результатами своих изысканий.
Идея была в том, чтобы попробовать поработать с разрешением не в метрах на пиксель, а в угловых секундах на пиксель.
1. Методика измерений.
Если у нас есть в навигаторе путевые точки, то переносим в безопасное место файл \Waypoints\Magellan_New_Waypoints.gpx - чтобы удобнее было работать он должен быть пустым.
Отключаем все карты.
Устанавливаем ориентацию карты "всегда на север".
Выключаем GPS, а текущее положение выставляем вручную на нужной нам широте (хоть вводом координат, хоть маркером на карте).
Дальше устанавливаем желаемый масштабный уровень и ставим четыре точки вблизи углов карты. Делаем скриншот:
Вложение:
shot00000.png [ 7.05 КБ | Просмотров: 1944 ]
Повторяем процедуру для нескольких масштабных уровней.
Сбрасываем скриншоты и файл \Waypoints\Magellan_New_Waypoints.gpx на комп для последующей обработки.
Переходим на другую широту и повторяем все снова.
2. Обработка
В итоге вышеописанной процедуры мы получили набор скриншотов и набор координат точек на них.
Код:
<wpt lat="0.249254350977" lon="58.587193622576">
<time>2016-04-19T11:05:08Z</time>
<name>WP1</name>
<sym>FLAG ORANGE</sym>
<type>Waypoint</type>
<extensions>
<mgn:extensions xmlns:mgn="http://www.magellangps.com/mgnext/0/2"/>
</extensions>
</wpt>
<wpt lat="0.246546547094" lon="58.587193622576">
<time>2016-04-19T11:05:23Z</time>
<name>WP2</name>
<sym>FLAG ORANGE</sym>
<type>Waypoint</type>
<extensions>
<mgn:extensions xmlns:mgn="http://www.magellangps.com/mgnext/0/2"/>
</extensions>
</wpt>
<wpt lat="0.246546547094" lon="58.589105013552">
<time>2016-04-19T11:05:35Z</time>
<name>WP3</name>
<sym>FLAG ORANGE</sym>
<type>Waypoint</type>
<extensions>
<mgn:extensions xmlns:mgn="http://www.magellangps.com/mgnext/0/2"/>
</extensions>
</wpt>
<wpt lat="0.249294171622" lon="58.589105013552">
<time>2016-04-19T11:05:50Z</time>
<name>WP4</name>
<sym>FLAG ORANGE</sym>
<type>Waypoint</type>
<extensions>
<mgn:extensions xmlns:mgn="http://www.magellangps.com/mgnext/0/2"/>
</extensions>
</wpt>
Теперь мы можем для каждого скриншота сопоставить координаты точки (меряем точку у основания древка флажка) в пикселах и в градусах. Для каждого скриншота можно получить 4 разности по широте (в нашем случае это точки 1-2, 1-3, 2-4 и 3-4) и 4 по долготе (1-3, 1-4, 2-3 и 2-4) и посчитать по 4 значения разрешений по широте и долготе, которые затем усреднить.
Разрешения считаются в угловых секундах на пиксель.
Таким образом было промеряно 6 точек для значений широты:
0,248221
19,289529
41,327905
56,827437
71,934742
86,949039
3. Результаты.Если нанести полученные значения на график, то получается интересная картинка:
Вложение:
Scale-Resolution.gif [ 25.44 КБ | Просмотров: 1944 ]
Во-первых, разрешения в угловых секундах (ось Y) линейно зависят от масштабного уровня (ось X) для каждого фиксированного значения широты.
Во-вторых, на экваторе зависимости разрешений по горизонтали и вертикали тождественны (угол наклона прямой одинаковый). С удалением от экватора угол наклона зависимости горизонтального разрешения увеличивается, а вертикального - уменьшается (т.е. с увеличением широты линии расходятся "веером").
В-третьих, все линии проходят через 0.
Итак, зависимость разрешения в угловых секундах на пиксель от масштабного уровня можно аппроксимировать формулой:
Вложение:
CodeCogsEqn (4).gif [ 892 байт | Просмотров: 1944 ]
где коэффициент K является функцией от широты. Естественно, что эти коэффициенты будут разными по горизонтали и вертикали.
Если использовать МНК и посчитать эти коэффициенты для имеющегося набора значений широты, то получается вот такая картинка:
Вложение:
Slope-Latitude.gif [ 9.11 КБ | Просмотров: 1944 ]
По оси X значение широты (в радианах), по оси Y - значение коэффициента зависимости масштабный уровень - разрешение.
Синяя линия - горизонтальное разрешение, красная - вертикальное.
Как выяснилось, зависимость
Вложение:
CodeCogsEqn (5).gif [ 293 байт | Просмотров: 1944 ]
линеаризуется подстановкой
Вложение:
CodeCogsEqn (6).gif [ 589 байт | Просмотров: 1944 ]
(в радианах) или
Вложение:
CodeCogsEqn (7).gif [ 585 байт | Просмотров: 1944 ]
(в градусах):
Вложение:
Slope-Latitude Linearized.gif [ 11.92 КБ | Просмотров: 1944 ]
Точнее, почти линеаризуется. Наблюдается некоторая остаточная нелинейность, но она может быть связана и с ошибками измерений.
Тем не менее, параметр "R-квадрат" для обоих составляющих достаточно близок к единице чтобы можно было говорить о линейном характере зависимости.
СКО для линейной зависимости составляет 0,002060 по горизонтали и 0,001319 по вертикали.
Если учесть остаточную нелинейность и аппроксимировать эту зависимость квадратичной функцией, то СКО будут меньше и равны, соответственно, 0,000521 и 0,000446
Итак, в конечном итоге получаем формулу зависимости разрешения в угловых секундах на пиксель от широты и масштабного уровня:
Вложение:
CodeCogsEqn (8).gif [ 917 байт | Просмотров: 1944 ]
линейная зависмость, значения коэффициентов для горизонтального разрешения:
a = 0,679008
b = -0,157750
для вертикального:
a = -0,623140
b = 1,144693
широта в данном случае в радианах.
Более точная формула:
Вложение:
CodeCogsEqn (9).gif [ 1.24 КБ | Просмотров: 1944 ]
с коэффициентами:
a = 0,084945
b = 0,445941
c = -0,004917
по горизонтали, и
a = 0,052884
b = -0,768238
c = 1,239842
по вертикали.
Этого уже достаточно для расчета парамеров ресамлинга карты в GM под нужный масштабный уровень. При желании несложно пересчитать разрешения из угловых секунд в метры.