Страница 2 из 4

Re: ReefMaster

СообщениеДобавлено: 08 ноя 2018, 01:14
Riverplate
Обсуждалось на русфишинге где-то весной 2017 г., когда и появилась версия рифа 2.0. Там помнится и скрины выкладывались с красивым затенением глубины "аля 3D", говорилось и об одновременном импорте карты глубин вместе со спутниковой подложкой - я у пары форумчан для знакомства с mbtiles попросил скинуть мне куски карт. Возможно, что можно и отдельно карту глубин импортировать без спутниковой подложки - не знаю. Однако думаю, что растровая карта глубин в формате mbtiles будет уже много весить, и как-бы Альпин не стал бы с ней подтормаживать...

Re: ReefMaster

СообщениеДобавлено: 10 янв 2019, 13:54
VadimK60
По теме ReefMaster'а :)
Недавно выложил самописный конвертер векторных карт ReefMaster .KMZ -> Garmin .IMG

Помогает получить на старых гарминовских приборах пёструю карту (при помощи TYP-файла), как в создаваемом рифмастером файле KMZ для GoogleEarth.
Изображение

Возможно, в ближайшее время добавлю функционал для работы с Garmin MapSource Product Creator...

Re: ReefMaster

СообщениеДобавлено: 27 мар 2019, 20:41
VadimK60
В продолжение старой темы.

Возникла необходимость перенести растровые карты глубин из ReefMaster'а в Garmin посредством SAS.planet
Первый этап (ReefMaster .mbtiles -> SAS.planet) прошёл успешно (я его уже описывал в этой теме).

Со вторым этапом (SAS.planet -> Garmin .IMG) возникло 2 проблемы:
1) Карты ReefMaster не видны в процессе экспорта в гарминовский IMG
2) В процессе экспорта нельзя склеивать разные карты/слои. Например, наложить рифмастеровские карты на спутник гугла.

Похоже, первая проблема связана с тем, что на экспорт не предлагаются слои, только карты!
Решение: нужно временно в файле настроек карты/слоя params.txt (например, Maps\sas.maps\ReefMaster.zmp\params.txt) поменять параметр asLayer=1 на asLayer=0

Для решения второй проблемы пришлось писать собственную прогу и задействовать утилиту Composite из набора инструментов для работы с изображениями ImageMagick

TileCombiner.png
Утилита для накладывания одного слоя на другой


Программа при помощи утилиты последовательно накладывает тайлы первого слоя (ReefMaster) на соответствующие тайлы второго слоя (Google Sat).
Результирующий тайл замещает тайл второго слоя. Поэтому рекомедуется предварительно бакапить КЭШ второго слоя!

Как пользоваться программой:

Создать первый слой (Reefmaster -- подробности в этом сообщении).

В SAS.planet кэшировать второй слой:
1) Выбрать карту, например, "Спутник (Google)"
2) Выделить нужный участок карты.
3) Скачать/закэшировать этот участок ("Операции с выделенной областью" > Вкладка "Загрузить"). Масштабы выбрать вплоть до 20 зума.

Скачать архив с программой TileCombiner.7z.
Распаковать содержимое архива в папку программы SAS.planet.
Запустить TileCombiner.exe
(при необходимости прописать все пути до папок, содержащих кэш карт, и путь до файла Composite.exe)
Нажать кнопку [START].
Программа создаст пакетный файл composite.exe.bat и запустит его.
В резутьтате ВСЕ тайлы первого слоя будут наложены на соответствующие тайлы второго слоя !!!

Далее в SAS.planet можно выделять нужный участок карты и экспортировать его в нужный формат.

 на спутник.jpg
пример наложения кастомного слоя ReefMaster на Google Sat


Естественно, склеивать можно не только упомянутые карты, но и другие.
Главное:
1) чтобы тайлы первого слоя были в формате .PNG (с прозрачностью).
2) чтобы параметры projection= , sradiusa= , sradiusb= из файлов params.txt обоих слоёв совпадали!
3) не забыть скэшировать ОБА слоя до нужного зума.

Например, можно попробовать наложить Росреестр на спутник Bing'а.
---
Скачать TileCombiner.7z (4Mb)

Re: ReefMaster

СообщениеДобавлено: 27 мар 2019, 22:50
vdemidov
Мда, чего только не сделают люди, что бы не разбираться в чужом коде. Вместо того что бы добавить такую возможность или хотя бы воспользоваться копированием кэша с наложением гибрида вы городите кучу костылей с отдельной утилитой :mrgreen:

Re: ReefMaster

СообщениеДобавлено: 28 мар 2019, 01:35
VadimK60
vdemidov писал(а):Вместо того что бы добавить такую возможность или хотя бы воспользоваться копированием кэша с наложением гибрида


Как сохранить слой в кэш

Спасибо за подсказку! Действительно, похоже я изобрёл очередной велосипед. :)
Ну, хоть в программировании попрактиковался немного... :D

Re: ReefMaster

СообщениеДобавлено: 28 мар 2019, 10:26
vdemidov
VadimK60 писал(а):Ну, хоть в программировании попрактиковался немного... :D

Так я и предлагаю направить энергию в полезное для всего общества русло. Присоединяйтесь к разработке САС. Например можете добавить в экспорт в img наложение гибрида. Там всех сложностей - нарисовать ГУЙ в выборе параметров экспорта. Или еще что-нибудь. В багтрекере полно багов и хотелок, которые не сложно реализовать, но до которых просто руки не доходят.

Re: ReefMaster

СообщениеДобавлено: 26 июн 2019, 13:29
VadimK60
По поводу "конвертера" ReefMaster MBtiles to SASplanet ;)
Пришло сегодня в личку сообщение:
но в свежей ночной сборке слой с картой из Рифа не виден. Попробовал на сборке где-то годичной давности - все работает, слой отображается. В чем может быть проблема?

Полез разбираться. Действительно, проблема. В январской ночной сборке такой проблемы ещё не было.

Похоже, в новой сборке по-тихому сменили тип кэша по-умолчанию на SQLite3.
Из плюсов такого решения: меньше файлов на диске, меньше проблем, выше скорость копирования.
Из минусов: теперь не получится использовать этот кэш простым копированием в SAS4Android.

Можно, конечно, пользоваться старой версией программы.
А можно вернуть всё взад:
в файле SASPlanet.ini изменить DefCache=71 на DefCache=2

Если вам всё равно, в каком формате хранится кэш, а нужно всего лишь, чтобы отображался слой Рифмастера, то достаточно добавить строку CacheType=2
в файле Maps\sas.maps\ReefMaster.zmp\params.txt

Обновлённый файл params.txt должен выглядеть следующим образом:
Код: Выделить всё
[PARAMS]
pnum=20
GUID={CBA03063-23D9-FFFF-931A-9182B98644B1}
asLayer=1
name_ru=ReefMaster
name   =ReefMaster
name_uk=ReefMaster
projection=1
sradiusa=6378137
sradiusb=6378137
NameInCache=ReefMaster
Ext=.png
ContentType=image/png
CacheType=2


Теперь слой ReefMaster'а должен отображаться без проблем.

ЗЫ: Ещё раз напоминаю: для того, чтобы экспортировать этот слой (например, в растровые карты Garmin), необходимо в params.txt временно изменить asLayer=1 (слой) на asLayer=0 (карта).
Иначе вы не увидите ReefMaster среди карт, доступных для экспорта!
По завершении экспорта верните обратно: asLayer=0 -> 1

Re: ReefMaster

СообщениеДобавлено: 26 июн 2019, 14:30
vdemidov
VadimK60 писал(а):в файле SASPlanet.ini изменить DefCache=71 на DefCache=2

Какой только фигней пользователи не занимаются, что бы не лезть в окно настроек программы :lol:

VadimK60 писал(а):Если вам всё равно, в каком формате хранится кэш, а нужно всего лишь, чтобы отображался слой Рифмастера, то достаточно добавить строку CacheType=2
в файле Maps\sas.maps\ReefMaster.zmp\params.txt

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

Тип тайлохранилища для конкретной конкретной карты задается вот такой цепочкой:
1. В параметрах карт, файл maps.ini, для каждой карты или слоя может быть определен какой-то конкретный тип тайлохранилища или ниичего не указано. Именно этот параметр изменяется в настройках карты в программе.
2. Если в maps.ini ничего не указано, то проверяется настройка типа тайлохранилища из zmp. Оно может быть не указано.
3. Если тип тайлохранилища так и не получен, то есть тип тайлохранилища по-умолчанию для вей программы. Именно он указан в SASPlanet.ini DefCache.

Re: ReefMaster

СообщениеДобавлено: 09 июл 2019, 02:15
v207
Приветстую всех. У меня скрипт не разбирает .mbtiles ну ни в какую. Питоны разные и х32, и х64, и старые, и новые. Имена и латиницей, и кириллицей. Пути самые разные, и в корне системы
W7x64, RM 2.0
Помогите, кто чем может, люди добрые.

Re: ReefMaster

СообщениеДобавлено: 09 июл 2019, 21:08
VadimK60
У меня такое впечатление, что питону не нравится ваш .PY файл в уникоде (UTF8)...

Архив из этого сообщения пробовали качнуть ?
Там есть готовый скрипт.