• ВНИМАНИЕ! ПРОСЬБА ВОЗДЕРЖАТЬСЯ ОТ ОБСУЖДЕНИЯ НА ФОРУМЕ ЛЮБЫХ ПОЛИТИЧЕСКИХ СОБЫТИЙ! СПАСИБО!

Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG (Просматривает: 1)

С нами с
19.03.2009
Сообщения
5 023
Репутация
3 579
Возраст
66
Откуда
Мурманск
Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG
По крайней мере, вы старались.
Хотя это было известно, не только по вопросам на этом форуме, но и на других где размещали вопрос.
А что собственно в вопросе обновления данных сложного? GM подложка есть, наложенная структура есть, Впервые сформировать данные в САС и сделать ZMP и всё. А далее просто их менять с поступлением новых, делов то.
И всё равно благодарен за старания, они дают толчёк мыслям.
 
С нами с
15.08.2013
Сообщения
500
Репутация
886
Откуда
регион 60
Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG
Вот, решил предоставить вашему вниманию

Карта-таблица приоритетов стандартных типов (01..7F) Garmin.

Примерно так она выглядит в MapSource:

Table of Garmin Types Priority overview.png

Для чего она нужна:

Карта-таблица может оказаться полезной картостроителям
для выяснения приоритета одного типа над другим на приборах,
на которых нет поддержки переопределения типов (картплоттеры),
или в случае невозможности задействования TYP-файлов.

Как построена таблица:

Сначала снизу вверх отрисовываются ГОРИЗОНТАЛЬНЫЕ ПОЛОСЫ, соответствующие типам от 00 (0) до 7F (127).
Эти 128 горизонтальных полос образуют квадрат, являющийся фоном (background).
Каждая фоновая полоса обозначается как Bgnd+номер типа (от Bgnd00 до Bgnd7F)

Далее на этом фоне отрисовываются слева направо 128 ВЕРТИКАЛЬНЫХ ПОЛОС, соответствующих типам от 00 (0) до 7F (127).
Каждая фоновая полоса обозначается как номер типа (от 00 до 7F)

После отрисовки получаем "шахматную доску", каждая клетка с координатами (X,Y) которой является
результатом наложения полигона типа X на полигон типа Y.

Взаимодействие двух типов полигонов X и Y происходит не только в клетке (X,Y), но и в клетке (Y,X)
(первая координата - отсчёт по горизонтали, вторая -- по вертикали)
В (X,Y) полигон типа X накладывается на полигон типа Y.
В (Y,X) полигон типа Y накладывается на полигон типа X.

Если клетки (X,Y) и (Y,X) имеют цвет полигона типа X, то значит приоритет полигона X выше, чем полигона Y.
Если клетки (X,Y) и (Y,X) имеют цвет полигона типа Y, то значит приоритет полигона Y выше, чем полигона X.

Если клетка (X,Y) имеет цвет полигона типа X,
а клетка (Y,X) имеет цвет полигона типа Y,
то это значит, что приоритет полигонов РАВНЫЙ!
В этом случае цвет зависит от ПОРЯДКА ОТРИСОВКИ полигонов на экран!

Приоритеты разных типов полигонов в различных приборах могут отличаться.

Пример: Garmin GpsMap60CSx:

TypesPriorityTableGPSmap60CSx.png

Видно, что многие типы имеют равный приоритет.
Например, тип 0E (коричневая полоса) перекрывает все типы, но и сам покрывается многими типами (например, типами 08..0D,0F..12).

А вот так этот же участок выглядит в MapSource:

Table of Garmin Types Priority Mapsource.png

Видна чёткая иерархия типов:
Наибольший приоритет у типа 0E (коричневые полосы).
Чуть меньший приоритет у водных типов (голубые полосы).
Далее идут типы 04..0C (белые полосы).
Затем идут "лесные" типы 14..1A (зелёные полосы).

Типы с равным приоритетом тоже присутствуют, но в очень небольшом количестве.
Например: 0D и 0C, 0D и 13.


Скачать / Download


Содержимое архива:

В архиве 2 варианта карты-таблицы 12345678.img (c TRE 1 3 17 0 и TRE 1 4 23 0),
созданные двумя разными компиляторами: cGPSmapper и MkGmap.

Присутствует исходник карты в польском формате TypesPriorityTest.mp.

Так же в архив добавил батники для компиляции MP-файла, если в него вносились изменения.
Не забудьте поменять в них пути до компиляторов.

В архив положены файлы, необходимые для просмотра в MapSource:
ReefToGarminMapset.img
ReefToGarminMapset.tdb


Достаточно создать какую-нибудь карту конвертером (которому посвящена эта тема) на стандартных настройках,
а в результирующую папку закинуть эти 2 файла + файл карты 12345678.img
-- и всё, таблица должна быть доступна для просмотра в MapSource|BaseCamp|HomePort.

Для просмотра в навигаторе/картплоттере достаточно закинуть файл 12345678.img в папку \GARMIN на приборе.
Для старых моделей приборов (вроде GPSmap 60CSx) придётся предварительно переименовать 12345678.img в GMAPSUPP.IMG

ЗЫ:
Делал такую же таблицу и для расширенных (морских) типов.
Но бедный мэпсорс такой "картой" просто подавился -- вылетел с ошибкой.
Придётся разбивать на более мелкие части.

ДВС! Подскажите, плз, конвертер понимает файлы KMZ только от ReefMaster?
Да, только от Reefmaster 2.0/1.8, только ВЕКТОРНЫЕ kmz.
 
С нами с
11.08.2019
Сообщения
58
Репутация
21
Возраст
47
Откуда
Хмельницкий
Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG
VadimK60 На отрисовку векторных слоев, как мне кажется, должны влиять атрибуты слоя. Таблица показывает отрисовку слоев по умолчанию (без атрибутов). Весь вопрос в том, умеет ли эхолот читать эти атрибуты и какие эти атрибуты для кастомных карт. GARMIN при построении карт атрибуты типа LAYER или DrawPriority, COLOR и т.д применяет и они читаются эхолотом. Или все просто - эхолот не лезет в атрибуты кастомных карт?
 
С нами с
15.08.2013
Сообщения
500
Репутация
886
Откуда
регион 60
Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG
Тема: Загадка дня. :)

Допиливаю тут помаленьку конвертер.

Ввёл режим создания карты специально для картплоттеров (без TYP).

Прикрутил MkGmap параллельно cGPSmapper'у.
Разница ощутимая, и по скорости, и по возможностям!
MkGmap кроме польского формата умеет конвертировать карты в формате OSM (Open Street Map). Собственно говоря, это его родной формат. :)
Ну вот и решил я воспользоваться этой возможностью. Ведь из карт OSM можно создавать прекрасную подложку для рифмастеровских карт!
Добавил сегодня с утреца эту возможность в многострадальный свой конвертер. Полюбовался.
Но приглядевшись, заметил, что подложка в режиме картплоттера и в обычном режиме отличаются: :wacko:

1591645329858.png
(режим картплоттера)

1591645352272.png
(обычный режим переносного навигатора)

Видно, что в обычном режиме пропала заливка ВСЕХ полигонов подложки!
(пропали леса, болота, парки и всё остальное)

Меня как человека интересующегося этой темой относительно недавно, этот факт сильно удивил. И на полдня я погрустнел. :(
К вечеру до меня всё-таки дошло, как же решить эту проблему. Завтра вечером выложу разгадку.

А пока на ночь глядя всем заинтересованным предлагаю обдумать и обсудить этот ребус. :D
Напоминаю, что две карты отличаются только отсутствием и наличием TYP файла.

1591646148264.png
 
Последнее редактирование:
С нами с
11.08.2019
Сообщения
58
Репутация
21
Возраст
47
Откуда
Хмельницкий
Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG
Неужели есть надежда. Вернуться из растра :aggressive:
 
С нами с
15.08.2013
Сообщения
500
Репутация
886
Откуда
регион 60
Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG
А пока на ночь глядя всем заинтересованным предлагаю обдумать и обсудить этот ребус. :D
Напоминаю, что две карты отличаются только отсутствием и наличием TYP файла.

Разгадка (ход мыслей)

Раз из двух карт полигоны отображаются только в той, которая использует TYP-файл, значит проблему ищем в этом направлении.

По факту получается:
* если нет TYP-файла, то отображаются ВСЕ полигоны карт(-ы).
* если есть TYP-файл, то отображаются ТОЛЬКО полигоны, перечисленные в этом файле.

Поэтому появилось предположение, что надо бы описание ВСЕХ полигонов из обеих карт занести в TYP-файл, при помощи которого, как известно, переопределяют типы.

Но как это сделать ? Ведь нам не надо переопределять стандартные типы из той же карты OSM ?

Как оказалось, переопределять не обязательно!
Достаточно просто упомянуть все используемые типы в секции [_drawOrder] TYP-Файла.
В этой секции задаются приоритеты типов.
Для непереопределяемых типов можно просто задать минимальный приоритет (или по собственному усмотрению).

И тогда все полигоны и с карты OSM, и с рифмастеровской отобразятся так как и положено!
---

А теперь самый главный вопрос: кому может быть полезна эта информация ?

Ответ: тем, кто самостоятельно будет пытаться совмещать карту, полученную при помощи конвертера, с другими векторными картами.
Например, старые приборы (вроде моего GpsMap 60CSx) принимают только один файл карты GMAPSUPP.IMG.
Поэтому от совмещения разных карт в одном контейнере никуда не деться.

В прошлом году кто-то из пользователей конвертера сталкивался с подобной проблемой. Но тогда я не смог помочь, т.к. в той ситуации было слишком много неизвестных.
Теперь все предупреждены! :)

В следующей версии конвертера добавлю соответствующее "исправление."

PS:
Кстати, если внимательно сравнить первый и третий варианты карты, то можно заметить, что на третьем варианте на подложке справа от озера появился зелёный полигон, который на первом варианте карты видно не было.

1591766215919.png
Все это за счёт того, что всем стандартным типам в TYP-файле я присвоил равный минимальный (=1) приоритет. В результате полигоны стали отрисовываться в порядке их задания в IMG-файле, а не согласно приоритетам, заданным в MapSource или в самом приборе.
 
С нами с
15.08.2013
Сообщения
500
Репутация
886
Откуда
регион 60
Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG
Неужели есть надежда. Вернуться из растра :aggressive:
Вернуться в вектор на картплоттерах EchoMap Plus/UHD ? Это вряд ли...

Ну, если только JohnSilverXVIII не расковыряет прошивку:
  • Для начала неплохо было бы "разобраться" с приоритетами типов полигонов в приборе. Возможно это позволило бы без ограничений отображать вектор на фоне растра. Есть у меня предположение, что на фоне растра отображаются типы только с очень высоким приоритетом.
  • Кроме того, раз на картплоттере нет возможности использовать TYP-файлы, то может в самой прошивке удалось бы задать значения цветов для неиспользуемых сейчас типов полигонов. Получается, что из 4 с лишним тысяч возможных типов сейчас используется (хоть как то окрашено) от силы несколько десятков.
Если удастся доработать прошивку таким образом, то под картплоттеры с такой патченой прошивкой можно было бы создавать вполне симпатичные векторные карты.

-----
Кстати про вектор на плюсах/UHD.
На досуге рассматривал ваши скриншоты таблицы расширенных типов с EchoMap UHD 93 (спасибо за них ещё раз!).
Заметил интересный участок на одном скриншоте -- столбец типов 0x107xx (обведён белым эллипсом):

1591770415240.png

И чем то его раскраска напомнила мне таблицу цветов затенения:

изображение_viber_2020-05-24_12-22-30.jpg

Собственно, возникло предположение: а не связана ли как-то таблица цветов затенения с таблицей типов ?

Либо в таблице затенения каждому цвету или каждому диапазону глубин сопоставляется один из типов полигонов.
Либо наоборот: цвета каких-то типов полигонов [динамически] берутся из таблицы затенения.
Есть третий вариант: никакой связи между типами полигонов и цветами затенения нет. :(

Чтобы проверить эту гипотезу, нужно:
  1. Загрузить карту-таблицу расширенных типов в эхолот в ВЕКТОРНОМ (без растра) режиме.
  2. Перейти в пункт "Затенение диапазонов глубин". Сделать скриншот таблицы затенения.
  3. Переключиться на карту. Сделать скриншоты таблицы типов на флэшку.
  4. Снова перейти в пункт "Затенение диапазонов глубин". Изменить цвета (желательно все). Глубины для диапазонов, думаю, менять не стоит.
  5. Опять сделать скриншот таблицы затенения.
  6. Снова наделать скриншоты карты-таблицы типов на флэшку.
  7. Перенести все скриншоты на комп и сравнить
Сам я проделать этот эксперимент не могу -- нет у меня такого картплоттера. :pardon:
Но если кто из владельцев эхомапов проведёт такой эксперимент на своём приборе и поделится результатами, то буду премного благодарен !!!
 
Последнее редактирование:
С нами с
06.10.2011
Сообщения
1 824
Репутация
1 278
Возраст
50
Откуда
Санкт-Петербург,Красногвардейский р-н
Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG
Похоже, да, Garmin EchoMAP UHD 93sv не подерживает карты, использующие TYP-файлы для переопределения цветов.
Что делать дальше ?

Вариант 1: (смириться)
От сторонних карт, использующих TYP, придётся отказаться.
Свои карты делать в стандартной для Гармина сине-голубой гамме.
На все глубины всего 5 цветов. Зато хоть ограничений на изолинии нет...

Чтобы сделать такую карту:
1) в Reefmaster нужно уменьшить число глубин на карте до 5.
2) в конвертере выставить для полигонов начальный тип 03 подтип 02 (галку "морской" оставить)

Посмотреть вложение 7813742
Тоже самое значение типа хотел предложить и для полилиний, но выяснилось, что так лучше не делать: глубина интерпретируется в футах и при переводе в метры уменьшается в 3 раза. Поэтому лучше оставить значение по-умолчанию (0e 00).

Кроме того в дополнительных настройках желательно поставить тип карты Marine=Y

Посмотреть вложение 7813839

Кроме варианта Marine=Y существует ещё парочка: Marine=B и Marine=X - можно их тоже попробовать.

Посмотреть вложение 7813835

Одна и та же карта на аппаратах с поддержкой TYP будет выглядеть, как в Рифмастере (не забываем про 5 цветов),
а на карплоттерах без поддержки TYP -- в голубых тонах:

Посмотреть вложение 7813870
(примерно так, но цветов только 5)

Вариант 2: (смириться)
Перейти-таки на растр.

1) В Reefmaster2 сохранить карту в формате .mbtiles
2) При помощи скртипта на питоне распаковать .mbtiles и перенести полученные файлы в кэш SAS-planet.
(подробнее здесь и важное дополнение здесь)
3) В SAS-planet сохранить карту в гарминовский .IMG

По сравнению с вектором места карта займёт побольше, но выглядеть будет примерно в том же пёстром стиле.

Вариант 3: (бороться :))
Написать JohnSilverXVIII письмо на зелёный форум с просьбой исследовать вопрос: возможно ли разлочить в прошивке поддержку TYP-Файлов ?
Ведь наверняка это обычное маркетинговое ограничение. Может он заинтересуется
Здравствуйте,Вадим.Хотел в личку написать,но она у Вас закрыта. Всю голову сломал-не могу сконвертировать карту для картплоттера без TYP-файла. Все сделал согласно инструкции-получается морская карта но без градиента цветов по полигонам глубин. Вот исходник: https://yadi.sk/d/xG97XO26bikCxQ
Что делаю не так? Заранее спасибо
 
С нами с
15.08.2013
Сообщения
500
Репутация
886
Откуда
регион 60
Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG
Здравствуйте,Вадим.Хотел в личку написать,но она у Вас закрыта. Всю голову сломал-не могу сконвертировать карту для картплоттера без TYP-файла. Все сделал согласно инструкции-получается морская карта но без градиента цветов по полигонам глубин. Вот исходник: https://yadi.sk/d/xG97XO26bikCxQ
Что делаю не так? Заранее спасибо
Конвертер не понимает отрицательные глубины.
Это или в Рифмастере где-то поменять надо.
Или ручками извлечь DOC.KML из .KMZ и при помощи текстового редактора заменить в нём все вхождения:
"<name>-" на "<name>"
"--" на "-"

Например:
<name>-50--40m</name>
надо заменить на
<name>50-40m</name>
тогда нормально всё должно конвертироваться.

1602615803761.png
 
С нами с
06.10.2011
Сообщения
1 824
Репутация
1 278
Возраст
50
Откуда
Санкт-Петербург,Красногвардейский р-н
Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG
Конвертер не понимает отрицательные глубины.
Это или в Рифмастере где-то поменять надо.
Или ручками извлечь DOC.KML из .KMZ и при помощи текстового редактора заменить в нём все вхождения:
"<name>-" на "<name>"
"--" на "-"

Например:
<name>-50--40m</name>
надо заменить на
<name>50-40m</name>
тогда нормально всё должно конвертироваться.

Посмотреть вложение 8323291
Понял, спасибо!
 
С нами с
12.04.2018
Сообщения
39
Репутация
33
Возраст
50
Откуда
Питер-Выборг-Судома
Конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG
Здравствуйте Господа-хорошие!Осмелюсь маленько оффтопнуть)))Роюсь на просторах нета,но не могу найти ясности: Имею старичка 60 Сх,есть ли возможность залить в него кусок "навионикс сонар чарт" из САС планеты?Как понимаю 60ка кушает только вектор.
С уважением.
 

Сейчас смотрят

Вверх