【问题标题】:Level of detail tuning (Google Maps API)细节级别调整(Google Maps API)
【发布时间】:2013-02-17 08:49:31
【问题描述】:

是否有可能改变地图上不同缩放级别的名称(标签)/边界的显示方式?

例如,我有 17 个缩放级别。我想开始仅在缩放级别 10 上显示详细信息(国家/地区名称)。

换句话说:地图上的详细程度如何与缩放级别相关联以及如何调整?

【问题讨论】:

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


    【解决方案1】:
    function show_map(lat, lng) {
        var labelsOff = [{
            featureType: "administrative",
            elementType: "labels",
            stylers: [{
                visibility: "off"
            }]
        }, {
            featureType: "poi",
            elementType: "labels",
            stylers: [{
                visibility: "off"
            }]
        }, {
            featureType: "water",
            elementType: "labels",
            stylers: [{
                visibility: "off"
            }]
        }, {
            featureType: "road",
            elementType: "labels",
            stylers: [{
                visibility: "off"
            }]
        }];
    
        var labelsOn = [{
            featureType: "administrative",
            elementType: "labels",
            stylers: [{
                visibility: "on"
            }]
        }, {
            featureType: "poi",
            elementType: "labels",
            stylers: [{
                visibility: "on"
            }]
        }, {
            featureType: "water",
            elementType: "labels",
            stylers: [{
                visibility: "on"
            }]
        }, {
            featureType: "road",
            elementType: "labels",
            stylers: [{
                visibility: "on"
            }]
        }];
    
        latlng = new google.maps.LatLng(51.477391, -0.000853);
        myOptions = {
            zoom: 3,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("map"), myOptions);
        map.setOptions({
            styles: labelsOff
        });
    
        google.maps.event.addListener(map, 'zoom_changed', function () {
            google.maps.event.addListenerOnce(map, 'tilesloaded', function () {
                if (map.getZoom() >= 10) {
                    map.setOptions({
                        styles: labelsOn
                    });
                } else {
                    map.setOptions({
                        styles: labelsOff
                    });
                }
            });
        });
    
    }
    
    
    show_map();
    

    希望这就是您想要的。显然你可以编辑这些特征类型来隐藏不同的东西。

    抱歉,必须修改。忘了the fiddle!

    【讨论】:

      猜你喜欢
      • 2011-03-15
      • 2015-08-23
      • 2011-08-07
      • 2017-11-05
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多