Подскажите, пожалуйста, можно ли в SAS.planet подключить карту в формате MBTiles ?
Если возможно, то каково должно быть содержимое соответствующего файла *.zmp\params.txt ?
Объясню, почему меня интересует этот вопрос.
Делаю карты грубин местных водоёмов в ReefMaster ver1.7.
Раньше сохранял результат в .KML+.PNG,
которые потом разбивал на тайлы в Global Mapper v.16,
которые потом помещал в cache_gmt SAS.planet,
которые потом экспортировал в кэш SAS.Android на планшете.
(К сожалению, используемый мною эхолот не поддерживает картографию)
Новый ReefMaster v2.0 умеет сохранять результат в файл .mbtiles , который по сути является базой данных из нарезанных тайлов.
Т.е. появился шанс избавиться от посредника в виде ГлобалМэппера.
Если напрямую подключить .MBtiles в SAS.planet невозможно, то может посоветуете какой-нибудь конвертер для перевода .MBtiles в набор тайлов, поддерживаемый программой SAS.planet (желательно, с наименьшими потерями) ? Кстати, может мне показалось, но вроде как содержимое тайлов из MBtiles совпадает с глобалмэпперовскими тайлами, а вот нумерация -- нет. Может я и заблуждаюсь.
Буду рад ответам и советам. Заранее спасибо!
PS: Очень кстати нашелся на этом форуме питоновский скрипт для выдёргивания тайлов из SQLite-овской базы: (спасибо pfg21).
Переделал его под .MBTiles:
- Код: Выделить всё
import sqlite3, os
extension = '.png'
dbase = sqlite3.connect('MyReefMasterMap.mbtiles') # open sqlitedb
cur = dbase.cursor() # create cursor
cur.execute('SELECT * FROM tiles') # goto tiles
row = cur.fetchone() #read 1st row
while row != None: #loop all row
# make subdir
file_dir = 'tile_gmt\\z' + format(row[0])+ '\\' +format(row[1]) + '\\'
if not os.path.exists (file_dir): os.makedirs (file_dir)
# save image to file
file_out = open ( file_dir+format(row[2])+extension , 'wb' )
file_out.write(row[3]);
file_out.close()
row = cur.fetchone() # read next row
# end while
dbase.close()
Вроде работает, выкладывает тайлы в папку tile_gmt.
Правда, я не уверен, что координаты X и Y не перепутаны.
И _gmt (Global Mapper Tiles) тут наверное не к месту...
PPS:
С хранением кэша в формате MBTiles вроде как разобрался: в zmp\params.txt нужно указать тип кэша "MBTiles" -- добавить или изменить строку CachType=72.
После запуска планеты в корне программы появится каталог cache_MBtiles (структура аналогична папке cache), в ней папка кэша карты, и в поддиректории "v" располагается файл базы данных в виде файла MBtiles.sqlitedb (в моём случае: cache_MBtiles\yamapng_\v\MBtiles.sqlitedb ).
Остаётся открытым вопрос, насколько совместимы .mbtiles , выдаваемый ReefMaster'ом, и сасовский MBtiles.sqlitedb ?
PPPS:
Есть 2 новости, и обе плохие.
1. Поддержка MBTiles есть не в SAS.planet, как я ошибочно написал выше, а в SACS.planet, которая с 2015 года не развивается.
2. Формат кэша MBtiles.sqlitedb в SACS.planet имеет мало общего с файлом MBTiles от ReefMaster2. Причём если у последнего всё предельно ясно (z,x,y,картинка), то в кэше MBTiles от SACS слишком много всего навёрнуто, мягко говоря.
Поэтому на данный момент можно констатировать, что просто так файл MBTiles от ReefMaster2 подсунуть в качестве кэша SAS.planet невозможно...