Ответ 1
Я никогда не видел эту кодировку, я предполагаю, что это что-то проприетарное от Google. Однако есть некоторые намеки на структуру. Я нажал на "embed" и получил более длинный URL-адрес с тем же синтаксисом:
<iframe src="https://www.google.com/maps/embed?pb=!1m12!1m8!1m3!1d26081603.294420473!2d-95.677068!3d37.0625!3m2!1i1024!2i768!4f13.1!2m1!1scoffee!5e0!3m2!1sde!2s!4v1404930797899" width="600" height="450" frameborder="0" style="border:0"></iframe>
!
char, скорее всего, разделитель. Для лучшей читаемости некоторые разрывы строк:
https://www.google.com/maps/embed?pb=
!1m12
!1m8
!1m3
!1d26081603.294420473
!2d-95.677068
!3d37.0625
!3m2
!1i1024
!2i768
!4f13.1
!2m1
!1scoffee
!5e0
!3m2
!1sde
!2s
!4v1404930797899
Образец выглядит как !<id><data type><value>
.
Некоторые типы данных, которые мы видим здесь: s
- это строка, b
является логической, i
является целым числом, d
является double, f
float.
Теперь это всего лишь предположение, но я думаю, что m
- это контейнер, и есть шаблон, за которым !<id>m<X>
следуют параметры X
. Таким образом, сходные значения сгруппированы, идентификаторы уникальны и в порядке возрастания на каждом уровне:
!1m12
!1m8
!1m3
!1d26081603.294420473
!2d-95.677068
!3d37.0625
!3m2
!1i1024
!2i768
!4f13.1
!2m1
!1scoffee
!5e0
!3m2
!1sde
!2s
!4v1404930797899
Другой пример, после нажатия на случайную кофейню. Я попытался определить некоторые из значений.
!1m14
!1m8
!1m3
!1d3101.011519367493 // zoom level
!2d-94.59454913903049 // longitude
!3d38.99223345944582 // latitude
!3m2
!1i1024 // looks like some screen resolution,
!2i768 // but never changes
!4f13.1
!3m3
!1m2
!1s0x0%3A0xaf8a57446f312899
!2sOne+More+Cup // business name that I clicked
!5e0
!3m2
!1sde // language (german)
!2s
!4v1404933052643 // timestamp
Итак, если это несколько правильно, ваш пример !3m1!4b1
является логическим значением.