自定义谷歌地图平铺服务器网址

时间:2015-04-17 07:19:52

标签: google-maps

我使用此网址从谷歌服务器

获取地图图块
http://mts0.google.com/vt/lyrs=m@189000000&hl=en&src=app&x=41189&y=25680&z=16&s=Gal

我想知道是否有办法自定义此网址,方法是添加一些额外的参数来获取图块,而不需要任何街道标签或额外信息或叠加层。 就像在地图api v3中自定义地图一样。 任何建议都会受到欢迎。

2 个答案:

答案 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,现在将以某种方式对参数进行编码。

参数和值列表:

FeatureTypes:s.t

  • 所有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
  • 过境4
  • transit.line 65
  • transit.station 66
  • water 6

ElementType:s.e

  • geometry g
  • geometry.fill g.f
  • geometry.stroke g.s
  • 标签l
  • labels.icon l.i
  • labels.text l.t
  • labels.text.fill l.t.f
  • labels.text.stroke l.t.s

斯泰勒:

  • color p.c
    RGBA十六进制值#aarrggbb
  • gamma p.g
    0.0110
  • 之间浮动
  • hue p.h
    RGB十六进制值#rrggbb
  • invert_lightness p.il
    true / false
  • 轻盈p.l
    -100100
  • 之间浮动
  • 饱和度p.s
    -100100
  • 之间浮动
  • 能见度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博士节省时间!