cоздание карт из Google Maps для программы OziExplorer
Задача: - Выкачать из Google Maps участок карты и склеить его в один графический файл. - Создать из полученного файла откалиброванную карту для OziExplorer. - Решить проблему слишком темной и бледной картинки из Google Maps, для комфортного отображения на экране КПК.
Необходимый софт: - OziexplorerCE - Сама программа навигации для КПК. - Img2ozf - Конвертер карт из графического формата в ozf для OziexplorerCE. - MapBuilder - Скачивает снимки из Google Maps и объединяет их в один большой файл. - XnView - Графическая программа для несложного и быстрого редактирования.
Итак начнем!
ШАГ 1. Задаем территорию одним из двух способов.
Способ I 1). Браузером открываем сайт Google Maps. Находим нужную территорию. Выбираем такой зум, чтобы вся территория поместилась в окошко (по центру).
2). Находим на страничке надпись Link to this page. Щелкаем в нее правой кнопкой мыши, выбираем "Копировать ярлык".
3). В главном окне MapBuilder в поле "Ссылка" вставляем скопированную ссылку.
4). Если требуется получить изображение не всей области, что видна в окошке браузера, а небольшой части ее, то область можно ограничить, указав, сколько процентов следует взять от картинки по ширине и высоте.
Способ II 1). Выбираем пункт "Координаты" и в четырех полях указываем широту верхней и нижней границы, а также долготу левой и правой границы желаемого прямоугольника.
ШАГ 2. Выбираем режим Map или Satellite.
Затем при помощи ползунка выбираем, с каким уровнем детализации составлять изображение. Нижнее положение ползунка - это самый общий план Земли; верхнее положение - это максимальный "зумм". На рисунке приведено пояснение.
$IMAGE7$
В режиме Satellite доступны 20 уровней детализации, в режиме Map – 18.
При выборе уровня детализации убедитесь, что на Google Maps есть картинка с таким зумом.
ШАГ 3. Выбираем формат для создаваемого файла - BMP или JPEG. Для JPEG можно указать качество, влияющее на степень сжатия. Нажимаем OK.
Программа, кое-что подсчитав, указывает размеры картинки. Итоговое изображение составляется из блоков размером 256x256 пикселов. Программа указывает, сколько таких блоков потребуется, чтобы покрыть выбранную территорию. Указывается также приблизительный суммарный объем этих блоков (т.е. сколько придется качать). Из блоков составляется один файл. Программа заранее укажет, каковы будут его размеры в пикcелах и объем в мегабайтах.
Если размеры карты Вас устраивают, жмем "Да". Если же Вам кажется, что получился перебор с объемом, можно нажать "Нет" и, например, указать уровень детализации на единицу меньше. При этом объем карты уменьшается примерно вчетверо.
Затем программа приступает к скачиванию блоков с сайта Google Maps. Предварительно просматривается так называемая архивная директория, куда MapBuilder складывает блоки, скачанные с сайта Google Maps (подробнее см. раздел "Архивная директория"). Если в ней обнаружены не все требуемые блоки, то производится также поиск в кэше браузера Internet Explorer. Если блоков по-прежнему не хватает, программа предупредит Вас об этом:
Если нажать "OK", недостающие блоки будут скачаны (когда Вы нажимаете "OK", Ваш комп должен быть подключен к интернету). При нажатии "Отмена", построение карты не производится.
Примечание: программой поддерживается только кэш браузера Internet Explorer.
По окончании загрузки блоков и формирования карты выдается соответствующее сообщение.
Архивная директория Архивная директория – она же рабочая директория, куда MapBuilder во время работы помещает все скачанные блоки. В отличие от предыдущих версий программы теперь есть возможность сохранить загруженные блоки для последующего использования. Для этого следует выбрать опцию "Сохранять блоки" в главном окне программы. В этом случае блоки не будут удаляться после построения карты. Соответственно, для того чтобы MapBuilder искал блоки в архивной директории и использовал их для построения карты, следует выбрать опцию "Использовать сохраненные блоки". Кроме того, опция "Искать в кэше IE" позволяет включить или отключить поиск блоков в кэше Internet Explorer. При поиске в кэше найденные блоки копируются в рабочую директорию. В окне "Настройки" есть также опция "Скачивать недостающие блоки". Если снять галочку, то программа не будет качать блоки с сервера, а построит карту только из имеющихся в наличии.
При возникновении ошибки на этапе скачивания (или построения итоговой картинки) все блоки, уже загруженные на данный момент, НЕ будет удаляться из рабочей директории НЕЗАВИСИМО от того, выбрана или нет опция "Сохранять блоки". Это позволит не закачивать блоки по второму разу, а продолжить "с того же места" после устранения проблемы.
Периодически скрипты Google Maps переходят на новую "версию" снимков. Если при переходе на очередную "версию" изображение на блоках действительно изменится, то можно будет выключить опцию "Использовать сохраненные блоки" - в этом случае MapBuilder скачает новые версии блоков и перезапишет ими старые.
Если Вы включили опцию "Сохранять блоки", то Вы сами должны следить за размером архивной директории, поскольку она будет постоянно разрастаться.
Путь к архивной директории можно указать в окне "Настройки" (Меню -> Настройки...). ВНИМАНИЕ! Необходимо указывать ПОЛНЫЙ ПУТЬ! (В противном случае последствия непредсказуемы ;-)) Если указана пустая строка, то MapBuilder будет использовать путь по умолчанию, а именно подпапку Blocks той директории, где расположен mapbuilder.exe.
Файл mbconfig.txt Для задания некоторых параметров работы программы предусмотрен файл конфигурации mbconfig.txt. Параметры заданы в виде ПАРАМЕТР=ЗНАЧЕНИЕ, по одному на каждой строчке. Параметры SATURL задают имена хостов, с которых скрипты Google Maps скачивают снимки (режим Satellite). Их несколько, блоки качаются с попеременно с разных хостов. При поиске в кэше IE MapBuilder проверяет все указанные хосты, а при скачивании использует первый из них. Параметр SATPARAM задает дополнительные параметры запроса, при помощи которого скрипты Google Maps скачивают снимки. Полный URL к блоку получается объединением SATURL, SATPARAM и названия конкретного блока. (Параметр SATPARAM должен присутствовать в файле в единственном числе!) Параметры MAPURL и MAPPARAM – то же самое для карт (режим Map).
При переходе скриптов на новую "версию" снимков Вы можете самостоятельно отредактировать файл конфигурации. Для этого следует в строке SATPARAM=... заменить число, стоящее после v= на новое значение. То же касается и карт (режим Map): в строке MAPPARAM=... заменяем значение, стоящее после v=, на новое. Узнать о том, перешли скрипты на новую версию блоков или нет, можно поглядывая в строку состояния браузера при просмотре сайта Google Maps. Там будет написано что-то вроде Загрузка рисунка http://kh0.google.com/kh?n=404&v=10&t=ttqrstrq...
Эксперименты показывают ;-)), что на хосты, выдающие картинки, можно посылать запрос с номером версии, превышающим текущий номер версии (текущий - тот, что используют сами скрипты Google Maps в данный момент); при этом выдаются, по-видимому, блоки текущей версии. Поэтому можно, например, прописать в mbconfig.txt строчку SATPARAM=n=404&v=999&t= и не мучаться каждый раз, когда скрипты обновятся. Однако следует иметь в виду, что в этом случае MapBuilder не будет находить в кэше блоки, скачанные браузером при просмотре сайта, поскольку каждый файл в кэше IE ассоциирован с ПОЛНЫМ URL'ом, с которого он был получен.
Внимание! Любые изменения, кроме вышеописанных, производить не рекомендуется. Не следует удалять или добавлять никакие символы в значения параметров; не следует добавлять никаких пробелов и т.п.
Программа может работать из без файла mbconfig.txt. По умолчанию используется: SATURL=http://kh0.google.com/kh? MAPURL=http://mt0.google.com/mt? SATPARAM=n=404&v=11&t= MAPPARAM=n=404&v=w2.25&
ВНИМАНИЕ! Начиная с версии 1.4 используется файл нового формата. Он несовместим с версиями MapBuilder 1.0 – 1.3 !
Файл привязки В программе предусмотрена возможность автоматической генерации файла привязки создаваемого изображения для OziExplorer. Чтобы вместе с изображением получить файл привязки, следует выбрать опцию "Создать файл привязки" в главном окне программы. Имя файла привязки получается из имени файла карты заменой расширения ".bmp" (или ".jpg") на ".map".
Привязка осуществляется по 9 точкам – четыре угла карты, центр карты, а также середины четырех сторон. В качестве системы координат указывается WGS 84; проекция – Mercator.
HTML-карта В программе имеется дополнительная возможность - "HTML-карта". Если вместо "OK" нажать кнопку "HTML", программа генерирует небольшой html-файл, представляющий собой требуемую карту. Файл содержит таблицу, в ячейках которой находятся ссылки (на сайт Google Maps) на необходимые блоки в нужном порядке. Этот файл можно открыть любым браузером. Браузер сам скачивает все блоки и показывает их в виде одной большой карты. Полученную страницу можно сохранить на винт (полностью, вместе с картинками).
Прокси-сервер В программе предусмотрена возможность работы через прокси-сервер. В окне "Настройки" (Меню -> Настройки...) указываем адрес и порт прокси-сервера. Если Ваш прокси требует авторизацию, выбираем "Авторизация", указываем логин и пароль. Если поставить галочку "Сохранить пароль", то пароль будет сохранен (в "зашифрованном" виде) вместе с остальными настройками в файл (settings.dat). Если Вы опасаетесь хранить пароль на диске, галочку не ставьте. В этом случае каждый раз при запуске программы Вам придется заходить в "Настройки" и вручную вводить пароль.
Примечание: для прокси-сервера поддерживается только basic-авторизация (это для тех, кто знает, что это такое ;-))
Ещё несколько замечаний 1. Ограничения на размеры создаваемой карты. Для формата BMP - размер файла не более 2Гб. Например, для квадратной карты максимальный размер составит 104 x 104 блока (26624 x 26624 пикселов). Для формата JPEG - не более 65500 пикселов (255 блоков) по каждой из сторон. Если для выбранной территории размер файла превышает максимально допустимый, программа выдает соответствующее сообщение. В этом случае Вам следует выбрать территорию поменьше либо указать более низкий уровень детализации.
Кроме того, прежде чем составлять очень большую карту, подумайте, сможете ли Вы ее чем-нибудь посмотреть. Вопросы типа "А чем открыть полученный файл?" рассматриваться не будут !!!
2. Опция "Игнорировать отсутствие блоков" влияет на поведение программы в случае, если какой-либо блок отсутствует на сервере (т.е. выбран слишком большой зум). Если опция выключена, то выдается сообщение об отсутствии блока и построение карты не производится. Если опция включена, то процесс продолжается, а в итоговой картинке на месте недостающих блоков будут красные квадраты.
3. Выбранная Вами территория не должна захватывать области севернее 85° северной широты и южнее 85° южной широты. Для этих областей снимки на Google Maps отсутствуют. Если территория вылезает за пределы зоны покрытия, программа спрашивает разрешения самостоятельно ограничить территорию.
4. Чтобы построить карту всей Земли, используйте пункт меню "Вся Земля". Выбрав этот пункт, Вы получите нужную ссылку.
5. При задании территории вторым способом ("Координаты") надо иметь в виду: - В поля "Верхняя" и "Нижняя" следует вводить ШИРОТУ, а в поля "Левая" и "Правая" - ДОЛГОТУ ! ;-)) - Территория должна иметь "северную ориентацию", т.е. верхняя граница должна лежать севернее, чем нижняя граница. - Широты южнее экватора считаются отрицательными, севернее экватора - положительными; долготы к западу от нулевого меридиана - отрицательные, к востоку - положительные. - Долгота должна находиться в пределах от -180 до +180 градусов. - Допускается указание территории, захватывающей 180-й меридиан, т.е. когда левая долгота будет положительной, а правая - отрицательной. - Координаты вводятся в ГРАДУСАХ (с дробными долями), а не в градусах и минутах или еще как-нибудь... - В качестве десятичного разделителя можно использовать как точку, так и запятую.