新版Google地图中数据属性的编码是什么?

时间:2014-04-02 10:49:59

标签: google-maps

新版Google地图的网址如下所示:

https://www.google.com/maps/search/coffee/@37.0625,-95.677068,4z/data=!3m1!4b1

显然搜索词是“coffee”,@37.0625,-95.677068,4z是lat,lng和zoom;但什么是数据?即什么编码是!3m1!4b1

1 个答案:

答案 0 :(得分:22)

我从未见过这种编码,我猜这是谷歌专有的。虽然有一些关于结构的提示。我点击了“嵌入”并获得了一个更长的网址,语法相同:

<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>

!字符很可能是分隔符。为了更好的可读性,有一些换行符:

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。< / p>

现在这只是一个猜测,但我认为m是一个容器,并且!<id>m<X>后面跟X个参数的模式。这样,类似的值被分组,ID在每个级别上是唯一的并且按升序排列:

!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是一个布尔值。