SASGIS

Веб-картография и навигация

Прямой экспорт тайлов SAS Планеты в RMP (Magellan)

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Re: Прямой экспорт тайлов SAS Планеты в RMP (Magellan)

Сообщение Draude » 19 мар 2016, 00:47

На старости лет начал осваивать Python :oops:
Я то в EXEL оценивал.
Скачал Python, покумекал, забил 8 тайлов, получил результат на 9 тайлов : Y1: 5545; Y2: 5553
Начал смотреть, что- то не понравилось :(
Код: Выделить всё
ect info [X: 9636; Y1: 5545; Y2: 5553; Z: 14]:
Top: 50.162824333817; Bottom: 50.035973672195
TileH: 0.014094517958; PixH: 0.000055056711
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2826.43 -> 2826
[b][color=#0000FF]TileH: 0.014096665133[/color][/b]; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.162824333817; Bottom: 50.035954347619

Bottom diff: 0.000019324576 = 0.35 pix
====
Tile info [X: 9636; Y: 5545; Z: 14]:
Top: 50.162824333817; Bottom: 50.148746400663
TileH: 0.014077933155; PixH: 0.000054991926
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2826.00 -> 2826
TileH: 0.014096665133; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.162824333817; Bottom: 50.148727668684

Top diff: 0.000000000000 = 0.00 pix
Bottom diff: 0.000018731979 = 0.34 pix
=====
Tile info [X: 9636; Y: 5546; Z: 14]:
Top: 50.148746400663; Bottom: 50.134664322167
TileH: 0.014082078496; PixH: 0.000055008119
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2827.00 -> 2827
TileH: 0.014096665133; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.148727668684; Bottom: 50.134631003551

Top diff: 0.000018731979 = 0.34 pix
Bottom diff: 0.000033318616 = 0.61 pix
=====
Tile info [X: 9636; Y: 5547; Z: 14]:
Top: 50.134664322167; Bottom: 50.120578097960
TileH: 0.014086224207; PixH: 0.000055024313
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2828.00 -> 2828
TileH: 0.014096665133; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.134631003551; Bottom: 50.120534338418

Top diff: 0.000033318616 = 0.61 pix
Bottom diff: 0.000043759542 = 0.80 pix
=====
Tile info [X: 9636; Y: 5548; Z: 14]:
Top: 50.120578097960; Bottom: 50.106487727673
TileH: 0.014090370287; PixH: 0.000055040509
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2829.00 -> 2829
TileH: 0.014096665133; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.120534338418; Bottom: 50.106437673285

Top diff: 0.000043759542 = 0.80 pix
Bottom diff: 0.000050054388 = 0.91 pix
=====
Tile info [X: 9636; Y: 5549; Z: 14]:
Top: 50.106487727673; Bottom: 50.092393210939
TileH: 0.014094516735; PixH: 0.000055056706
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2830.00 -> 2830
TileH: 0.014096665133; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.106437673285; Bottom: 50.092341008152

Top diff: 0.000050054388 = 0.91 pix
Bottom diff: 0.000052202787 = 0.95 pix
=====
Tile info [X: 9636; Y: 5550; Z: 14]:
Top: 50.092393210939; Bottom: 50.078294547389
TileH: 0.014098663549; PixH: 0.000055072904
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2831.00 -> 2831
TileH: 0.014096665133; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.092341008152; Bottom: 50.078244343019

Top diff: 0.000052202787 = 0.95 pix
Bottom diff: 0.000050204371 = 0.91 pix
=====
Tile info [X: 9636; Y: 5551; Z: 14]:
Top: 50.078294547389; Bottom: 50.064191736659
TileH: 0.014102810730; PixH: 0.000055089104
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2832.00 -> 2832
TileH: 0.014096665133; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.078244343019; Bottom: 50.064147677885

Top diff: 0.000050204371 = 0.91 pix
Bottom diff: 0.000044058774 = 0.80 pix
=====
Tile info [X: 9636; Y: 5552; Z: 14]:
Top: 50.064191736659; Bottom: 50.050084778383
TileH: 0.014106958277; PixH: 0.000055105306
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2833.00 -> 2833
TileH: 0.014096665133; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.064147677885; Bottom: 50.050051012752

Top diff: 0.000044058774 = 0.80 pix
Bottom diff: 0.000033765630 = 0.61 pix
=====
Tile info [X: 9636; Y: 5553; Z: 14]:
Top: 50.050084778383; Bottom: 50.035973672195
TileH: 0.014111106187; PixH: 0.000055121509
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2834.00 -> 2834
TileH: 0.014096665133; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.050051012752; Bottom: 50.035954347619

Top diff: 0.000033765630 = 0.61 pix
Bottom diff: 0.000019324576 = 0.35 pix
=====
>>>


глянул ваш на 20 тайлов
Тоже настораживает один момент, везде одинаковое значение TileH: 0.014121650360 равно расчетной ширине первого тайла меркатора.
Наверное ошибка. Буду смотреть дальше.
zed писал(а):Не поленился, написал скрипт для иллюстрации погрешности.



Но давайте теперь посмотрим, что же там происходит с тайлами. Насколько отличаются их реальные координаты, от расчётных, по которым они будут лежать в rmp?
Tile info [X: 9636; Y: 5545; Z: 14]:
Top: 50.162824333817; Bottom: 50.148746400663
TileH: 0.014077933155; PixH: 0.000054991926
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2821.00 -> 2821
TileH: 0.014121650360; PixH: 0.000055162697
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.162824333817; Bottom: 50.148702683457

Top diff: 0.000000000000 = 0.00 pix
Bottom diff: 0.000043717206 = 0.79 pix
=====
Tile info [X: 9636; Y: 5546; Z: 14]:
Top: 50.148746400663; Bottom: 50.134664322167
TileH: 0.014082078496; PixH: 0.000055008119
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2822.00 -> 2822
TileH: 0.014121650360; PixH: 0.000055162697
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.148702683457; Bottom: 50.134581033097

Top diff: 0.000043717206 = 0.79 pix
Bottom diff: 0.000083289070 = 1.51 pix
=====
Tile info [X: 9636; Y: 5547; Z: 14]:
Top: 50.134664322167; Bottom: 50.120578097960
TileH: 0.014086224207; PixH: 0.000055024313
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2822.99 -> 2823
TileH: 0.014121650360; PixH: 0.000055162697
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.134581033097; Bottom: 50.120459382737

Top diff: 0.000083289070 = 1.51 pix
Bottom diff: 0.000118715223 = 2.16 pix
=====
Tile info [X: 9636; Y: 5548; Z: 14]:
Top: 50.120578097960; Bottom: 50.106487727673
TileH: 0.014090370287; PixH: 0.000055040509
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2823.99 -> 2824
TileH: 0.014121650360; PixH: 0.000055162697
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.120459382737; Bottom: 50.106337732376

Top diff: 0.000118715223 = 2.16 pix
Bottom diff: 0.000149995297 = 2.73 pix
.......
=====
Tile info [X: 9636; Y: 5565; Z: 14]:
Top: 49.880477638743; Bottom: 49.866316729539
TileH: 0.014160909204; PixH: 0.000055316052
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2840.99 -> 2841
TileH: 0.014121650360; PixH: 0.000055162697
TileW: 0.021972656250; PixW: 0.000085830688
Top: 49.880391326613; Bottom: 49.866269676253

Top diff: 0.000086312130 = 1.56 pix
Bottom diff: 0.000047053286 = 0.85 pix

И вот тут вылазит глюк: с верху, к центру области, идёт нарастающий сдвиг координат с неким шагом, а потом, от центра области, к низу, он идёт в обратную сторону.

И тут внимательный читатель должен вспомнить слова товарища lunyachek отсюда: viewtopic.php?f=61&t=2814&start=20#p41724
Вы спросите, а чем визуально отличаются карта в проекции Mercator размером 2361х3393 пикселя и карта в проекции lat/lon, растянутая до того же размера 2361х3393 пикселя? По верхнему и нижнему краю они в точности совпадают. А вот середина карты смещена по вертикали. И чем больше размер карты по вертикали в километрах, тем сильнее. До 10 км - смещение незначительно. Поэтому если при экспорте из САС Планеты нарезать карту полосками по вертикали не более 10 км, а потом загнать их в RMPCreator и объединить в один RMP-файл, то можно обойтись и без смены проекции. А вот если взять большой кусок, то смещение будет значительным. Когда-то я ради эксперимента сделал карту примерно 400х400 км без смены проекции. Смещение центра карты относительно реальности было около 300 м.


Скрипт в аттаче (для запуска нужен Python 2.7). Ошибок вроде бы не наделал, но можете проверить и потестировать на других входных данных. Главное не забывайте, что зум там нумеруется с 0, а не с 1 как в гуе в SAS.
Draude
Соображающий
 
Сообщения: 82
Зарегистрирован: 28 авг 2009, 02:02
Благодарил (а): 15 раз.
Поблагодарили: 3 раз.

Re: Прямой экспорт тайлов SAS Планеты в RMP (Magellan)

Сообщение zed » 19 мар 2016, 00:50

Да нет, не ошибка. В rmp для слоя записывается одно значение TileH на весь слой для всех тайлов. Там же проекция с константным разрешением пикселей.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Прямой экспорт тайлов SAS Планеты в RMP (Magellan)

Сообщение zed » 19 мар 2016, 00:54

Draude писал(а):равно расчетной ширине первого тайла меркатора.

Не первого тайла, а среднему значению всех тайлов. У первого тайла оно вот такое: 0.014077933155
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Прямой экспорт тайлов SAS Планеты в RMP (Magellan)

Сообщение Draude » 19 мар 2016, 01:08

Давайте посмотрим оценку 8 тайлов, там мне легче, посчитано уже.
X: 9636.00 -> 9636; Y: 2826.00 -> 2826
TileH: 0.014096665133; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.162824333817; Bottom: 50.148727668684

TileH: 0.014096665133 это для 2826

для 2827 у меня в EXEL 0,01409665850702
2828 => соответственно 0,01409665335143
......
а среднее из 9 ти 0,014096652333 и это значение должно быть при каждом из 2826; 2827; 2828; 2829;....2834 а в отчете везде при каждом TileH: 0.014096665133
X: 9636.00 -> 9636; Y: 2831.00 -> 2831
TileH: 0.014096665133; PixH: 0.000055065098
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.092341008152; Bottom: 50.078244343019
Draude
Соображающий
 
Сообщения: 82
Зарегистрирован: 28 авг 2009, 02:02
Благодарил (а): 15 раз.
Поблагодарили: 3 раз.

Re: Прямой экспорт тайлов SAS Планеты в RMP (Magellan)

Сообщение zed » 19 мар 2016, 01:22

Указанное вами значение рассчитывается следующим образом.

Определяется среднее разрешение тайла для строки в 9 тайлов (step_y = 8 - это значит что к начальному Y надо прибавить 8, чтобы получить конечный):
Код: Выделить всё
tile_size_h = (rect_top - rect_bottom) / float(y2 - y1 + 1)

получается 0.014094517958.

Затем, это значение корректируется, чтобы попасть на границу тайлов:
Код: Выделить всё
    x, y = lonlat_to_xy_rmp(rect_left, rect_top, tile_size_w, tile_size_h)
    x = _round(x)
    y = _round(y)
    w, h = calc_rmp_tile_size_new(rect_left, rect_top, x, y)

и получается 0.014096665133. Далее, это значение будет записано в хидеры слоя rmp файла и будет использоваться для каждого тайла в этом слое, для вычисления его координат.

Почему у вас получаются другие цифры я не знаю. Указали неправильное количество тайлов (8 а не 9) или считаете не так?
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Прямой экспорт тайлов SAS Планеты в RMP (Magellan)

Сообщение Draude » 19 мар 2016, 01:39

считаю так:
для каждого целого номера тайла меркатора пересчитываю его ATileHeightDegree_new :
ATileHeightDegree_new(2826) = (90-50,162824333817)/2826 => 0,01409666513312
ATileHeightDegree_new(2827) = (90-50,148746400663)/2827 => 0,01409665850702
......................................
ATileHeightDegree_new(2834) = (90-50,050084778383)/2834 => 0,01409665321864
==========================================================================
и беру среднее значение от
0,01409666513312
0,01409665850702
0,01409665335143
0,01409664966491
0,01409664744605
0,01409664669342
0,01409664740558
0,01409664958113
0,01409665321864
====================
0,014096652333 Это значение должно быть записано в хидеры слоя rmp файла и должно использоваться для каждого тайла в этом слое
Draude
Соображающий
 
Сообщения: 82
Зарегистрирован: 28 авг 2009, 02:02
Благодарил (а): 15 раз.
Поблагодарили: 3 раз.

Re: Прямой экспорт тайлов SAS Планеты в RMP (Magellan)

Сообщение zed » 19 мар 2016, 01:55

Наверное можно и так. Только разница не сильно принципиальная.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Прямой экспорт тайлов SAS Планеты в RMP (Magellan)

Сообщение Draude » 19 мар 2016, 02:08

Вообще то есть мысли по расчету на лучшее, схождение.
Но и при этом расчете на 12 тайлов у меня только в одном тайле (в даном случае нижний) несовпадение превысило половину пиксела (а точнее - 0,9 пикс)
-0,489760776
-0,149755049
0,114969873
0,304407295
0,418550509
0,457392853
0,420927626
0,309148217
0,12204798
-0,140379732
-0,478141475
-0,891243841
Draude
Соображающий
 
Сообщения: 82
Зарегистрирован: 28 авг 2009, 02:02
Благодарил (а): 15 раз.
Поблагодарили: 3 раз.

Re: Прямой экспорт тайлов SAS Планеты в RMP (Magellan)

Сообщение zed » 19 мар 2016, 03:20

Вот результаты пересчёта для вашего варианта нахождения усреднённого разрешения:
Код: Выделить всё
Rect info [X: 9636; Y1: 5545; Y2: 5565; Z: 14]:
Top: 50.162824333817; Bottom: 49.866316729539
TileH: 0.014119409728; PixH: 0.000055153944
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2821.45 -> 2821
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.162998191392; Bottom: 49.866444828052

Bottom diff: 0.000128098513 = 2.32 pix
====
Tile info [X: 9636; Y: 5545; Z: 14]:
Top: 50.162824333817; Bottom: 50.148746400663
TileH: 0.014077933155; PixH: 0.000054991926
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2821.01 -> 2821
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.162998191392; Bottom: 50.148876602661

Top diff: 0.000173857574 = 3.16 pix
Bottom diff: 0.000130201998 = 2.37 pix
=====
Tile info [X: 9636; Y: 5546; Z: 14]:
Top: 50.148746400663; Bottom: 50.134664322167
TileH: 0.014082078496; PixH: 0.000055008119
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2822.01 -> 2822
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.148876602661; Bottom: 50.134755013931

Top diff: 0.000130201998 = 2.37 pix
Bottom diff: 0.000090691764 = 1.65 pix
=====
Tile info [X: 9636; Y: 5547; Z: 14]:
Top: 50.134664322167; Bottom: 50.120578097960
TileH: 0.014086224207; PixH: 0.000055024313
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2823.01 -> 2823
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.134755013931; Bottom: 50.120633425200

Top diff: 0.000090691764 = 1.65 pix
Bottom diff: 0.000055327240 = 1.01 pix
=====
Tile info [X: 9636; Y: 5548; Z: 14]:
Top: 50.120578097960; Bottom: 50.106487727673
TileH: 0.014090370287; PixH: 0.000055040509
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2824.00 -> 2824
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.120633425200; Bottom: 50.106511836470

Top diff: 0.000055327240 = 1.01 pix
Bottom diff: 0.000024108797 = 0.44 pix
=====
Tile info [X: 9636; Y: 5549; Z: 14]:
Top: 50.106487727673; Bottom: 50.092393210939
TileH: 0.014094516735; PixH: 0.000055056706
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2825.00 -> 2825
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.106511836470; Bottom: 50.092390247739

Top diff: 0.000024108797 = 0.44 pix
Bottom diff: 0.000002963199 = 0.05 pix
=====
Tile info [X: 9636; Y: 5550; Z: 14]:
Top: 50.092393210939; Bottom: 50.078294547389
TileH: 0.014098663549; PixH: 0.000055072904
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2826.00 -> 2826
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.092390247739; Bottom: 50.078268659009

Top diff: 0.000002963199 = 0.05 pix
Bottom diff: 0.000025888380 = 0.47 pix
=====
Tile info [X: 9636; Y: 5551; Z: 14]:
Top: 50.078294547389; Bottom: 50.064191736659
TileH: 0.014102810730; PixH: 0.000055089104
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2827.00 -> 2827
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.078268659009; Bottom: 50.064147070278

Top diff: 0.000025888380 = 0.47 pix
Bottom diff: 0.000044666381 = 0.81 pix
=====
Tile info [X: 9636; Y: 5552; Z: 14]:
Top: 50.064191736659; Bottom: 50.050084778383
TileH: 0.014106958277; PixH: 0.000055105306
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2828.00 -> 2828
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.064147070278; Bottom: 50.050025481548

Top diff: 0.000044666381 = 0.81 pix
Bottom diff: 0.000059296835 = 1.08 pix
=====
Tile info [X: 9636; Y: 5553; Z: 14]:
Top: 50.050084778383; Bottom: 50.035973672195
TileH: 0.014111106187; PixH: 0.000055121509
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2829.00 -> 2829
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.050025481548; Bottom: 50.035903892818

Top diff: 0.000059296835 = 1.08 pix
Bottom diff: 0.000069779378 = 1.27 pix
=====
Tile info [X: 9636; Y: 5554; Z: 14]:
Top: 50.035973672195; Bottom: 50.021858417734
TileH: 0.014115254461; PixH: 0.000055137713
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2830.00 -> 2830
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.035903892818; Bottom: 50.021782304087

Top diff: 0.000069779378 = 1.27 pix
Bottom diff: 0.000076113647 = 1.38 pix
=====
Tile info [X: 9636; Y: 5555; Z: 14]:
Top: 50.021858417734; Bottom: 50.007739014637
TileH: 0.014119403098; PixH: 0.000055153918
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2830.99 -> 2831
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.021782304087; Bottom: 50.007660715357

Top diff: 0.000076113647 = 1.38 pix
Bottom diff: 0.000078299280 = 1.42 pix
=====
Tile info [X: 9636; Y: 5556; Z: 14]:
Top: 50.007739014637; Bottom: 49.993615462541
TileH: 0.014123552096; PixH: 0.000055170125
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2831.99 -> 2832
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.007660715357; Bottom: 49.993539126626

Top diff: 0.000078299280 = 1.42 pix
Bottom diff: 0.000076335915 = 1.38 pix
=====
Tile info [X: 9636; Y: 5557; Z: 14]:
Top: 49.993615462541; Bottom: 49.979487761086
TileH: 0.014127701455; PixH: 0.000055186334
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2832.99 -> 2833
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 49.993539126626; Bottom: 49.979417537896

Top diff: 0.000076335915 = 1.38 pix
Bottom diff: 0.000070223191 = 1.27 pix
=====
Tile info [X: 9636; Y: 5558; Z: 14]:
Top: 49.979487761086; Bottom: 49.965355909913
TileH: 0.014131851173; PixH: 0.000055202544
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2834.00 -> 2834
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 49.979417537896; Bottom: 49.965295949165

Top diff: 0.000070223191 = 1.27 pix
Bottom diff: 0.000059960748 = 1.09 pix
=====
Tile info [X: 9636; Y: 5559; Z: 14]:
Top: 49.965355909913; Bottom: 49.951219908662
TileH: 0.014136001251; PixH: 0.000055218755
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2835.00 -> 2835
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 49.965295949165; Bottom: 49.951174360435

Top diff: 0.000059960748 = 1.09 pix
Bottom diff: 0.000045548227 = 0.82 pix
=====
Tile info [X: 9636; Y: 5560; Z: 14]:
Top: 49.951219908662; Bottom: 49.937079756975
TileH: 0.014140151687; PixH: 0.000055234968
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2836.00 -> 2836
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 49.951174360435; Bottom: 49.937052771704

Top diff: 0.000045548227 = 0.82 pix
Bottom diff: 0.000026985271 = 0.49 pix
=====
Tile info [X: 9636; Y: 5561; Z: 14]:
Top: 49.937079756975; Bottom: 49.922935454496
TileH: 0.014144302480; PixH: 0.000055251182
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2837.00 -> 2837
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 49.937052771704; Bottom: 49.922931182974

Top diff: 0.000026985271 = 0.49 pix
Bottom diff: 0.000004271522 = 0.08 pix
=====
Tile info [X: 9636; Y: 5562; Z: 14]:
Top: 49.922935454496; Bottom: 49.908787000867
TileH: 0.014148453629; PixH: 0.000055267397
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2838.00 -> 2838
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 49.922931182974; Bottom: 49.908809594244

Top diff: 0.000004271522 = 0.08 pix
Bottom diff: 0.000022593376 = 0.41 pix
=====
Tile info [X: 9636; Y: 5563; Z: 14]:
Top: 49.908787000867; Bottom: 49.894634395734
TileH: 0.014152605133; PixH: 0.000055283614
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2839.00 -> 2839
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 49.908809594244; Bottom: 49.894688005513

Top diff: 0.000022593376 = 0.41 pix
Bottom diff: 0.000053609779 = 0.97 pix
=====
Tile info [X: 9636; Y: 5564; Z: 14]:
Top: 49.894634395734; Bottom: 49.880477638743
TileH: 0.014156756992; PixH: 0.000055299832
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2840.00 -> 2840
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 49.894688005513; Bottom: 49.880566416783

Top diff: 0.000053609779 = 0.97 pix
Bottom diff: 0.000088778040 = 1.61 pix
=====
Tile info [X: 9636; Y: 5565; Z: 14]:
Top: 49.880477638743; Bottom: 49.866316729539
TileH: 0.014160909204; PixH: 0.000055316052
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2841.01 -> 2841
TileH: 0.014121588730; PixH: 0.000055162456
TileW: 0.021972656250; PixW: 0.000085830688
Top: 49.880566416783; Bottom: 49.866444828052

Top diff: 0.000088778040 = 1.60 pix
Bottom diff: 0.000128098513 = 2.32 pix
=====
Max Top diff 3.16 pix
Max Bottom diff 2.37 pix

Максимальное отклонение уменьшилось. Суть не изменилась - всё плохо.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Прямой экспорт тайлов SAS Планеты в RMP (Magellan)

Сообщение Draude » 19 мар 2016, 13:26

Все очень даже не плохо. :)
На этом этапе просто великолепно!
При параметре 8 тайлов (9 по факту) с моими числами совпало отлично
Top diff
-0,657 2826
-0,317 2827
-0,052 2828
0,137 2829
0,251 2830
0,290 2831
0,253 2832
0,142 2833
-0,046 2834


Код: Выделить всё
>>>
Rect info [X: 9636; Y1: 5545; Y2: 5553; Z: 14]:
Top: 50.162824333817; Bottom: 50.035973672195
TileH: 0.014094517958; PixH: 0.000055056711
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2826.43 -> 2826
TileH: 0.014096652333; PixH: 0.000055065048
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.162860505595; Bottom: 50.035990634594

Bottom diff: 0.000016962398 = 0.31 pix
====
Tile info [X: 9636; Y: 5545; Z: 14]:
Top: 50.162824333817; Bottom: 50.148746400663
TileH: 0.014077933155; PixH: 0.000054991926
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2826.00 -> 2826
TileH: 0.014096652333; PixH: 0.000055065048
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.162860505595; Bottom: 50.148763853262

Top diff: 0.000036171778 = 0.66 pix
Bottom diff: 0.000017452599 = 0.32 pix
=====
Tile info [X: 9636; Y: 5546; Z: 14]:
Top: 50.148746400663; Bottom: 50.134664322167
TileH: 0.014082078496; PixH: 0.000055008119
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2827.00 -> 2827
TileH: 0.014096652333; PixH: 0.000055065048
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.148763853262; Bottom: 50.134667200928

Top diff: 0.000017452599 = 0.32 pix
Bottom diff: 0.000002878761 = 0.05 pix
=====
Tile info [X: 9636; Y: 5547; Z: 14]:
Top: 50.134664322167; Bottom: 50.120578097960
TileH: 0.014086224207; PixH: 0.000055024313
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2828.00 -> 2828
TileH: 0.014096652333; PixH: 0.000055065048
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.134667200928; Bottom: 50.120570548595

Top diff: 0.000002878761 = 0.05 pix
Bottom diff: 0.000007549365 = 0.14 pix
=====
Tile info [X: 9636; Y: 5548; Z: 14]:
Top: 50.120578097960; Bottom: 50.106487727673
TileH: 0.014090370287; PixH: 0.000055040509
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2829.00 -> 2829
TileH: 0.014096652333; PixH: 0.000055065048
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.120570548595; Bottom: 50.106473896261

Top diff: 0.000007549365 = 0.14 pix
Bottom diff: 0.000013831412 = 0.25 pix
=====
Tile info [X: 9636; Y: 5549; Z: 14]:
Top: 50.106487727673; Bottom: 50.092393210939
TileH: 0.014094516735; PixH: 0.000055056706
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2830.00 -> 2830
TileH: 0.014096652333; PixH: 0.000055065048
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.106473896261; Bottom: 50.092377243928

Top diff: 0.000013831412 = 0.25 pix
Bottom diff: 0.000015967011 = 0.29 pix
=====
Tile info [X: 9636; Y: 5550; Z: 14]:
Top: 50.092393210939; Bottom: 50.078294547389
TileH: 0.014098663549; PixH: 0.000055072904
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2831.00 -> 2831
TileH: 0.014096652333; PixH: 0.000055065048
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.092377243928; Bottom: 50.078280591594

Top diff: 0.000015967011 = 0.29 pix
Bottom diff: 0.000013955795 = 0.25 pix
=====
Tile info [X: 9636; Y: 5551; Z: 14]:
Top: 50.078294547389; Bottom: 50.064191736659
TileH: 0.014102810730; PixH: 0.000055089104
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2832.00 -> 2832
TileH: 0.014096652333; PixH: 0.000055065048
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.078280591594; Bottom: 50.064183939261

Top diff: 0.000013955795 = 0.25 pix
Bottom diff: 0.000007797398 = 0.14 pix
=====
Tile info [X: 9636; Y: 5552; Z: 14]:
Top: 50.064191736659; Bottom: 50.050084778383
TileH: 0.014106958277; PixH: 0.000055105306
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2833.00 -> 2833
TileH: 0.014096652333; PixH: 0.000055065048
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.064183939261; Bottom: 50.050087286927

Top diff: 0.000007797398 = 0.14 pix
Bottom diff: 0.000002508545 = 0.05 pix
=====
Tile info [X: 9636; Y: 5553; Z: 14]:
Top: 50.050084778383; Bottom: 50.035973672195
TileH: 0.014111106187; PixH: 0.000055121509
TileW: 0.021972656250; PixW: 0.000085830688

X: 9636.00 -> 9636; Y: 2834.00 -> 2834
TileH: 0.014096652333; PixH: 0.000055065048
TileW: 0.021972656250; PixW: 0.000085830688
Top: 50.050087286927; Bottom: 50.035990634594

Top diff: 0.000002508545 = 0.05 pix
Bottom diff: 0.000016962398 = 0.31 pix
=====
Max Top diff 0.66 pix
Max Bottom diff 0.32 pix


При чем экстраполя́ция с TileH: 0.014096652333 на 10-тый нижний тайл 2835 показывает Top diff: -0,308.
2835.png
.
Есть резерв, нужен более точный алгоритм.

Далее, по количеству вертикальных тайлов.
Помнится когда вся каша з экспортом в RMP затевалась, то заказчик в первом же сообщении привел следующий факт
Если делать в MOBAC карту для Магеллана размером 20000х20000 пикселей или более, то карта создаётся, но не работает.

Что такое 20000 пикселей? Это всего то неполных 8 тайлов!!!!. И как то обходились. И это не смотря на уровень зума как то обходились, скажем 7 полных тайлов на z18 :D :D :D
В нашем случае, если на z15 взять 7 тайлов то на z18 выйдем тайлов высоту так под 60.
Draude
Соображающий
 
Сообщения: 82
Зарегистрирован: 28 авг 2009, 02:02
Благодарил (а): 15 раз.
Поблагодарили: 3 раз.

Пред.След.

Вернуться в Раздел для разработчиков программы SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0