在这个答案中,我将讨论关闭地图上水几何图形的可见性并设置地图后面的背景颜色。
首先,如上一个答案所述,您必须关闭地图的可见性。样式器可以参考google documentation,代码很简单:
styles: [{
"elementType": "geometry.fill",
"stylers": [{
"visibility": "off"
}]
}, {
"featureType": "landscape.natural.landcover",
"elementType": "geometry.fill",
"stylers": [{
"visibility": "on"
}]
}]
在这里,您在地图的 mapOptions 中声明您想要首先关闭水 + 土地的可见性,然后“打开”土地的可见性。
function initialize() {
var mapOptions = {
zoom: 2,
center: new google.maps.LatLng(43.27749, -92.658775),
styles: [{
"elementType": "geometry.fill",
"stylers": [{
"visibility": "off"
}]
}, {
"featureType": "landscape.natural.landcover",
"elementType": "geometry.fill",
"stylers": [{
"visibility": "on"
}]
}]
};
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&.js"></script>
<div id="map_canvas" style="height:300px;"></div>
其次,您必须删除地图的默认背景颜色(灰色)。 Stack Overflow 已经回答了这个问题。您可以通过以下代码简单地使用地图的参数mapOptions:
backgroundColor: 'none'
哪个给:
var mapOptions = {
backgroundColor: 'none',
zoom: 2,
center: new google.maps.LatLng(43.27749, -92.658775),
styles: [{
"elementType": "geometry.fill",
"stylers": [{
"visibility": "off"
}]
}, {
"featureType": "landscape.natural.landcover",
"elementType": "geometry.fill",
"stylers": [{
"visibility": "on"
}]
}]
};
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
一个简单的例子:
function initialize() {
var mapOptions = {
backgroundColor: 'none',
zoom: 2,
center: new google.maps.LatLng(43.27749, -92.658775),
styles: [{
"elementType": "geometry.fill",
"stylers": [{
"visibility": "off"
}]
}, {
"featureType": "landscape.natural.landcover",
"elementType": "geometry.fill",
"stylers": [{
"visibility": "on"
}]
}]
};
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&.js"></script>
<div id="map_canvas" style="height:300px;"></div>
最后,下面的代码 sn-p 是一个非常简单的例子。地图背后有渐变色,地图默认背景色被移除,水的可见性被关闭。
function initialize() {
var mapOptions = {
backgroundColor: 'none',
zoom: 2,
center: new google.maps.LatLng(43.27749, -92.658775),
styles: [{
"elementType": "geometry.fill",
"stylers": [{
"visibility": "off"
}]
}, {
"featureType": "landscape.natural.landcover",
"elementType": "geometry.fill",
"stylers": [{
"visibility": "on"
}]
}]
};
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
.gradient {
height: 200px;
background: -webkit-repeating-linear-gradient(white, blue); /* For Safari 5.1 to 6.0 */
background: -o-repeating-linear-gradient(white, blue); /* For Opera 11.1 to 12.0 */
background: -moz-repeating-linear-gradient(white, blue); /* For Firefox 3.6 to 15 */
background: repeating-linear-gradient(white, blue); /* Standard syntax (must be last) */
}
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&.js"></script>
<div id="map_canvas" class="gradient" style="height:300px;"></div>
请注意,此结果的灵感来自两个帖子。第一个是上面的答案,第二个是Stack Overflow这个地址里Roman的答案。