新版Google地图的网址如下所示:
https://www.google.com/maps/search/coffee/@37.0625,-95.677068,4z/data=!3m1!4b1
Run Code Online (Sandbox Code Playgroud)
搜索词显然是"咖啡",@37.0625,-95.677068,4z是lat,lng和zoom; 但什么是数据?即编码是!3m1!4b1什么?
kap*_*pex 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>
Run Code Online (Sandbox Code Playgroud)
该!字符是很可能的分隔符.为了更好的可读性,一些换行符:
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
Run Code Online (Sandbox Code Playgroud)
模式似乎是!<id><data type><value>.
我们在这里看到的一些数据类型: s是一个字符串,b是boolean,i是整数,d是double,ffloat.
现在这只是一个猜测,但我认为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
Run Code Online (Sandbox Code Playgroud)
另一个例子,点击随机咖啡店后.我试图找出一些价值观.
!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
Run Code Online (Sandbox Code Playgroud)
因此,如果这有点正确,那么您的示例!3m1!4b1是一个布尔值.