仅在Google Maps Api中显示城市地区名称

时间:2014-05-08 13:20:20

标签: google-maps google-maps-api-3

我只想在google maps api中显示城区名称。我现在可以看到地图中所有标签名称的可见性,但我想显示城区名称,这些名称通常在普通Google地图中以更高的缩放级别显示。

也许您可以将标签名称的可见性设置为某个缩放级别,例如在缩放级别11之后将它们打开?这样的事情可能吗?

提前致谢!

var mapProp = {
    center: new google.maps.LatLng(52.368465, 4.903921),
    zoom: 11,
    styles: [{
        'featureType': 'all',
        'elementType': 'labels',
        'stylers': [{
            'visibility': 'off'
        }]
    }, {
        'featureType': 'transit',
        'elementType': 'labels',
        'stylers': [{
            'visibility': 'off'
        }]
    }, {
        'featureType': 'poi',
        'elementType': 'labels',
        'stylers': [{
            'visibility': 'off'
        }]
    }, {
        'featureType': 'water',
        'elementType': 'labels',
        'stylers': [{
            'visibility': 'off'
        }]
    }, {
        'featureType': 'road',
        'elementType': 'labels.icon',
        'stylers': [{
            'visibility': 'off'
        }]
    }, {
        'stylers': [{
            'hue': '#00aaff'
        }, {
            'saturation': -50
        }, {
            'gamma': 1.15
        }, {
            'lightness': 12
        }]
    }, {
        'featureType': 'road',
        'elementType': 'labels.text.fill',
        'stylers': [{
            'visibility': 'on'
        }, {
            'lightness': 24
        }]
    }, {
        'featureType': 'road',
        'elementType': 'geometry',
        'stylers': [{
            'lightness': 85
        }]
    }],
    streetViewControl: false,
    panControl: false,
    mapTypeControl: false,
    mapTypeId: google.maps.MapTypeId.ROAD
};

1 个答案:

答案 0 :(得分:1)

我创建了2个变量lowLevelStyleshighLevelStyles,其中包含您要应用的不同样式,具体取决于缩放级别。然后按照上面评论中的建议在zoom_changed上创建一个监听器。然后,您可以根据缩放级别应用这些样式:

google.maps.event.addListener(map, 'zoom_changed', function () {

    var zoomLevel = map.getZoom();
    document.getElementById('zoomLevel').innerHTML = 'Zoom Level: ' + zoomLevel;

    if (zoomLevel > 10) {
        map.setOptions(highLevelStyles);
    } else {
        map.setOptions(lowLevelStyles);
    }
});

JSFiddle

检查以上链接是否有工作演示。

相关问题