Google Maps API隐藏山峰名称:需关闭哪些地图样式要素?
解决Google Maps API隐藏山峰名称的问题
嘿,我刚好搞定过类似的需求!那些烦人的山峰名称属于Google Maps样式体系里的地形(landscape)类要素的标签组件,咱们只需要在现有样式数组里加一条规则就能把它们藏起来。
两种解决方案
方案1:隐藏所有地形相关标签(简单粗暴)
如果不需要任何地形类的标签(比如山峰、山谷名称都不想显示),直接给landscape要素的labels设置visibility: off就行:
var svmapstyle = [ { "featureType":"administrative", "elementType":"all", "stylers":[ {"visibility":"on"}, {"saturation":-100}, {"lightness":20} ] }, { "featureType":"road", "elementType":"all", "stylers":[ {"visibility":"on"}, {"saturation":-100}, {"lightness":40} ] }, // 新增:隐藏所有地形标签 { "featureType": "landscape", "elementType": "labels", "stylers": [ {"visibility": "off"} ] }, // 补全你截断的水域样式(示例) { "featureType":"water", "elementType":"all", "stylers":[ {"visibility":"on"}, {"saturation":-100}, {"lightness":50} ] } ];
方案2:只隐藏山峰名称(精准控制)
如果你还想保留其他地形标签(比如河流、湖泊名称),可以更精准地针对landscape.natural.landform(地形自然地貌,包含山峰)的标签设置隐藏:
var svmapstyle = [ { "featureType":"administrative", "elementType":"all", "stylers":[ {"visibility":"on"}, {"saturation":-100}, {"lightness":20} ] }, { "featureType":"road", "elementType":"all", "stylers":[ {"visibility":"on"}, {"saturation":-100}, {"lightness":40} ] }, // 新增:仅隐藏山峰等地貌的标签 { "featureType": "landscape.natural.landform", "elementType": "labels", "stylers": [ {"visibility": "off"} ] }, // 补全水域样式(示例) { "featureType":"water", "elementType":"all", "stylers":[ {"visibility":"on"}, {"saturation":-100}, {"lightness":50} ] } ];
原理说明
Google Maps的样式系统是按featureType(要素类型)和elementType(要素组件)分层的:
landscape是所有地形类要素的父类型landscape.natural.landform是其子类型,专门指代山峰、丘陵这类自然地貌labels则是要素的标签文本部分,设置visibility: off就能完全隐藏这些文字
你可以根据自己的需求选其中一种方案,把代码加到你现有的样式数组里就行啦!
内容的提问来源于stack exchange,提问作者Jonas Grumann
相关产品推荐
相关产品推荐

