更改地图样式而不重置以前的设置

时间:2017-12-18 16:40:09

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

我试图在我的地图中添加一些custom options,以便用户可以像Transit,道路和POI那样打开和关闭某些内容。但是,当我使用setOptions时,它会忘记我以前的设置并应用新的设置。

例如。在下面的代码中,默认情况下会关闭传输图标标签。但是,当我单击POI切换时,将显示传输图标。

我如何克服这个障碍?我试过几种方式:

  • 创建存储样式的变量。但是,我不知道如何只检索我想要更改的设置
  • 使用样式创建图层。我试过这样做,但似乎没有办法用默认的Google地图样式创建图层。
map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 43.693226, lng: -79.383184},
    styles: [
        {
            featureType: 'transit',
            elementType: 'labels.icon',
            stylers: [{visibility: 'off'}]
        },
        {
            featureType: 'poi',
            elementType: 'labels',
            stylers: [{visibility: 'off'}]
        },
    ]
});

var poiToggleOn = false;
document.getElementById('poiToggle').addEventListener('click', function() {
    if (poiToggleOn === false) {
        poiToggleOn = true;
        map.setOptions({styles: [
            {
                featureType: 'poi',
                elementType: 'labels',
                stylers: [{visibility: 'on'}]
            }
        ]})
    } else {
        poiToggleOn = false;
        map.setOptions({styles: [
            {
                featureType: 'poi',
                elementType: 'labels',
                stylers: [{visibility: 'off'}]
            }
        ]})
    }
});

0 个答案:

没有答案