常用的谷歌瓦片地址
网上流传的谷歌地图瓦片地址一般为:https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}
其中lyrs
为地图类型, 主要有以下几种:
https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z} // 纯卫星影像
https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z} // 纯卫星影像(带路网和助记)
https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z} // 街道
https://mt1.google.com/vt/lyrs=t&x={x}&y={y}&z={z} // 地形晕染(灰度图)
https://mt1.google.com/vt/lyrs=p&x={x}&y={y}&z={z} // 地形晕染(带路网和助记)
https://mt1.google.com/vt/lyrs=p&x={x}&y={y}&z={z} // 路网和助记
众所周知, 谷歌地图的路网和助记使用的是火星坐标系(GCJ-02),会有一定的偏移, 而且会有行政区划标记错误的问题, 所以我一般只使用不含路网和助记的纯影像图。
纯卫星影像图很容易获得, 地形晕染, 因为它默认是带路网和助记的, 我一直以为无法获得纯地形晕染图(谷歌的地形晕染还是很漂亮的).
直到某天,群友发了类似这样一串链接:
http://mt1.google.com/vt/lyrs=p&x={x}&y={y}&z={z}&apistyle=s.e:l|p.v:off%2Cs.t:1|s.e.g|p.v:off%2Cs.t:3|s.e.g|p.v:off%2Cs.t:2|s.e.g|p.v:off%2Cs.t:4|s.e.g|p.v:off
通过它,就能得到谷歌纯地形晕染图了。
怎么实现的呢?
原来谷歌地图的 XYZ 瓦片是可以通过 apistyle 自定义样式的。
似乎官方也没有文档说明,在 stackoverflow 的这篇帖子1中,有较为详细的介绍。
比如这个代码
s.t:3|s.e:l|p.v:off
s.t:3
要素类型t, 3 表示 road
路网
s.e:l
元素类型e, l 表示 lables
标签
p.v:off
定义样式 , v 表示 visibility
可见性
连起来的意思就是 路网、路网标签不显示
通过在线工具自定义样式
通过 apistyle 可以控制元素、标签是否显示,还可以自定义颜色。
谷歌有一个定制地图样式的网站: https://mapstyle.withgoogle.com/ ,可以可视化的自定义地图样式
定义好样式后, 会得到一个样式json文件, 如:
[
{
"featureType": "road",
"stylers": [
{
"visibility": "off"
}
]
}
]
再通过这个工具 GMaps API Style Encoder2 ,可以将样式 style 转换为 apistyle 代码, 应用到 XYZ 瓦片中。
简易自定义样式工具
简单的控制标签、行政区划、POI、水系等是否显示。
label: "s.e:l|p.v:off", // 隐藏标签
administrative: "s.t:1|s.e.g|p.v:off", // 隐藏行政区划
road: "s.t:3|s.e.g|p.v:off", // 隐藏路网
poi: "s.t:2|s.e.g|p.v:off", // 隐藏POI
water: "s.t:6|s.e.l|p.v:off", // 隐藏水系
当前瓦片地址:
http://mt0.google.com/vt/lyrs=p&x={x}&y={y}&z={z}&s=Ga
选择底图