Сообщество путешественников
АВТОМОБИЛЕМ ПО ГОРНОМУ АЛТАЮ
 
Еще о SASPlanet - Форум

[Новые сообщения · Участники · Правила форума · Поиск · RSS ]

  • Страница 1 из 1
  • 1
Еще о SASPlanet
speleodogДата: Пятница, 21.06.2013, 21:57 | Сообщение # 1
Главный путешественник
Группа: Заслуженные
Сообщений: 307
Авто: Нива 2121
Награды: 9
Репутация: 4
Замечания: 0%  ±
Статус: Вне сайта (А разве вне сайта есть жизнь?)
Нашел я на просторах сети вот такую статью smile Сдалал все так, как там описывается для карт Алтая. Но результата нет. Сделанное не открывается. Может другие будут удачливей smile

Преобразование пользовательских карт в формат, понятный SAS.Планете
SAS.Планета - наиотличнейшая программа. Недавно заюзал еще одну ее фичу. У меня много всяких топографических карт Архангельской
области, 10-ти, 5-ти, 2-, 1-километровки и некоторые другие, рассматриваю их в
Озике, удобно, но не идеально - карты порезаны на листы, бывает заинтересует
какое-нибудь место, которое находится в районе границы двух, а то и четырех
листов, приходится переключаться между картами, пока изучишь все подходы, вот бы
все карты склеить. Еще одна мечта - чтобы при разном масштабировании на экране
менялась подробность карты, как в каких-нибудь Яндекс.Картах, названия мелких
объектов исчезали, а оставались только крупные, короче, чтобы при одном
приближении видеть 10-километровку, при другом - 5-, при следующем 2- и так
далее.
Решил я тогда использовать кэш САС.Планеты в качестве хранилища топографических карт, а саму прогу - в качестве движка для их отображения. Нужно
перегнать карты в один из форматов, которые САС.Планета понимает в качестве
кэша, предварительно изменив проекцию этих карт на Меркатор (все российские
топографические карты - в проекции Гаусса-Крюгера). В этом помогла мощнейшая
программа GlobalMapper. Я загрузил все свои карты одного масштаба,
предварительно привязанные под Озик, в GlobalMapper, изменил там проекцию на
Меркатор, причем GM при изменении проекции умеет трансформировать растровое
изображение, где надо растягивать, где надо сжимать.
Потом отрезал от карт рамки, в большинстве случаев получилось автоматически, в некоторых случаях
пришлось вручную повозиться с указанием границ листов, благо они проходят по
параллелям и меридианам. Дальше порезать полученную огромную карту
квадратно-гнездовым методом на фрагменты по 256x256 пикселей и сохранить в
формате, который понимает САС.Планета, такой формат нашелся - Google Map Tiles,
подключить полученную карту к САС.Планете (создать файл *.zmp).
Что это мне дало - непрерывную 2-км (пока, с километровками еще не закончил) карту всей
области, можно прокрутить ее с севера на юг, с запада на восток перед глазами,
не переключаясь между листами.
Для поездки в конкретное место можно средствами САС.Планеты сохранить любой участок (опять же непрерывный) под Озик,
загрузить в наладонник и ехать.

 
Теперь по порядку
 
Продемонстрирую вышесказанное на примере 4 соседних листов масштаба 1:100000 (в 1 см 1 км): P37-02; P37-03; P37-08; P37-09, предварительно привязанных под
OziExplorer.
  В реальности листов может быть больше, но не слишком много - примерно на 150 загруженных листах размером
6000x4700 пикселей каждый, GlobalMapper ругается, что не хватает памяти, поэтому
большие наборы карт нужно обрабатывать по частям.

 
Запускаем GlobalMapper, у меня версия 11, в десятой версии все практически так же. Заходим в меню Файл, выбираем пункт Open Data
File(s). Или, что тоже самое, Open Your Own Data Files прямо в окне
GlobalMapper'а.  Здесь и далее на скриншотах буду стараться показать, куда надо
щелкнуть, потому что не знаю как точно называются те или иные пункты меню в
русифицировнной версии GM:

 

Выбираем нужные нам файлы, с помощью клавиш Ctrl и Shift можно выбрать сразу несколько файлов. Можно выбрать только один, а потом
открыть второй, третий и так далее, все карты будут добавляться к уже
загруженным в GM. В отличие от Озика GlobalMapper показывает не map - файлы в
своем диалоге открытия файлов, а файлы графических форматов. Тем не менее для
правильного открытия файлы привязки (map) для каждой картинки должны
присутствовать в тех же папках, где и сами картинки:


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

$IMAGE3$
SAS.Планета работает с картами в проекции Меркатор, а наши карты на данный момент в проекции Гаусса-Крюгера (точнее, в ее импортном
аналоге - Universal Transcverse Mercator, UTM). Для изменения проекции заходим в
меню Tools - Configure:



В появившемся окне переходим на вкладку Projection и меняем следующие значения:
Проекция - с Transverse Mercator на Mercator, в нижнем окошке все параметры на 0 кроме первого (SCALE FACTOR), его оставляем,
как был:


Систему координат пока не трогаем, перед сохранением карты поставим WGS-84, а пока нам будет удобнее работать в той системе, которая
была (в данном случае Пулково-1942). Проекция настроена, нажимаем ОК. Результат
преобразований налицо, параллели и меридианы стали параллельны краям
экрана:

$IMAGE6$
Теперь избавимся от белых рамок, которые наползают на соседние листы.
Есть два способа  - быстрый (автоматический) и медленный (ручной). Быстрый удобен, но почему-то не для всех карт дает хорошие
результаты. Попробуем этот способ:

Выбираем пункт меню Tools - Control Center или, что то же самое, кнопку Open Control Center:

Появится вот такое окошко (центр управления слоями):

Выделяем все листы с помощью клавиш Shift или Ctrl, нажимаем кнопку Options. В появившемся окне переходим на вкладку
Cropping:


Выбираем Automatically Crop Collar.
Нажимаем ОК. Приблизив карту в области границы двух листов видим, что между листами образовался зазор:

На самом деле это не листы раздвинулись, все осталось на своем месте, просто часть изображения залита желтым цветом.
Значит, в данном случае первый способ не подходит, применим второй способ, точный, но занудный, особенно, если листов
много.

Прикрепления: 0593041.png (708.8 Kb) · 3904304.png (86.2 Kb) · 8322197.png (68.7 Kb) · 4981784.png (176.1 Kb) · 8452806.png (129.7 Kb) · 7580176.png (61.9 Kb) · 1781158.png (117.2 Kb) · 4641962.png (664.3 Kb)
 
speleodogДата: Пятница, 21.06.2013, 22:09 | Сообщение # 2
Главный путешественник
Группа: Заслуженные
Сообщений: 307
Авто: Нива 2121
Награды: 9
Репутация: 4
Замечания: 0%  ±
Статус: Вне сайта (А разве вне сайта есть жизнь?)
Продолжаю smile
Опять заходим в центр управления слоями через меню Tools - Control Center, все листы теперь выбирать не нужно. Выбираем первый лист
(у меня это P-37-02), нажимаем кнопку Options (можно просто на первом листе
дважды кликнуть мышью). В появившемся окне  также переходим на вкладку Cropping
и выбираем на этот раз Crop to Manually Specified Lat/Lon Boundary:


Автоматически появится окошко для ручного ввода границ листа. Здесь нам нужно указать границы местности, изображенной на данном
листе (сверху вниз: северная, южная, западная, восточная :)). Если вы имеете
минимальное представление о топографии, вы без проблем определите, где у листа
границы.
 По моим наблюдениям в большинстве случаев западная и восточная границы определяются правильно автоматически, одна из
границ - северная или южная тоже. В некоторых случаях неправильно определяются
все границы. Для листа P-37-02 северная граница будет 64° (определена автоматически верно), южная 63°40' (нужно вводить в градусах в
десятичной системе, поэтому вводим 63.6666666666), западная 37, восточная 38
(определены автоматически верно). Правильные границы получатся
такие:

Нажимаем ОК
Аналогично вводим вручную границы для всех остальных листов. Если все правильно, то листы состыкуются без
зазоров:
$IMAGE3$
Подготовимся теперь к сохранению получившейся карты в формате Google Maps Tiles. Нужно определиться с системой координат,
можно сохранять и в Пулково-42, можно и в WGS-84, от выбранной СК зависят
дальнейшие действия по подключению карты к SAS.Планета. Я перед сохранением
меняю СК на WGS-84, для этого нужно зайти в тот же диалог, где ранее меняли
проекцию на Mercator (через меню Tool - Configure). Выбираем СК (datum) WGS84,
нажимаем ОК:

Все преобразования карты закончены, осталось только сохранить ее в формате Google Maps Tiles (порезанную на куски (тайлы) по
256x256 пикселей, каждый из кусков озаглавлен в соотвествии с его местом в
карте).
Для этого выбираем пункт меню File - Export Web Formats (Google Maps, VE, WW, etc.) - Export Google Maps Tiles. Будьте
внимательны, если у вас GlobalMapper 10-й версии, то пункт Export Google Maps
Tiles будет не вторым, а первым в списке:



Появится окошко, в котором можно задать параметры экспорта:

Остановимся только на тех параметрах, значения которых имеет смысл менять:
Zoom Level Setup - максимальный уровень сгенерированных тайлов, указанный здесь уровень отличается на 1 в меньшую
сторону от уровня, отображаемого в SAS.Планете, то есть, тайлы 13 уровня мы
будем видеть в SAS.Планете при масштабе 14x.
Number of Zoom Levels to Use: 5. Сколько всего уровней генерировать вниз от максимального, указано 5, значит будут
сгенерированы тайлы 13, 12, 11, 10 и 9 уровней.
Эти параметры GlobalMapper выбирает автоматически, можно оставить их по умолчанию, если результат не устроит, можно будет в
дальнейшем удалить лишние уровни или наоборот, сгенерировать
недостающие.
Tile Image File Format - графический формат для тайлов. Я пока сильно не задумывался, какой формат в данном случае лучше, для
себя остановился на JPG.
Поставим галку напротив последнего пункта - Skip Empty Tiles. Если между листами имеются промежутки, которые GlobalMapper
заполняет желтым цветом, тайлы для таких пустых областей генерироваться не
будут.
Все параметры установили, нажимаем ОК.
GlobalMapper предложить указать папку и имя *.htm - файла. Файл называем как хотим, он нам, в принципе, не пригодится. Если
интересно - можете по окончании всех работ открыть этот файл и посмотреть, что
получилось.
Ну вот, процесс пошел, появилось вот такое окошко:


Внизу написано, что окончание примерно в воскресенье в 11:25.  Иной раз, когда листов загружено много, процесс может занять полдня.

Дождались окончания, тайлы готовы, в выходной папке сформировался файл формата htm и 5 папок: Z9 - Z13.
 
Подключим теперь наш набор тайлов в SAS.Планете в качестве новой карты.
Список картографических сервисов, с которыми умеет работать SAS.Планета, не зашит в программу жестко, а может легко пополняться
пользователем. Каждый тип карт описывается специальным файлом с расширением zmp,
находящимся в папке \maps основной папки программы SAS.Планета. Исчерпывающее
описание файлов zmp можно найти в файле readme.txt, поставляемом с
SAS.Планетой.
Создадим для нашей карты новый zmp, для этого скопируем уже имеющийся файл GoogleSat.zmp под новым именем, например
Example.zmp.
Теперь заходим в получившийся файл, как в архив (Total Commander позволяет это делать даже без изменения расширения на zip,
если вы пользуетесь проводником, измените расширение на zip, откройте архив
WinRAR'ом или WinZip'ом).
В архиве лежат 4 файла: 18.bmp, 24.bmp, GetUrlScript.txt и params.txt. Открываем params.txt, вот его
содержимое:

[PARAMS]pnum=1
GUID={F6574B06-E632-4D5F-BC75-C8FA658B57DF}
name=Спутник (Google)
name_9=Satellite (Google maps)
asLayer=0
DefURLBase=http://khm.google.com/kh/v=60&hl=ru
projection=1
sradiusa=6378137
sradiusb=6378137
NameInCache=sat
separator=0
Ext=.jpg
UseDwn=1
Usestick=1
UseGenPrevious=1
Usedel=1
Usesave=1
UseAntiBan=1
Sleep=1000
DefHotKey=71
ContentType=image/jpeg
BanIfLen=4321
Модифицируем этот файл следующим образом:
строку pnum=1 удаляем,
в строке GUID={F6574B06-E632-4D5F-BC75-C8FA658B57DF} изменяем уникальный идентификатор. Если у вас есть программа для их генерирования, то генерируем и вставляем новый, а можно просто случайным образом
изменить пару знаков в имеющемся с учетом того, что все знаки в GUID'е - это
знаки шестнадцатиричной системы счисления, то есть цифры от 0 до 9 и латинские
буквы от A до F, другие символы недопустимы.
в строке name=... меняем имя карты, например, "Мои карты 1:100000",
с строке name_9= то же самое, только по английски, например "My maps 1:100000". Если не планируется использовать SAS.Планету с
английским языком пользовательского интефейса, то можно эту строку вообще
убрать, но если вы хотите выложить свой zmp-файл в Интернете, то лучше оставить,
чтобы англоязычным пользователям было понятно.
Строку DefURLBase=http://khm.google.com/kh/v=60&hl=ru удаляем совсем, ведь мы будем пользоваться тайлами, лежащими в кэше.
NameInCache=sat меняем на NameInCache=my100000. My100000 - так будет называться папка с тайлами для новой карты в кэше SAS.Планеты.

Строку DefHotKey=71 удаляем.
В конце файла или между двумя любыми строками добавляем строку: CacheType=4.
 
В результате получилось:

[PARAMS]GUID={F6574B06-E632-3D5F-BC75-C8FA658B57DE}
name=Мои карты 1:100000
name_9=My maps 1:100000
asLayer=0
projection=1
sradiusa=6378137
sradiusb=6378137
NameInCache=My100000
separator=0
Ext=.jpg
UseDwn=1
Usestick=1
UseGenPrevious=1
Usedel=1
Usesave=1
UseAntiBan=1
Sleep=1000
ContentType=image/jpeg
BanIfLen=4321
CacheType=4
Сохраняем файл params.txt.
Если вы меняли расширение файла example.zmp на zip, то поменяйте его обратно на zmp.
Теперь нужно положить тайлы в папку, в которой они будут доступны SAS.Планете. По умолчанию кэш формата Google Maps
Tiles SAS.Планета хранит в папке \cache_gmt основной папки SAS.Планеты. Если
такой папки нет, создайте ее. В папке \cache_gmt (или в какой другой, если вы
храните кэш в другом месте) создайте папку My100000 и скопируйте в нее папки с
тайлами (папки Z9 - Z13) сгенерированные GlobalMapper'ом.
 
Все готово. Запускаем SAS.Планету и, перемещаясь по какой-нибудь из ранее существующих карт, обращаем свой взор на город Онегу
Архангельской области. Выбираем любой масштаб от x10 до x14 (ведь мы
сгенерировали всего 5 уровней тайлов), заходим в меню Карты и выбираем пункт
"Мои карты 1:100000":

Теперь мы видим нашу карту в SAS.Планете и можем работать с ней точно так же, как и с другими картами:

Разные уровни тайлов можно генерировать из листов разного масштаба, тогда при масштабировании карты в SAS.Планете мы будем видеть,
например сначала 10-километроквку, где детализация низкая, но зато надписи
крупные, затем 5-, 2-, 1-километровки и более подробные карты.

Повторюсь: Сделал все согласно этой инструкции, новая папка в SASPlanet создалась, показывается что из кеш загружаются тайлы, но изображение не появилось... :(
Прикрепления: 4526961.png (529.2 Kb) · 7131915.png (75.1 Kb) · 0731973.png (79.3 Kb) · 5749449.png (470.9 Kb) · 1718414.png (154.3 Kb) · 2885780.png (21.0 Kb) · 8518143.png (417.8 Kb) · 4357745.png (1.23 Mb)
 
  • Страница 1 из 1
  • 1
Поиск:


Яндекс цитирования Рейтинг@Mail.ru


Copyright Свитайло Е.Н. © 2009-2024. При использовании материалов гиперссылка на сайт обязательна!
111222333