View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002969SAS.Планета[All Projects] Хотелкаpublic20-02-2016 13:5121-02-2016 09:37
Reporterdraude 
Assigned Tozed 
PrioritynormalSeveritytweakReproducibilityhave not tried
StatusclosedResolutionnot fixable 
PlatformOSOS Version
Product Version.Nightly 
Target VersionFixed in Version 
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 Filespng file icon 2016-02-20_z15topo_4.png [^] (2,296,985 bytes) 20-02-2016 13:51
png file icon Grid256x256z13.png [^] (433,338 bytes) 20-02-2016 13:53
jpg file icon 153_all.jpg [^] (471,022 bytes) 20-02-2016 13:54
jpg file icon 32_all.jpg [^] (288,277 bytes) 20-02-2016 13:54
png file icon 153.png [^] (413,464 bytes) 20-02-2016 13:55
png file icon 153_34.png [^] (500,456 bytes) 20-02-2016 13:56
png file icon 34.png [^] (275,453 bytes) 20-02-2016 14:08
gif file icon z13.gif [^] (154,944 bytes) 20-02-2016 14:12


gif file icon Grid256x256z13.gif [^] (484,796 bytes) 20-02-2016 14:13
gif file icon 54321__.gif [^] (320,057 bytes) 21-02-2016 08:48

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

-  Notes
(0017020)
draude (reporter)
20-02-2016 14:07

Cиним - сетка тайлов первого, большего контейнера .а00
Если фрагменты карты совместить то видно, что тайлы фрагмента со второго .а00 смещены по вертикали относительно тайлов первого фрагмента
(0017022)
zed (manager)
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 (reporter)
21-02-2016 08:53
edited on: 21-02-2016 08:55

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

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


- Users who viewed this issue
User List Anonymous (1739x), draude (48x), vdemidov (5x), zed (13x), Garl (2x), gma (1x)
Total Views 1808
Last View 07-07-2020 05:46

- 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 View Revisions
21-02-2016 08:55 draude Note Edited: 0017024 View Revisions
21-02-2016 09:36 zed Note Added: 0017025
21-02-2016 09:37 zed Note Edited: 0017025 View Revisions
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



Copyright © 2007 - 2020 SAS.Planet Team