SASGIS

Веб-картография и навигация

SAS.Wiki

Веб-картография и навигация

Инструменты пользователя

Инструменты сайта


добавление_нового_кэша_к_уже_существующему

Это старая версия документа.


У вас есть несколько листов карты, из которой вы хотите сделать свой кэш и ZMP (карту, в понимании SAS.Планеты). Допустим, что эти листы нумеруются и расположены (относительно друг друга) таким образом: А Б В Г Д Е

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

Если генерится кэш из новых листов, не имеющих смежных сторон с уже присутствующими в кэше (напр. А и В), новый кэш плюсуется к старому и никаких проблем это не должно вызывать. Если новые листы соприкасаются со “старыми” (БВ, БД, ВД и т.п.) то есть несколько вариантов решения проблем с пересекающимися тайлами.

Довольно затратный по машинному времени, но удобный и не требующий никаких специальных программ и умения их создавать.

Допустим, в первый раз вы обработали два листа АБ. В следующий раз вам понадобилось добавить в кэш третий лист (В). Но вы запускаете в обработку не один лист, который вам нужен, а захватываете смежную часть предыдущей выборки (Б) и обрабатываете два листа БВ.

При обработке первой пары листов получилась вот такая матрица тайлов:

1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10

При обработке второй пары получили следующие тайлы:

6 7 8 9 10 11 12 13 14 15 6 7 8 9 10 11 12 13 14 15 6 7 8 9 10 11 12 13 14 15 6 7 8 9 10 11 12 13 14 15 6 7 8 9 10 11 12 13 14 15 6 7 8 9 10 11 12 13 14 15

Неполными из них будут (скорее всего!) все граничные, т.е. верхняя и нижняя строки и все шестёрки и пятнашки. Но поскольку прибавлять вы будете к левым листам, то и волновать вас должна только левая граница этой матрицы. Удаляете все шестёрки. Весьма удобен для этого Total Commander в котором есть функция Показать все файлы без подкаталогов (Ctrl+B) и разнообразная сортировка. Остальные тайлы должны получиться (если настройки генерации не изменялись) такими же и поэтому они вам не помешают. Копируете с заменой новые тайлы в папку с предыдущим результатом.

Следующие способы мало отличаются друг от друга, в основном, авторством скриптов и соотв. выбором сопутствующих программ. Но у “скриптовых” способов есть один недостаток. Дело в том, что Global Mapper иногда присваивает тайлам разные цвета @канала. И при попытке склеить граничные тайлы с разными @каналами в результирующем тайле получается наложение “лишнего” цвета на существующую часть картинки. Для обоих скриптовых способов обязательно указывать в настройках экспорта прозрачность PNG формата 2. скриптовый-1 Автор: UrikEEE Дата: 27.01.2012г. Использует растровый редактор Gimp. Собственно скрипт. Я внёс туда пару небольших поправок: закомментил удаление отработанных тайлов и подвинул границу восприятия “пустых” тайлов в меньшую сторону.

Возьмём файл MergePNG.scm и сохраним его в в папке %UserProfile%\.gimp-\scripts (эта папка появилась после установки программы Gimp-). Возьмём файл MovePNG.vbs и сохраним его в той папке, где будем складывать получаемые тайлы, например C:\Tiles\.

  После окончания экспорта в веб-формат из Global Mapper запускаем vbs-скрипт

MovePNG.vbs, сохранённый в папке C:\Tiles\. Скрипт начинает выполняться, в процессе выполнения формируется временный текстовый файл-скрипт для Gimp. В конце выполнения vbs-скрипта возможен запуск Gimp. Gimp будет запущен в случае, если при перемещении файлов из временного хранилища в постоянное хранилище были обнаружены файлы-тайлы с такими же именами-координатами. Такая ситуация вероятнее всего возникнет, как только мы станем повторно обрабатывать карты, смежные с ранее обработанными.

  Во время выполнения скрипта в консольное окно будут выводиться строки, показывающие,

какой файл-тайл был только что обработан. Мы спокойно смотрим на этот процесс, ожидая появления надписи » The End! Press any key to close…». При появлении этой надписи жмём любую клавишу на клаве (или кликаем мышкой на кнопке закрытия окна) – только в этом случае окно закроется и vbs-скрипт продолжит свою работу.

  По окончании своей работы vbs-скрипт покажет окошко закрытия самого себя; жмем OK и теперь можно повторить экспорт следующей партии листов )
  3. скриптовый-2

Автор: Papazol Дата: ??г.

Описание находится тут. Использует composite.exe из состава программного продукта ImageMagick. Собственно скрипт.

Загружаем в Global Mapper несколько листов карты. Желательно загружать карты в виде прямоугольника X на Y, полностью заполненного листами. Общее количество загружаемых листов зависит от возможностей компьютера (в основном от объёма памяти и от разрядности ОС и GM). Нарезаем загруженные листы на тайлы. Путь, по которому будут складываться нарезанные тайлы, указываем и запоминаем. Для полученного кэша необходимо создать собственный zmp. Тогда можно сразу по окончании нарезки на тайлы открыть SAS.Планету и посмотреть результат работы. Используем утилиту ggc_linking.exe для удаления краевых тайлов полученного кэша. Для этого указываем в качестве Папки с картами ту папку, в которую Global Mapper складывал нарезанные тайлы, в качестве Сборки – папку в кэше SAS.Планеты, указываем масштаб и жмём Удалить края. Края нужно удалить на всех масштабах. После удаления краевых тайлов имеет смысл ещё раз посмотреть результат работы в SAS.Планете. Хотя бы для первого раза. Теперь используем утилиту ggc_linking.exe для сборки кэша. Она берёт тайл из папки-источника и проверяет наличие тайла с таким же названием в папке назначения. Если такой тайл существует, значит, эти тайлы краевые. Утилита склеивает их друг с другом с помощью сторонней программы composite.exe из состава программного продукта ImageMagick. Если тайл с таким названием в папке назначения отсутствует, то он просто копируется туда из папки-источника. Таким образом, можно постепенно добавлять в кэш всё новые и новые листы карт, получая непрерывное покрытие. Поскольку папки источника и назначения уже указаны, просто жмём Собрать кэш. Начнётся сборка кэша в указанную папку. Смотрим результат работы в SAS.Планете. Если всё хорошо, можно приступать к обработке следующей партии листов карты. Содержимое папки-источника можно предварительно удалить для экономии места на диске.

Перевод этой страницы: