SASGIS - SAS.Планета
View Issue Details
0002969SAS.Планета[All Projects] Хотелкаpublic20-02-2016 13:5121-02-2016 09:37
draude 
zed 
normaltweakhave not tried
closednot fixable 
.Nightly 
 
0002969: Прямой экспорт тайлов в проекции Меркатора в RMP для навигаторов Magellan
Анализ содержимого .rmp файлов полученых как в SAS так и из других источников дает основание на осуществление в SAS прямого экспорта тайлов проекции меркатор в .rmp-файл без дополнительной перенарезки под географическую проекцию.
Для прямого экспорта тайлов проекции меркатор предлагаю попробывать реализовать схему, когда не меркатор нарезкой будет подгоняться под сетку rmp,а просто для более-менее удобных размеров групп существующих тайлов меркатор будут браться координаты этой группы а также вычисленные средние высоты (груп тайлов) в градусах и эти данные просто вписывать в .TLM файл.
http://www.sasgis.org/forum/viewtopic.php?p=41899#p41899
http://xt.ht/phpbbhttp://xt.ht/phpbb/viewtopic.php?p=694639&sid=b90284bcf788855d8be1121419d800e4#p694639
В выделенке Z13 пометил тайлы, красным получились границы тайлов меркатор. Сделал экспорт в .rmp с включенным Don't transform tiles to Geographic projection.
Разобрал .rmp и собрал пазлы.
Синим границы новой нарезки, не совпали с оригинальными (красным).
Выделил область побольше, уровень "поглубже". Повторил предыдущее.
С уровня z15 получилось два контейнера .a00. В одном 153 (9х17) а в другом 34 (2х17).
Теперь если следовать автору RMP Creator: "В RMP весь мир образно порезан на тайлы 256х256 пикселей" и принять за основу сетки тайлов RMP в которую вписались тайлы с первого контейнера (9х17)а потом попытаться наложить тайлы со второго контейнера (2х17) то увидим следующее:
-Непопадание границ тайлов с второго контейнера в сетку первого свидетельствует что в RMP нет строгой географической привязки тайлов к какай либо постоянной
сетки.
Из SAS в одну операцию экспорта мы получили для одной выделенной области одного уровня (z15) две различные разкладки(сетки) тайлов из которых кстати формируется один цельный GPS-растр.

 
magellan, rmp, растр
related to 0000538resolved zed Многослойные карты *.rmp для приборов Magellan (Triton, Explorist) и программы VantagePoint 
png 2016-02-20_z15topo_4.png (2,296,985) 20-02-2016 13:51
https://bugtracker.sasgis.org/file_download.php?file_id=2010&type=bug
png Grid256x256z13.png (433,338) 20-02-2016 13:53
https://bugtracker.sasgis.org/file_download.php?file_id=2011&type=bug
jpg 153_all.jpg (471,022) 20-02-2016 13:54
https://bugtracker.sasgis.org/file_download.php?file_id=2012&type=bug
jpg 32_all.jpg (288,277) 20-02-2016 13:54
https://bugtracker.sasgis.org/file_download.php?file_id=2013&type=bug
png 153.png (413,464) 20-02-2016 13:55
https://bugtracker.sasgis.org/file_download.php?file_id=2014&type=bug
png 153_34.png (500,456) 20-02-2016 13:56
https://bugtracker.sasgis.org/file_download.php?file_id=2015&type=bug
png 34.png (275,453) 20-02-2016 14:08
https://bugtracker.sasgis.org/file_download.php?file_id=2016&type=bug
gif z13.gif (154,944) 20-02-2016 14:12
https://bugtracker.sasgis.org/file_download.php?file_id=2017&type=bug
gif

gif Grid256x256z13.gif (484,796) 20-02-2016 14:13
https://bugtracker.sasgis.org/file_download.php?file_id=2018&type=bug
gif 54321__.gif (320,057) 21-02-2016 08:48
https://bugtracker.sasgis.org/file_download.php?file_id=2019&type=bug
Issue History
20-02-2016 13:51draudeNew Issue
20-02-2016 13:51draudeFile Added: 2016-02-20_z15topo_4.png
20-02-2016 13:53draudeFile Added: Grid256x256z13.png
20-02-2016 13:54draudeFile Added: 153_all.jpg
20-02-2016 13:54draudeFile Added: 32_all.jpg
20-02-2016 13:55draudeFile Added: 153.png
20-02-2016 13:56draudeFile Added: 153_34.png
20-02-2016 14:07draudeNote Added: 0017020
20-02-2016 14:08draudeFile Added: 34.png
20-02-2016 14:10draudeTag Attached: magellan
20-02-2016 14:10draudeTag Attached: rmp
20-02-2016 14:10draudeTag Attached: растр
20-02-2016 14:12draudeFile Added: z13.gif
20-02-2016 14:13draudeFile Added: Grid256x256z13.gif
20-02-2016 15:48zedNote Added: 0017022
20-02-2016 15:49zedSummary0001234: Создание RMP-файлов для навигаторов Magellan => Прямой экспорт тайлов в проекции Меркатора в RMP для навигаторов Magellan
20-02-2016 15:50zedRelationship addedrelated to 0000538
21-02-2016 08:48draudeFile Added: 54321__.gif
21-02-2016 08:53draudeNote Added: 0017024
21-02-2016 08:54draudeNote Edited: 0017024bug_revision_view_page.php?bugnote_id=17024#r6855
21-02-2016 08:55draudeNote Edited: 0017024bug_revision_view_page.php?bugnote_id=17024#r6856
21-02-2016 09:36zedNote Added: 0017025
21-02-2016 09:37zedNote Edited: 0017025bug_revision_view_page.php?bugnote_id=17025#r6858
21-02-2016 09:37zedStatusnew => closed
21-02-2016 09:37zedAssigned To => zed
21-02-2016 09:37zedResolutionopen => not fixable

Notes
(0017020)
draude   
20-02-2016 14:07   
Cиним - сетка тайлов первого, большего контейнера .а00
Если фрагменты карты совместить то видно, что тайлы фрагмента со второго .а00 смещены по вертикали относительно тайлов первого фрагмента
(0017022)
zed   
20-02-2016 15:48   
1. Чем вас не устраивает текущий вариант экспорта?

2. Для произвольно взятой точки с координатами ALon, ALat и для "мира", разрешение тайлов которого равно ATileWidthDegree и ATileHeightDegree координаты тайлов считаются вот так:

  AX := (ALon + 180) / ATileWidthDegree;
  AY := (-ALat + 90) / ATileHeightDegree;


Отсюда следует, что каждый тайл (строка тайлов) в проекции Меркатора, для rmp представляет собой свой собственный мир, со своей сеткой. И сетка следующей строки тайлов уже не совпадает с предыдущей, т.к. разрешение тайлов изменилось (ATileHeightDegree). Сетки этих миров не совпадают с сетками Меркатора. И вы правы в том, что для Меркатора нету какой-то постоянной сетки - она постоянно смещается из-за изменения разрешения мира.

Но если чисто случайно, взять тайлы в географической проекции, то окажется, что сетка rmp совпадает с их сеткой, хотя по Y нумерация тайлов и не совпадает (по X совпадает и нумерация).

И я просто теоретически не представляю, как можно что-то "подобрать" и как-то вписать тайлы без перенарезки для Меркатора.
(0017024)
draude   
21-02-2016 08:53   
(edited on: 21-02-2016 08:55)
У меня есть мысли по п.1 но сначала п.2
Ну тогда задача сводится к обратной. Для нарезки, которая бы начиналась по границам тайлов, нужно подобрать (вычислить) нужное разрешение ATileHeightDegree и если хватит точности то возможно получится нарезать тайлы которые впишутся в меркатор (в достаточно малой выделенной области).
И тут у меня вопрос, как собственно нарезка делается сейчас? Тоесть как определяется ATileHeightDegree?
 А можна в качестве эксперимента мне тупо для z15 заказать это разрешение ATileHeightDegree, скажем 0,0141157165, чтоб сделать нарезку выделенки возле широты 50°?

(0017025)
zed   
21-02-2016 09:36   
(edited on: 21-02-2016 09:37)
> Ну тогда задача сводится к обратной.
Ваши задачи не реализуемы. Ни прямая, ни обратная. Не забивайте себе голову и не тратьте ни своё, ни моё время на эту затею.

> И тут у меня вопрос, как собственно нарезка делается сейчас?
Воот! Прежде чем предлагать что-то новое, вначале надо разобраться как вообще работает существующее. И разбираться надо не в багтрекере. Сюда надо приходить с готовым решением.

> Тоесть как определяется ATileHeightDegree?
Вот так:

VRectLL := AProjection.TileRect2LonLatRect(ATilesRect);
VTileWidth := (VRectLL.Right - VRectLL.Left) / (ATilesRect.Right - ATilesRect.Left);
VTileHeight := (VRectLL.Top - VRectLL.Bottom) / (ATilesRect.Bottom - ATilesRect.Top);

VRectLL - это прямоугольник географических координат
ATilesRect - это прямоугольник тайлов
т.е. мы вычисляем сколько градусов покрывает один тайл (не пиксель!).

> А можна в качестве эксперимента мне тупо для z15 заказать это разрешение ATileHeightDegree, скажем 0,0141157165, чтоб сделать нарезку выделенки возле широты 50°?
Можно конечно. Сорцы открыты - берите, изменяйте как вам хочется, придумывайте новый алгоритм. Если будут положительные результаты, приходите сюда, будем разговаривать. А сейчас я этот тикет закрою и прекращу бессмысленное обсуждение.