SASGIS

Веб-картография и навигация

Карты Google на свой вкус

Обсуждаем сервисы Google Maps и Google Earth™

Модератор: Tolik

Карты Google на свой вкус

Сообщение Ivan30 » 20 мар 2016, 00:32

понадобилось мне изменить карты Google, полез ковырять API
рассказываю, как Google позволяет создать собственный вариант карт

скачиваем zmp
карту
Google_Styled_Maps_Wizard.zmp.zip
(2.3 KiB) Скачиваний: 379

или слой
Google_Styled_Maps_Wizard_Layer.zmp.zip
(2.35 KiB) Скачиваний: 296


запускаем SaSPlanet, включаем карту или слой и видим дефолтную карту Google

Изображение

идем сюда http://gmaps-samples-v3.googlecode.com/ ... index.html
слева панель Feature type

Изображение

выключил на ней все слои

справа панель Map Style, добавил на ней слой кнопкой Add

Изображение

ещё пару слоёв, на левой панели для каждого слоя выбирая геометрию или надписи, можно и с цветом поиграть

Изображение

выбрал, что нужно, смотрю URL нужного мне тайла

Изображение

копирую из URL всё с цифры 256, вот такую строку

Код: Выделить всё
256!2m3!1e0!2sm!3i341009205!3m14!2sru-RU!3sUS!5e18!12m1!1e47!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC52Om9mZixzLnQ6NnxzLmU6Z3xwLnY6b24scy50OjE3fHMuZTpnfHAudjpvbixzLnQ6MTd8cy5lOmx8cC52Om9u!4e0&token=75172


втыкаю сюда

Изображение

скачиваю, в примере слой

Изображение

накладываю

Изображение

пример простой, на деле возможности куда больше
Изображение

За это сообщение автора Ivan30 поблагодарили: 6
aleksjr (20 мар 2016, 13:08) • garl (20 мар 2016, 01:59) • ingener (20 мар 2016, 14:02) • saldek (20 мар 2016, 23:50) • Tolik (20 мар 2016, 10:12) • zed (20 мар 2016, 00:40)
Рейтинг: 31.58%
 
Ivan30
Советчик
 
Сообщения: 429
Зарегистрирован: 14 мар 2011, 19:14
Откуда: дельта Волги
Благодарил (а): 60 раз.
Поблагодарили: 139 раз.

Re: Карты Google на свой вкус

Сообщение zed » 20 мар 2016, 23:53

Вот тут описан на пальцах новый формат кодирования url: http://stackoverflow.com/questions/2280 ... oogle-maps

Могу добавить уточнение, что формат этот в общем случае известен - это явно Google Protobuffer, правда описания такой сериализации в строку мне что-то не удаётся найти. Если кто-то нагуглит доки, киньте ссылку.

Соответственно, у записей вида !1m5 буква m обозначает message, а цифра 5 - количество полей внутри этого месседжа (некоторые поля могут отсутствовать).

Пример разбора урла:
Код: Выделить всё
http://maps.google.com/maps/vt?pb=!1m5!1m4!1i6!2i34!3i20!4i256!2m3!1e0!2sm!3i341009073!3m9!2sru-RU!3sUS!5e18!12m1!1e47!12m3!1e37!2m1!1ssmartmaps!4e0&token=59241

Код: Выделить всё
http://maps.google.com/maps/vt?pb=
!1m5
    !1m4
        !1i
            6   // z
        !2i
            34  // x
        !3i
            20  // y
        !4i
            256 // tile size
    !2m3
        !1e
            0
        !2s
            m
        !3i
            341009073
    !3m9
        !2s
            ru-RU
        !3s
            US
        !5e
            18
        !12m1
            !1e
                47
        !12m3
            !1e
                37
            !2m1
                !1s
                    smartmaps
            !4e
                0
&token=59241

Далее, в качестве параметров в урле можно указывать стили (из примера в первом посте):
Код: Выделить всё
!1s
    styles
!2z
    cC52Om9mZixzLnQ6NnxzLmU6Z3xwLnY6b24scy50OjE3fHMuZTpnfHAudjpvbixzLnQ6MTd8cy5lOmx8cC52Om9u
!4e
    0

Поле !2z очень похоже на Base64 и после декодирования превращается вот в такую строку:
Код: Выделить всё
p.v:off,s.t:6|s.e:g|p.v:on,s.t:17|s.e:g|p.v:on,s.t:17|s.e:l|p.v:on

Тут тоже в общем случае всё более-менее понятно: через разделитель "|" идёт кастомизация стилей:
p.v:off - видимо, свойство visible устанавливается в off
s.t:6 - тип стиля (id?) для которого применяется настройка видимости

В общем-то, особой необходимости разбираться в кодировании стилей наверное не нужно, ведь гораздо проще всё делать мышкой, как описано выше. Но для понимания сути, думаю, полезно представлять как формируются данные url. Магия есть, но её тут не очень много.

За это сообщение автора zed поблагодарили: 3
Ivan30 (21 мар 2016, 07:35) • rass (25 мар 2016, 02:53) • Tolik (21 мар 2016, 10:49)
Рейтинг: 15.79%
 
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.


Вернуться в Google Maps + Google Earth™

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4