Как загрузить большую карту с Google maps

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



    Итак, в начале будет подготовка.
    Для сего действа нам нужны:
    1.) Огненный лис
    2.) Плагин для огненного лиса под названием screengrab. Его можно свободно найти по имени на странице эдонов.
    3.) Обычный виндосовский блокнот(или любой другой текстовый редактор).

    Утановив screengrab и открыв огненного лиса — приступим.

    Шаг первый:
    Открываем гугл мапс и составляем маршрут(опционально, можно просто открыть карту в нужном месте).

    Шаг второй:
    Приближаем карту до нужного разрешения(Мне, например, нужно было видеть второстепенные дороги). И устанавливаем карту примерно в центр нужного участка(Например, если вы хотите карту города, то нужно наскролить центр города).

    Шаг третий:
    Нажимаем на «Ссылка» (находится в правом верхнем углу карты). И копируем текст из поля «Вставьте код HTML для использования на сайте».


    Шаг четвертый:
    Сохраняем этот текст в файле карта.html

    Шаг пятый, очень ответственный:
    Меняем значения ширины и высоты карты в пикселях на нужные вам (например width=«2500» height=«5000»).
    Тут главное — сильно не жадничать=)

    Шаг шестой:
    Открываем этот файл в том же огненом лисе и ждем пока скачается вся карта.

    Шаг последний:
    Когда вся карта загрузилась, тыркаем кнопку screengrab и выбираем save->complete Page/Frame, тем самым указывая ему, что нужно сохранить не видимую область, а весь загруженный фрэйм.


    Это все.
    Надеюсь этот лайфхак пригодится кому-нибудь кроме меня.
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 73

      +5
      Есть софтинка одна, не помню названия, лежит на рабочем компе, которая забирает с гугловских серваков фотографии и склеивает их в нужном вам качестве… я ей хотел карту города сделать для офиса размером 2*3 метра в фотокачестве… но пока руки не дошли…
      А это еще один способ, спасибо…
      • НЛО прилетело и опубликовало эту надпись здесь
          +9
          завтра с утра выложу ее специально для вас ;)
          • НЛО прилетело и опубликовало эту надпись здесь
              +6
              Доброе утро. Как и обещал вчера, выкладываю для вас эту программу. Лежит она здесь . Называется «Mapbuilder». Мануал лежит в архиве. Все доброго.
              ЗЫ. Если не получиться скачать с айпапки, перелью. ;)
              И думаю есть смысл обновить статью, или написать новую, объединив все способы (ваш и несколько представленных в камментах. ;)
                +1
                сорри, не увидел каменты ниже по поводу блокировки гуглом этой проги…
                +2
                и мне плиз
            +4
            Возможно Вы имели ввиду программу GoogleMV. С помощью у меня получилось сделать отличную спутниковую карту родного города. :)
              +3
                +1
                Или Mapbuilder?
                  +1
                  Не заработало, ни одного блока не скачал MabBuilder, а уже написал, что гугл забанил. Не верю (с) Станиславский :)
                    0
                    Что ж, вполне допускаю. Я порекомендовал эту программу, потому что сам ей пользовался, но, справедливости ради, больше полугода назад. Все меняется.
                      0
                      Это говорил Паниковский. Паниковский не обязан всему верить. «Золотой теленок» 1968
                        +1
                        Предлагаю ещё один метод для получения спутниковых снимков относительно небольшого участка Земли. Берем Google Earth и c его помощью тщательно «пролетаем» над участком, который нас интересует, для того чтобы все фрагменты карты загрузились. После закрываем GE и работаем уже с его кешем. Для начала берем GE_JPG_extractor, с помощью которой извлекаем закешированую карту, одновременно конвертируя её в формат пригодный для GoogleMV. В результате, уже имея карту (в нашем случаи состоящую из тысячи маленьких фрагментов) с помощью GoogleMV сохраняем её в единый jpg / или же просто использовать GoogleMV как портативный аналог Google Earth.
                        Способ не для ленивых! :)
                          0
                          один недостаток: Google Earth не отображает карту :(
                          Спутниковые снимки в незнакомом городе почти бесполезны.
                      0
                      Не заработала, пыталась что-то скачать. Гугл забанил, даже 1 блока скачать не успела. Хотя вот в Google Earth все качается нормально. У кого-нибудь есть нормальный софт?
                        0
                        попробуйте мой.
                        очень хочется протолкнуть то, что сам делал и чем сам пользовался. )

                        Насколько помню качал до опупения (на работе товарищам понадобилось) — не банило. И ещё, как замечено, google банит только на спутниковых снимках.
                      +3
                      Весь подобный софт Гугл рано или поздно засекает и временно банит аккаунт! Почему, зачем — непонятно… Что будет за повторное «нарушение» — не знаю, сыкотно было проверять…
                      По поводу собственно заметки — большое спасибо за идею, сам этими фреймами пользовался, но вот чтоб «расширить» их — не додумался…
                        0
                        ничего, проверено.
                          0
                          Спасибо за минус! :-)

                          Правильно, не слушайте меня, качайте эти проги и пробуйте! Пробуйте на собственной шкуре…
                            0
                            Вообще для предотвращения бана, во всяком случае в моей программе, предпринимается большое кол-во осознанных телодвижений.
                            Хотя 100% защиты от бана это, к сожалению, не гарантирует. У Google может быть очень простой и действенный детектор: по времени непрерывных запросов.
                              0
                              ну и я вам минус не ставил, чес слово. комментарий, как коментарий — минусовать не за что.
                                0
                                посмотрите внимательно — я про минус написал в ответе на свой комментарий, а не на Ваш…
                                Также как и собственно комментарий про бан был в ответ на самый первый коммент на этой странице, а вовсе не на Ваше сообщение о своей программе…

                                Да и минусы меня не беспокоят особо. Просто было дело, сам попался и получил бан дня на три.
                                Очень переживал, потому как не знал, чем это закончится…
                                Вот и хотел предупредить тех, кто не в курсе…
                        • НЛО прилетело и опубликовало эту надпись здесь
                              +8
                              а для удобного просмотра есть google big map
                            • НЛО прилетело и опубликовало эту надпись здесь
                                0
                                Во-первых, изображение в высоком разрешении вполне можно распечатать на бумагу.
                                Во-вторых, в связке с GPS электронная карта часто оказывается более удобной, поскольку сокращает время на поиск своего местоположения на бумажной карте.
                                Про ценность записи GPS-треков говорить не буду, мы тут не об этом.
                              • НЛО прилетело и опубликовало эту надпись здесь
                                • НЛО прилетело и опубликовало эту надпись здесь
                                  –5
                                  Не, нафик-нафик… Езжу по 500-метровкам. =)
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                      +1
                                      весь экран — это, как правило, очень мало.
                                      +12
                                      И есть ещё один способ — дело в том, что гугл сам предоставляет свои карты в формате картинки. Достаточно взять вот эту ссылку:

                                      google.ru/mapprint? c=37908175,55967032&z=1&r=2000,2000

                                      (уберите пробел после знака вопроса «?» — хабр порезал кликабельности ссылки)

                                      После c= идут воординаты, через запятую, посче z= соответсвенно зуммирование (от одного, до 17ти кажется), и r= соответственно ширина/высота

                                      Данную штуку, гугл сделал, на сколько я понимаю, для подачи участков карту на печать в принтер.
                                        +1
                                        Здорово, не додумался.
                                        Мой кусок, небольшое исследование проводил как оно работает и программу делал.

                                        Документ здесь: docs.google.com/Doc? id=dcmn9ngg_16c32ccmpf

                                        Единственное что там не актуально — это версии в ссылках и префикс серверов для спутника.
                                          0
                                          похоже 2000х2000 самое большое разрешние, которое гугл может отдать…
                                            0
                                            >> похоже 2000х2000 самое большое разрешние, которое гугл может отдать…
                                            … тому кто не купил Pro версию))
                                          0
                                          Аж 3 ссылки на гугл.мапс перед хабракатом… %)
                                            0
                                            Действительно забавно)
                                            На хабре, как мне кажется, можно был обойтись и вовсе без них — все ведь и так знают о чём речь.
                                              0
                                              Ну, как хотите. Будет одна всего.
                                            0
                                            ссылка
                                            Во всяком случае раньше работало.
                                              +1
                                              Ага! Понадобилось чуть-чуть подправить.
                                              Скажу сразу суть программы: на googleEarth выделяется произвольный полигон, сохраняется в kml-файл, а затем программа загружает только те квадраты, которые попали в регион. Загружается по выбору всё. Программа умеет собирать квадраты в карты, разбивая при этом, и разбивать её на квадраты других размеров.

                                              https://dl.getdropbox.com/u/139466/For%20end-users.zip
                                                0
                                                Не работает! На любом KML (даже на твоем Volgograd) выдает exception: input string was not in correct format
                                                  0
                                                  Вы не первый, кто сообщает об этой ошибке. Я пробовал на 4-х доступных компютерах — всюду работало. Появляется эта ошибка редко.

                                                  Если нетрудно, посмотрите в настройках локали, какой там используется разделитель целой и дробной частей, а также разделитель тысяч?
                                                  И вообще, какие локали установленны, всё стандартно, En/Rus?
                                                  Также интересно знать версию .net.

                                                  Постараюсь разобраться прямо сегодня, что там может быть не так.
                                                    0
                                                    Версия .NET у меня стоит 3.5, 2.0, 1.1
                                                    Локали посмотрю, а как их посмотреть?
                                                      0
                                                      Панель управления — Язык и региональные стандарты — Региональные параметры — Настройка
                                                        0
                                                        Стоял «русский». Поставил «Английский (великобритания)» — заработало.
                                                          0
                                                          Думаю, что если вставить строчку кода

                                                          System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(«en-US»);

                                                          в начале программы, то это должно решить проблему.
                                                            0
                                                            Воспроизвести удалось. Согласен.

                                                            Но лучше так, что бы не «портить» вывод.

                                                            System.Globalization.NumberFormatInfo nfi = new System.Globalization.CultureInfo(«en-US», false).NumberFormat;
                                                            nfi.NumberDecimalSeparator = «.»;

                                                            Сейчас обновлю ссылку.
                                                              0
                                                              https://dl.getdropbox.com/u/139466/For%20end-users.zip
                                                                +1
                                                                Хороший урок. Впредь буду более серьёзно относиться к таким вещам. )
                                                                  0
                                                                  Спасибо за быстрое решение проблемы. Добавил вам кармы. Надеюсь, народ не пройдет мимо.
                                                                    0
                                                                    Это было взаимно, спасибо за помощь. )
                                                          0
                                                          Может задать их напрямую:

                                                          string locale = «LOCALE_HERE»;
                                                          System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(locale);
                                                      0
                                                      Очень интересная статья и программа, правда c wine/mono запустить не получилось, придется достать старый комп с виндой.
                                                      >>> Кстати, я когда узнал про уровни и блоки — полез считать, сколько же блоков будет на последнем 17 уровне. Получилось много.
                                                      Всего 131072. Значит, во всех зумах всего 262143 фрагментов. Кажется, всю гугл-карту можно скачать за несколько дней.
                                                        0
                                                        Да, с Mono не получится. Я использую хеш-таблицу в которой в качестве ключей используются строки. Значение хеша для строки — это вопрос реализации, даже в msdn отмечается, что алгоритм может меняться.
                                                        Я тут задумался, раз это дело интересно, заняться в свободное время доведением программы до ума, там и проблем с mono постараюсь избежать.

                                                        Насчёт количества фрагментов вы ошиблись. 2^17=131072 — это количество фрагментов вдоль одного измерения. Всего получится 2^34 фрагментов. Это много. )
                                                      +2
                                                      Спасибо огромное! Очень, очень кстати пришлось. Попутно решил вопрос в Mac OS X + Safari.

                                                      Для Mac OS X:

                                                      6: Открываем в Safari
                                                      7: File -> Print
                                                      8: Выставляем размер бумаги побольше
                                                      9: Нажимаем кнопку PDF -> Save
                                                        +6
                                                        Шаги 4, 5 и 6 можно пропустить — под полем с «кодом HTML для использования» есть ссылка «Настройка и предварительный просмотр встроенной карты». Там можно выставить нужный размер, посмотреть результат и сразу же и сохранить (с помощью того же screengrab)

                                                          +1
                                                          Извините но уж сильно по глазам ударило, исправьте пожалуйста

                                                          Открываем гугл мапс и состАвляем маршрут(опционально, можно просто открыть карту в нужном месте).
                                                            0
                                                            screengrab при width=«7000» height=«10000» не выводит запрос на сохранение
                                                            хотя в меньшем разрешении проблем не было
                                                              0
                                                              У меня ни одна программа так и не заработала
                                                                –4
                                                                Вот лично мне пришла мысль использовать PrintScreen и Paint, но это скорее извращенный способ
                                                                  0
                                                                  Что делать, когда гугле банит? (:
                                                                    0
                                                                    Когда гугл банит, нужно или ждать, или использовать прокси, через которые мы и качаем огромные куски территорий во многих разрешениях.

                                                                    Всегда приятно иметь локальную копию больших структурированных данных (в данном случае изображения).

                                                                    В идеале можно повторить весь сервис гугл мапс со всей его функциональностью, для этого кроме разных масштабов карт и разных их типов (спутник, гибрид, карта) нужно привязать к координатам (благо при такой стурктуре это делается элементарно). А так же привязать базу объектов к этой структуре и можно открывать собственный сервис.

                                                                    Конечно это незаконно, но для нужд больших внутренних проектов — весьма полезно.
                                                                    0
                                                                    Есть ли простое решение для создания файла привязки для карты? (.map файл для использования с картографическим софтом, в частности в GPS навигаторе).
                                                                    Раньше пользовался MapBuilder, но теперь он не работает.
                                                                      0
                                                                      Прочитал описание бубл драгз. Доберусь до винды — попробую.
                                                                        0
                                                                        У меня такой задачи не стояло, создавать файл-привязок. Я тогда работал в геодезической фирме, там камеральщики пользовались CAD-системой от Bentlee. Для импорта фрагментов, соотвествующий программист, просто написал скрипт на vb.
                                                                        Ну а разбираться с map-форматом тогда было излишне, тем более, что основной моей задачей была разработка сервера и клиента для gps-навигации.
                                                                          0
                                                                          формат в первом приближении прост как дважды два: задает тип проекции, датум и для нескольких точек соответствие пиксельных координат географическим.
                                                                          До вашей программы еще не добрался, но если она выдает файл с координатами, .map создать по нему должно быть просто
                                                                        0
                                                                        я в свое время поступил проще. Мне нужна была карта города одним файликом. Нехитрый скрипт на Perl генерирующий набор ссылок на картинки блоков. wget, который их качал и ImageMagik которым батником склеивались кусочки полосками. В итоге он не справился на том этапе когда размер кусков начал превышать 32k x 8k px — пришлось куски 16к px x 8k px склеивать уже в фотошопе, благо их было не много. Итог — 32k px x 32k px карта города

                                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                        Самое читаемое