0

在例如maps.amsterdam.nl/hoegroot 中,我使用不同样式的 mapTypes:Google Light、Google Dark 和 Google Grey。我想在不更改整个 mapType 的情况下使用按钮打开/关闭所有标签。我正在寻找一种仅通过 Javascript 设置功能类型标签的可见性的方法:

{featureType:'label', stylers:[{visibility:'offon'}]}

如何访问 MapType 中的 featureType?

4

1 回答 1

0

获取 de mapTypes 的样式。

标签关闭时,在数组末尾推送一个样式。

标签打开时,在数组末尾弹出此样式。

function doLabels() {
var theCurrentMapType = theMap.getMapTypeId();
var theMapTypes = ['GOOGLE_LIGHT', 'GOOGLE_DARK', 'GOOGLE_GREY'];
for (i = 0; i < theMapTypes.length; i++) { // change all maptypes, to hold labels on/off
    var theMapStyles = theMap.mapTypes[theMapTypes[i]].styles;
    if ($('#labelsonoff input').is(":checked")) theMapStyles.pop();
    else theMapStyles.push({featureType:'all', elementType:'labels', stylers:[{visibility:'off'}]});            
}   
theMap.setMapTypeId('GOOGLE_WHITE'); // change first to other maptype
theMap.setMapTypeId(theCurrentMapType);     // then back to current maptype

}

于 2015-12-04T17:05:33.567 回答