View Issue Details

IDProjectCategoryView StatusLast Update
0002969SAS.ПланетаХотелка / Feature requestpublic21-02-2016 09:37
Reporterdraude Assigned Tozed  
PrioritynormalSeveritytweakReproducibilityhave not tried
Status closedResolutionnot fixable 
Product Version.Nightly 
Summary0002969: Прямой экспорт тайлов в проекции Меркатора в RMP для навигаторов Magellan
DescriptionАнализ содержимого .rmp файлов полученых как в SAS так и из других источников дает основание на осуществление в SAS прямого экспорта тайлов проекции меркатор в .rmp-файл без дополнительной перенарезки под географическую проекцию.
Steps To ReproduceДля прямого экспорта тайлов проекции меркатор предлагаю попробывать реализовать схему, когда не меркатор нарезкой будет подгоняться под сетку rmp,а просто для более-менее удобных размеров групп существующих тайлов меркатор будут браться координаты этой группы а также вычисленные средние высоты (груп тайлов) в градусах и эти данные просто вписывать в .TLM файл.
Additional Informationhttp://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-растр.

 
Tagsmagellan, rmp, растр
Attached Files
2016-02-20_z15topo_4.png (2,296,985 bytes)
Grid256x256z13.png (433,338 bytes)
153_all.jpg (471,022 bytes)
32_all.jpg (288,277 bytes)
153.png (413,464 bytes)
153_34.png (500,456 bytes)
34.png (275,453 bytes)
z13.gif (154,944 bytes)   
z13.gif (154,944 bytes)   
Grid256x256z13.gif (484,796 bytes)
54321__.gif (320,057 bytes)

Relationships

related to 0000538 resolvedzed Многослойные карты *.rmp для приборов Magellan (Triton, Explorist) и программы VantagePoint 

Activities

draude

20-02-2016 14:07

reporter   ~0017020

Cиним - сетка тайлов первого, большего контейнера .а00
Если фрагменты карты совместить то видно, что тайлы фрагмента со второго .а00 смещены по вертикали относительно тайлов первого фрагмента

zed

20-02-2016 15:48

manager   ~0017022

1. Чем вас не устраивает текущий вариант экспорта?

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

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

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

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

И я просто теоретически не представляю, как можно что-то "подобрать" и как-то вписать тайлы без перенарезки для Меркатора.

draude

21-02-2016 08:53

reporter   ~0017024

Last edited: 21-02-2016 08:55

У меня есть мысли по п.1 но сначала п.2
Ну тогда задача сводится к обратной. Для нарезки, которая бы начиналась по границам тайлов, нужно подобрать (вычислить) нужное разрешение ATileHeightDegree и если хватит точности то возможно получится нарезать тайлы которые впишутся в меркатор (в достаточно малой выделенной области).
И тут у меня вопрос, как собственно нарезка делается сейчас? Тоесть как определяется ATileHeightDegree?
 А можна в качестве эксперимента мне тупо для z15 заказать это разрешение ATileHeightDegree, скажем 0,0141157165, чтоб сделать нарезку выделенки возле широты 50°?

zed

21-02-2016 09:36

manager   ~0017025

Last edited: 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°?
Можно конечно. Сорцы открыты - берите, изменяйте как вам хочется, придумывайте новый алгоритм. Если будут положительные результаты, приходите сюда, будем разговаривать. А сейчас я этот тикет закрою и прекращу бессмысленное обсуждение.

Issue History

Date Modified Username Field Change
20-02-2016 13:51 draude New Issue
20-02-2016 13:51 draude File Added: 2016-02-20_z15topo_4.png
20-02-2016 13:53 draude File Added: Grid256x256z13.png
20-02-2016 13:54 draude File Added: 153_all.jpg
20-02-2016 13:54 draude File Added: 32_all.jpg
20-02-2016 13:55 draude File Added: 153.png
20-02-2016 13:56 draude File Added: 153_34.png
20-02-2016 14:07 draude Note Added: 0017020
20-02-2016 14:08 draude File Added: 34.png
20-02-2016 14:10 draude Tag Attached: magellan
20-02-2016 14:10 draude Tag Attached: rmp
20-02-2016 14:10 draude Tag Attached: растр
20-02-2016 14:12 draude File Added: z13.gif
20-02-2016 14:13 draude File Added: Grid256x256z13.gif
20-02-2016 15:48 zed Note Added: 0017022
20-02-2016 15:49 zed Summary 0001234: Создание RMP-файлов для навигаторов Magellan => Прямой экспорт тайлов в проекции Меркатора в RMP для навигаторов Magellan
20-02-2016 15:50 zed Relationship added related to 0000538
21-02-2016 08:48 draude File Added: 54321__.gif
21-02-2016 08:53 draude Note Added: 0017024
21-02-2016 08:54 draude Note Edited: 0017024
21-02-2016 08:55 draude Note Edited: 0017024
21-02-2016 09:36 zed Note Added: 0017025
21-02-2016 09:37 zed Note Edited: 0017025
21-02-2016 09:37 zed Status new => closed
21-02-2016 09:37 zed Assigned To => zed
21-02-2016 09:37 zed Resolution open => not fixable
08-08-2025 13:24 zed Category Хотелка => Хотелка / Feature request