Выражаем благодарность: KSV за помощь со склейкой в ECW. vdemidov за переделку на корню всего что касается работы со скриптами и плагинами. >>Обсуждение: http://www.sasgis.ru/forum/ http://forum.ru-board.com/topic.cgi?forum=5&topic=25489&glp >>Скачать последнюю версию http://sasgis.ru/programs/sasplanet/SASPlanet.php Основной пакет карт: https://bitbucket.org/vdemidov/sas.maps/get/tip.zip Дополнительный пакет карт: https://bitbucket.org/garl/plus.maps/get/tip.zip >>Описание Программа SAS.Планета предназначена для просмотра и загрузки спутниковых карт высокого разрешения, предоставляемых такими сервисами, как Google Maps, "Космоснимки.ru", Яндекс.карты, Yahoo!, VirtualEarth, Gurtam, OpenStreetMap, eAtlas, DigitalGlobe и др., но в отличие от этих сервисов, все скачанные вами карты останутся у вас на компьютере, и вы сможете их просматривать даже без подключения к сети Интернет. Помимо спутниковых карт возможна работа с политической, ландшафтной, совмещенной картами, а также с картами луны и марса. Загрузка карт осуществляется как выделением некоторой области (возможно непрямоугольной) так и в процессе перемещения по карте. Карты часто обновляются - программа позволит вам загрузить только самые новые. Помимо просмотра и загрузки в программе реализованы следующие полезные функции: 1) Измерение расстояний; 2) Формирование карты заполнения слоя - эта функция позволит посмотреть области, на карте которые вы уже загрузили в кэш, или наоборот - которые у вас отсутствуют; 3) Сохранение части карты в одно изображение, которое вы можете просмотреть и обработать в любом графическом редакторе, а также использовать в других ГИС приложениях, например OziExplorer (для которого программа создаст файл привязки); 4) Вы можете сохранять интересные вам места, и в последствии без проблем их отыскивать, а также сделать так чтоб они всегда отображались на карте; 5) Карта обзора - поможет вам легко узнать о местоположении того места, которое вы сейчас просматриваете, а также быстро перейти к любому другому месту на карте; 6) Просмотр карты в полном экране - что особенно удобно при невысоком разрешении экрана; 7) Конвертация из одного слоя всех предыдущих - позволит существенно сократить ваш интернет трафик, например вы можете скачать ваш город только на 18 масштабе а все предыдущие сформировать на его основе; 6) Отображение файлов KML (ограничено); 7) Загрузка и отображение объектов Wikimapia; 8) Поиск мест средствами Google и Яндекс; 9) Добавление пользовательских карт. 10) Возможность экспорта карт в формат поддерживаемый iPhone maps. >>Добавление новых карт Программа позволяет добавлять пользовательские карты. Карты могут быть двух видов - основная отображаемая карта и карта, накладываемая поверх основной (слой). Описание формата пользовательских карт zmp Для работы с каждым картографическим сервисом программе необходима информация о параметрах данного сервиса. Описание этих параметров представляется в виде zip-архива с расширением .zmp либо отдельной папкой с постфиксом .zmp, которые хранятся в папке maps. Архив/папка с расширением/постфиксом .zmp содержит следующие файлы: * 18.bmp - файл иконки, отображаемой в меню программы (обязательно bmp, 18*18 pix, цвет фона 255,0,255); * 24.bmp - файл иконки, отображаемой на панели инструментов (обязательно bmp, 24*24 pix, цвет фона 255,0,255); * GetUrlScript.txt - файл скрипта, отвечающего за формирование ссылки на тайл карты; * params.txt - параметры карты; * info.txt (необязательно) - информация о карте. Параметры файла params.txt: Раздел [PARAMS] * asLayer - если равно 1, карта используется как слой, накладываемый поверх основной карты. * pnum - порядковый номер карты в меню. * GUID - уникальный идентификационный номер карты (генераторы GUID можно найти в Интернете, например тут). * ParentSubMenu - название пункта родительского меню для данной карты на русском языке. * ParentSubMenu_en - название пункта родительского меню для данной карты на английском языке. * ParentSubMenu_uk - название пункта родительского меню для данной карты на украинском языке. * name - имя карты на русском языке. * name_en - имя карты на английском языке. * name_uk - имя карты на украинском языке. * CacheType - тип кэша, в который будут записываться тайлы данной карты. 0 - по умолчанию, 1 - GMV, 2 - SAS, 3 - ES. * DefURLBase - неизменная часть адреса ссылки на тайлы карты. * projection - проекция карты. 1 - Меркатор на сфероид, 2 - Меркатор на эллипсоид, 3 - широта/долгота. * sradiusa - радиус большой полуоси эллипсоида. * sradiusb - радиус меньшей полуоси эллипсоида. * EPSG - код проекции карты. * NameInCache - имя папки в кэше, в которую будут записываться тайлы карты. * separator - разделитель в виде горизонтальной черты, отображаемый в меню после данной карты (1 - отображать, 0 - не отображать). * Ext - расширение тайла (.jpg, .png, .bmp, .gif) * UseDwn - если равно 1, скачивать тайлы карты разрешено. * Usestick - если равно 1, склеивать тайлы карты в единое изображение разрешено. * UseGenPrevious - если равно 1, генерировать предыдущие масштабы из последующих разрешено. * Usedel - если равно 1, тайлы карты можно удалять. * Usesave - если равно 1, тайлы карты можно сохранять. * Sleep - величина паузы между загрузками отдельных тайлов в миллисекундах. * DefHotKey - сочетание горячих клавиш для данной карты. * ContentType - тип загружаемых данных (например, image/jpeg, image/png). * MimeTypeSubst - подстановка типа загружаемых данных (например, «image/png8bit=image/png»). * TILERLEFT, TILERRIGHT, TILERTOP, TILERBOTTOM - параметры для обрезки скачиваемых тайлов соответственно слева, справа, сверху и снизу. * UsePreloadPage - если равно 1, использовать предварительно загружаемую страницу (обязательно следует указать её адрес). * PreloadPage - адрес предварительно загружаемой страницы. Раздел [ViewInfo] * EPSG - код проекции карты при выводе на экран. Проекцию можно однозначно задать ее EPSG кодом в SAS.Планете, пока допускается использование только некоторых кодов: * EPSG=3785 Проекция меркатора на сфероид. Используется в Google Maps. * EPSG=3395 Проекция меркатора на эллипсоид. Используется в Яндекс картах. * EPSG=4326 Проекция типа широта-долгота. Используется в Google Earth. Задание проекции кодом EPSG заменяет указание параметров projection, sradiusa и sradiusb в файле params.txt. Чтобы для определённой карты задать проекцию при выводе карты на экран кодом EPSG, следует в файле params.txt добавить раздел [ViewInfo] и в нём написАть EPSG=3785 или то значение, которое нужно. Код EPSG, указанный в разделе [PARAMS], может отличаться от кода EPSG, указанного в разделе [ViewInfo], что позволяет хранить тайлы в неизменном виде, а на экран выводить в желаемой проекции. Некоторые из параметров карты могут быть изменены внутри программы без редактирования файла params.txt. Для этого нужно зайти в Параметры>Параметры карты или нажать Ctrl+Alt+P. Пользовательские изменения настроек карт сохраняются в файле maps/maps.ini. Файл GetURLScript.txt содержит скрипт, формирующий полные адреса ссылок на файлы данной карты. Скрипты пишутся на обычном Pascal. Переменные GetX, GetY, GetZ содержат соответственно номер тайла по горизонтали (слева), по вертикали (сверху), масштаб (от 1 до 24). GetLLon, GetRLon, GetTLat, GetBLat - соответственно долгота левой границы тайла, правой границы, широта верхней границы, нижней границы. GetLMetr, GetRMetr, GetTMetr, GetBMetr - то же в метрах. Возвращаемое значение (ссылку на тайл) пишем в переменную ResultURL. Файл info.txt содержит текстовую информацию о карте. Абзацы разделяются тегом
Также возможен вывод графических файлов (например, легенды карты), используя следующий вид: . Обрезка используется для тайлов размером больше 256?256 для приведения к стандартному виду. При этом полная строка запроса должна быть построена так, чтобы после обрезки получался файл, соответствующий по координатам выбранной проекции. Сейчас набор карт представлен в виде репозитория Mercurial, что позволяет достаточно легко их обновлять. Для этого нужно установить Mercurial [http://bitbucket.org/tortoisehg/thg-winbuild/downloads/], после чего для обновления карт, нужно из папки Maps\sas.maps выполнить команду: hg pull -u -f Пользовательские изменения настроек карт сохраняются в файле maps/maps.ini >>По поводу хранения и переноса множества мелких тайлов: Bigbambr По поводу кэша из множества мелких файлов. Хочу поделиться опытом. При помощи бесплатной программы TrueCrypt (адрес http://www.truecrypt.org/downloads.php ) Создал файл-образ диска на 7.5 Гб (saspln.tc) с простейшим паролем типа 123. Затем смонтировал его как отдельный диск ( предположим V: ) Ранее существующую папку SASPlanet вместе с программой и кэшем перебросил на диск V:. (длительный процесс, но выполняется единожды). Далее, каждый раз при желании работать с программой монтирую образ saspln.tc при помощи TrueCrypt, захожу на диск V: и работаю там полноценно. При перезагрузке диск V: демонтируется автоматически. А вот когда возникает необходимость поделиться, то просто перебрасываю файл saspln.tc на любую флэшку размером более 8 Гб. кроме того перебрасываю туда же папку C:\Program Files\TrueCrypt (TrueCrypt способен работать без инсталляции). Так что получивший такую флешку запускает у себя TrueCrypt, монтирует образ с паролем, который я ему скажу и наслаждается жизнью. ))) [По функциональности данный метод можно сравнить с Nero ImageDrive, с той разницей, что Неро открывает свои образы только для чтения, а этот метод позволяет добавлять и изменять файлы.] >>По поводу скорости загрузки карт Google: если у вас карты Google грузятся много медленнее чем в Google Earth или на сайте maps.google.ru так это потому что в файле maps.ini параметр sleep для карты спутник (Google) равен по умолчанию 1000 (задержка между загрузкой отдельных тайлов). Это сделано из-за необходимости обойти бан Google. Можете уменьшить этот параметр или вовсе поставить 0. >>По поводу бана Google (если у вас вдруг неожиданно перестали загружаться карты): После примерно 200 загруженных тайлов Google обычно банит ip. в программе реализована некоторая защита от бана но 100% гарантии нет. Основной инструмент, которым пользователь может управлять баном - параметр pause в ini-файле. Таким образом если после 10 минут работы с программой больше ничего не загружается - вас забанили, после этого единственный выход ждать сутки (иногда меньше). >>По поводу файлов KML: Работа с KML пока ограничена, поэтому замечания вроде "почему не так как в Google Earth" не принимаются.