Как сделать кэш гугл карт
Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal
И так, первое что следует сделать, решив создавать электронную векторную карту - это скачать весь доступный из свободных источников материал.
Даже если его качество неудовлетворительно для оцифровки, он поможет в точном определении границ заказываемых снимков. Также такой материал пригодится, если на какой-то части закупленной территории окажутся облака.
Для начала определитесь с источниками материала: какие области следует скачать с Google Maps, какие с Яндекс Карт? Обычно Яндекс Картами пользуются для мозаики незаселённой территории, которая у них заметно лучше Google (6 м против 15 м). Населённые пункты в Яндексе не часто, но иногда бывают качественней чем на Google - по крайней мере насколько мне приходилось сталкиваться.
В нашем примере мы будем брать все данные с Google. Визуально нужный нам населённый пункт состоит из двух снимков не пригодного к оцифровке 1 метрового Ikonos (чуть позже мы убедимся в собственных предположениях):
Следующие действия наверняка нарушают лицензионные соглашения Google, поэтому давайте договоримся: всё это излагается исключительно в информационных целях. Никакой коммерческой выгоды ни я, ни вы извлекать из этого не будете.
Вообще говоря, вся информация, которая отображается на экране компьютера всегда может быть сохранена. Во-первых PrintScreen ещё никто не отменял, во-вторых все браузеры имеют кэш, в котором тоже можно копаться.
То, что будет изложено дальше - всего лишь удобный способ сохранить мозаику снимков Google Maps на определённую территорию, в виде единого файла JPEG с готовой информацией о координатах привязки изображения.
В первую очередь следует скачать из сети небольшую программу MapBuilder (последняя версия 1.9). Официальный сайт программы нынче удалён, но она уже распространилась по многим варезникам и ищется легко.
Устанавливать программу не нужно - просто создаём папку, например C:\MapBuilder\ и распаковываем туда содержимое архива. Огромное спасибо автору разработавшему и дошлифовавшему эту замечательную утилиту!
Перед запуском программы открываем в редакторе файл mbconfig.txt и находим секцию:
Здесь перечислены URL-адреса серверов, на которых Google хранит фрагменты мозаик снимков. Возможно, что в будущем перечень этих серверов изменится, или изменится формат запросов к ним.
А пока обратим внимание на параметр v=80 - это номер версии. Google поддерживает версионность снимков и позволяет скачивать все предыдущие варианты снимков заданной территории. Аналогичный параметр используется и для карт Яндекса.
Устанавливаем плагин, перезапускаем браузер, заходим на карты Google и приближаемся к выбранному населённому пункты. Включаем отслеживание заголовков и несколько раз перемещаемся по карте. В результате должно зафиксироваться что-то вроде такого:
Итак, текущая версия снимков Google - 89. Исправляем соответствующим образом файл mbconfig.txt.
Запускаем программу, заходим в настройки и указываем каталог кэша, куда будут помещаться скаченные блоки. Учтите, что размер архивной директории может достигать нескольких гигабайт. Формат архивной директории выбираем "Прогрессивный":
Самый простой способ указать MapBuilder'у, какую часть карты надо скачивать - это подогнать размеры окна браузера под нужный фрагмент карты, затем сгенерировать ссылку на текущую область и передать её в MapBuilder:
Более точный способ - задать координаты четырёх границ прямоугольника. В этом нам поможет приложение Google Earth, так как Google Maps не умеет отображать текущие координаты курсора.
Ещё одна причина, почему следует пользоваться Google Earth а не Google Maps - это разные мозаики снимков. Google Maps до определённого масштаба не отображает качественные снимки, даже если они покрывают данную территорию - вместо этого на мелких масштабах вся территория покрыта данными Landsat. Google Earth же отображает мозаику из всех снимков, включая высококачественные, независимо от текущего масштаба. Это очень удобно:
Координаты из Google Earth можно переносить в MapBuilder в том же виде, в котором они отображаются на экране:
Границы загружаемых областей следует определять с запасом относительно официальной границы населённого пункта. Узнать официальные границы можно несколькими способами (в порядке возрастания сложности):
Обратите внимание, что часто соседние сёла и рабочие посёлки со временем мигрируют в состав районного центра, поэтому не скупитесь и захватите в область загрузки ближайшие поселения.
Загрузка спутниковых растров Google в MapBuilder обычно проходит в два этапа: сначала загружается 14-й, потом 19-й уровень. 14-й уровень сформирует отдельный растровый файл с подложкой LandSat на всю территорию региона. А 19-й уровень загрузит высокоточные снимки, при этом оставив области, для которых нет ничего кроме подложки LandSat пустыми. Обратите внимание, что заказывать загрузку в MapBuilder нужно снимков GM.SAT, а не Google Earth.
19-го уровня достаточно для загрузки всех высокоточных растров Google, включая GeoEye. Загрузки выше 19-го уровня для территории России бессмысленны, так как ортофотопланов, которые требовали бы больший уровень точности, на территории РФ в Google Maps нет.
Для загрузки снимков подложки Яндекса обычно используется 13-й уровень.
Во-первых, она оценивает размер в пикселях результирующего изображения (который по каждый из сторон не должен превышать 65.535 пикселей). Во-вторых, она ищет подлежащие загрузки блоки в архивной директории среди ранее загруженных. По итогам чего принимается решение о загрузке недостающих блоков из сети:
Это означает, что Google вас забанил. Если у вас динамический IP - вполне вероятно, что вам будет достаточно переконнектиться. Но если ваш IP адрес постоянен - не расстраивайтесь: есть способ помочь вашему горю.
В случае, если вас действительно забанил Google вместо картинки тайла вы увидите приглашение ввести капчу:
Включите отслеживание заголовков и введите капчу - в ответ у вас должно появиться оригинальное изображение тайла. Таким образом вы сможете обнаружить, какую Cookie научился ставить ваш браузер, чтобы на какое-то очередное время объяснить Google, что вы - не робот:
Дальше вам поможет ещё одна интересная программа: The Proxomitron. Это настольный прокси-сервер с удивительно гибкими возможностями.
Для приведения подстановки куки в действие: сначала ставим галочку в колонке "Out" окна заголовков, а затем и в основном окне программы:
После всех произведённых действий не забудьте перенастроить MapBuilder на работу через новоиспечённый прокси.
Сразу скажу, что данная мера помогает только на определённый объём загрузки (обычно около 100-500 Мб), после чего Google вас снова банит, и история повторяется сначала. Тем не менее, данный инструментарий позволяет эффективно загружать космические изображения с сервиса Google Maps.
В результате работы MapBuilder-а будут созданы два файла: JPG, содержащий картинку и MAP содержащий привязку растра к реальным координатам в формате OziExplorer'а. О том, что делать с этими файлами будет рассказано дальше.
Google Maps — отличный навигационный сервис, но, к сожалению, без подключения к интернету он не работает. Это особенно неприятно при поездках в другие страны, где расходы на передачу данных в роуминге могут очень и очень больно ударить по карману. Но, оказывается, загруженные карты в Google Maps 2.0 можно сохранять в кэш и использовать их потом в режиме оффлайн.
Для сохранения карты в кэше необходимо выполнить несколько простейших действий.
Запускаем Google Maps и выбираем участок карты, который мы хотели бы сохранить. Участок желательно выбирать не слишком большой.
Выбрав участок карты, вводим в поле поиска вверху экрана текст Ok maps и нажимаем кнопку Search внизу.
Видим информацию, что карта загружается.
Вот и все действия. Сохраненную карту можно вполне нормально использовать без подключения к интернету, карта масштабируется в обычных пределах. Но, конечно, никакие онлайн-сервисы использовать не получится. Подобный режим давно уже есть в Яндекс.Картах, и очень здорово, что и Google предоставляет пользователям возможность работать с картами в режиме оффлайн.
Многие видели программу Google Earth ( Google Планета Земля ), многим она нравится, у нее есть очень много плюсов, но есть и минусы. И, наверное, один из самых существенных из программы нельзя экспортировать спутниковый снимок с хорошим разрешением достаточно большой территории. Но если очень хочется, то можно!
Итак, поставим перед собой задачу: создать спутниковый снимок нужного нам района, например, спутниковую карту Москвы . Хотя можно и не мелочиться, а сразу составить спутниковую карту России или даже спутниковую карту Мира, но мы не будем заниматься такими глобальными делами, а поставим перед собой более простую задачу сделать спутниковую карту Саратова.
Все необходимые нам программы мы можем скачать отсюда одним архивом, либо вытянуть их с официальных сайтов.
Скачав и установим эту программу мы можем посмотреть на спутниковые снимки различных городов Мира, рассмотреть улицы и дома… Но мы немного ушли от темы. Насмотревшись мы решили сохранить выбранный участок местности, чтобы рассмотреть его позже оффлайн. Заходим в Меню: Файл -> Сохранить -> Сохранить изображение, сохраняем, но как оказалось не такой и большой участок в хорошем разрешении мы можем сохранить. Жаль конечно, но нормальные герои всегда идут в обход, и мы пойдем другим путем…
Программа GoogleMV уступает по функциональности программе Google Earth ( Google Планета Земля ), но с другой стороны по нашей проблеме она нам может помочь.
Читаем на сайте описание этой программы:
Для постоянного использования эту программу стоит купить, но у нас задача разовая. После небольшого тестирования этой программы мы нарываемся на бан со стороны Google и не можем более получать спутниковые изображения для склейки в единую карту. Обойти бан можно с помощью прокси-серверов, но мы пойдем другим путем…
С помощью этой программы мы можем достать данные из Кэша программы Google Earth ( Google Планета Земля )
Пользоваться программой очень просто:
- Открыть кеш, который обычно расположен здесь: ”C:\Documents and Settings\ИМЯ_ТЕКУЩЕГО_ПОЛЬЗОВАТЕЛЯ\Local Settings\Application Data\Google\GoogleEarth\dbCache.dat” Если у вас есть несколько кешей (в одной папке), то можно открыть их все сразу (файлы “dbCache.dat”).
- Выбрать путь для извлечения файлов. По умолчанию папка, из которой запущен GE_JPG_extractor.exe.
- Чтобы излечь картинки в с именами в виде ‘qrst.jpg’ в формате кеша программы GoogleMV - установите флажок “для кеша GoogleMV (имена файлов ‘qrst’)”. В FAT 32 есть ограничение на количество файлов в одной папке (есть ли такое ограничение в NTFS не знаю). Поэтому моя программа будет глючить при больших количествах фалов в одной папке (а на 18 уровне в одной папке их будет просто туча). Автору программы GoogleMV следует подумать об этом ограничении файловой системы.
- Нажать кнопку “Извлечь” и дождаться окончания процесса. После извлечения будет созданы папки “\ServerN\_82_\” (картинки с именами Google Earth - такими они были при получении с сервера) или “\ServerN\КН\” (кеш для программы GoogleMV). Папок “ServerN” (вместо N будут цифры) может быть создано больше одной. Их количество зависит от того данные с каких серверов Google Earth лежат в кеше. В настоящее время работает два сервера: карта замли и карта космоса. Возможно в будущем добавятся новые.
Нам нужно будем извлекать картинки в с именами в виде ‘qrst.jpg’ в формате кеша программы GoogleMV.
- Запускаем программу GE_jpg_extractor.exe
- Выбираем и открываем Кэш файл “dbCache.dat”.
- Выбираем папку для сохранения картинок
- Ставим галочку: “Для кэша GoogleMV (имена файлов ‘qrst’)”
- Нажимаем кнопку [Извлечь картинки]
После извлечения спутниковых снимков таким способом, мы эти снимки запихиваем в Кэш GoogleMV и уже с помощью GoogleMV создаем спутниковую карту.
- Запускаем программу GoogleMV (Бросается в глаза немного не та проекция, но позже мы это исправим)
- Перемещаемся по карте в нужное нам место
- Нажимаем значек Выделить
- Выделяем нужную нам область
- Выбираем необходимый уровень увеличения, процент сжатия jpg и нажимаем Выполнить
- В открывшемся окне Параметры выбираем Склеить выделенный фрагмент, только кэш, только снимок
- Жмем ОК
через пару мгновений или минут спутниковая карта склеена.
Но после создания карты, мы обнаруживаем, что получившийся снимок не в той проекции, хотя может кому то нужен именно такой. Я решил эту проблему достаточно просто: Увеличил высоту получившегося изображения на 162%.
Маленькая и очень классная программа для скачивания различных карт к себе на компьютер.
SAS.Планета — Это бесплатная программа в ней возможно выбрать какие карты вы хотите скачивать: Google Maps, “Космоснимки“, Яндекс.карты, Yahoo! Maps, карты Генштаба и др., + ко всему есть слои, которые будут накладываться поверх карт, названия объектов и прочее.
Умеет скачивать любые области, очень удобно работает инструмент полигонального выделения, т.е. к примеру вы выделяете только материк, или свой город, выбираете нужно вам увеличение и ставите на скачивание. Думаю вам не пригодится весь океан или леса с максимальным увеличением.
Если вы намерены все это дело хранить и переносить, то рекомендую всю кучу архивировать в самораспаковывающийся архив (мало ли, вдруг не будет архиватора там, куда вы притащите сие добро)
Помимо фотографий земли есть и обычные карты,
есть фотографии луны, марса, пожалуйста, что угодно:
Для того чтобы не накачать огромную кучу гигабайт, и не запутаться в ней, я разграничил весь процесс таким образом: у меня несколько папок кеша с определенными картами, есть общая папка с картой мира до увеличения x10-11, есть папка с картами города и окрестностями с увеличением от x10 до x18, и есть папки кэша с другими городами, на всякий случай.
Таким образом весь объем информации у нас разграничен на регионы, и тип скачанных карт.
Читайте также: