我使用此网址从谷歌服务器
获取地图图块http://mts0.google.com/vt/lyrs=m@189000000&hl=en&src=app&x=41189&y=25680&z=16&s=Gal
我想知道是否有办法自定义此网址,方法是添加一些额外的参数来获取图块,而不需要任何街道标签或额外信息或叠加层。 就像在地图api v3中自定义地图一样。 任何建议都会受到欢迎。
答案 0 :(得分:12)
我没有找到有关它的文档,但有一个参数apistyle
隐藏街道标签的值(必须是urlencoded)将是
s.t:3|s.e:l|p.v:off
由于缺少文档,以下是猜测:
s.t
定义了要素类型,值3
似乎是道路 s.e
定义元素,例如l
abels或g
eometry p
定义了样式,v
代表v
isibility,值off
应该清晰。
结果:
https://mts0.google.com/vt/lyrs=m@289000001&hl=en&src=app&x=41189&y=25680&z=16&s=Gal&apistyle=s.t%3A3|s.e%3Al|p.v%3Aoff
您必须使用参数来获得所需的结果。在过去,有可能获得风格,例如通过在使用Styled Map Wizard时使用developer-tools检查tile-URL,但是他们修改了javascript-API使用的tile-URLs,现在将以某种方式对参数进行编码。
参数和值列表:
s.t
0
1
17
21
19
20
18
5
81
82
2
37
33
34
36
40
38
35
39
3
50
49
51
4
65
66
6
s.e
g
g.f
g.s
l
l.i
l.t
l.t.f
l.t.s
p.c
#aarrggbb
p.g
0.01
和10
p.h
#rrggbb
p.il
true
/ false
强> p.l
-100
和100
p.s
-100
和100
p.v
on
/ simplified
/ off
强> p.w
0
答案 1 :(得分:3)
Molle博士发现的实施情况:
function getEncodedStyles(styles){
var ret = "";
var styleparse_types = {"all":"0","administrative":"1","administrative.country":"17","administrative.land_parcel":"21","administrative.locality":"19","administrative.neighborhood":"20","administrative.province":"18","landscape":"5","landscape.man_made":"81","landscape.natural":"82","poi":"2","poi.attraction":"37","poi.business":"33","poi.government":"34","poi.medical":"36","poi.park":"40","poi.place_of_worship":"38","poi.school":"35","poi.sports_complex":"39","road":"3","road.arterial":"50","road.highway":"49","road.local":"51","transit":"4","transit.line":"65","transit.station":"66","water":"6"};
var styleparse_elements = {"all":"a","geometry":"g","geometry.fill":"g.f","geometry.stroke":"g.s","labels":"l","labels.icon":"l.i","labels.text":"l.t","labels.text.fill":"l.t.f","labels.text.stroke":"l.t.s"};
var styleparse_stylers = {"color":"p.c","gamma":"p.g","hue":"p.h","invert_lightness":"p.il","lightness":"p.l","saturation":"p.s","visibility":"p.v","weight":"p.w"};
for(i=0;i<styles.length;i++){
if(styles[i].featureType){
ret += "s.t:"+styleparse_types[styles[i].featureType]+"|";
}
if(styles[i].elementType){
if(!styleparse_elements[styles[i].elementType])
console.log("style element transcription unkown:"+styles[i].elementType);
ret += "s.e:"+styleparse_elements[styles[i].elementType]+"|";
}
if(styles[i].stylers){
for(u=0;u<styles[i].stylers.length;u++){
var keys = [];
var cstyler = styles[i].stylers[u]
for(var k in cstyler){
if(k=="color"){
if(cstyler[k].length==7)
cstyler[k] = "#ff"+cstyler[k].slice(1);
else if(cstyler[k].length!=9)
console.log("malformed color:"+cstyler[k]);
}
ret += styleparse_stylers[k]+":"+cstyler[k]+"|";
}
}
}
ret = ret.slice(0,ret.length-1);
ret += ","
}
return encodeURIComponent(ret.slice(0,ret.length-1));
}
输入在这种情况下是一个常规的谷歌地图样式数组 - 一个好的向导是Snazzy Maps
无论如何,多亏Molle博士节省时间!