Google Haritalar'ın "yüklenmemiş harita" kısmının stili nasıl yapılır [kopya]
API kullanarak Google Haritamı karanlık modda biçimlendirmeye çalışıyorum.
Bu örneği buldum ve iyi çalışıyor. Ancak sorun şu ki, haritayı hızlı bir şekilde kaydırırsam, haritanın henüz yüklenmemiş kısımlarının açık gri renkte olması, karanlık modun çok fazla ışığı söndürmeme amacını tamamen ortadan kaldırıyor.
İlk varsayım, yüksüz kutucuklara karşılık gelen bir "elementType" eklemem gerektiğiydi. Ama sonra "tüm" özellikleri seçebileceğimi söylese de yardımcı olmayan bu sayfayı buldum . Ancak bunu yaptığımda bu, yüklenmemiş harita döşemelerinin rengini etkilemiyor.
Google Haritalar'ın yüklenmemiş döşeme rengini değiştirmesini nasıl sağlayabilirim?
Yanıtlar
MapOption : backgroundColor'u aradığınıza inanıyorum :
backgroundColor isteğe bağlı
Tür: dize isteğe bağlı
Harita div arka planı için kullanılan renk. Bu renk, fayanslar henüz kullanıcı tava olarak yüklenmediğinde görünür olacaktır. Bu seçenek yalnızca harita başlatıldığında ayarlanabilir.
Gibi bir şey:
backgroundColor: "black",
kavram kemanının kanıtı

kod pasajı:
function initMap() {
// Styles a map in night mode.
const map = new google.maps.Map(document.getElementById("map"), {
center: {
lat: 40.674,
lng: -73.945
},
zoom: 0,
backgroundColor: "black",
styles: [{
elementType: "geometry",
stylers: [{
color: "#242f3e"
}]
},
{
elementType: "labels.text.stroke",
stylers: [{
color: "#242f3e"
}]
},
{
elementType: "labels.text.fill",
stylers: [{
color: "#746855"
}]
},
{
featureType: "administrative.locality",
elementType: "labels.text.fill",
stylers: [{
color: "#d59563"
}],
},
{
featureType: "poi",
elementType: "labels.text.fill",
stylers: [{
color: "#d59563"
}],
},
{
featureType: "poi.park",
elementType: "geometry",
stylers: [{
color: "#263c3f"
}],
},
{
featureType: "poi.park",
elementType: "labels.text.fill",
stylers: [{
color: "#6b9a76"
}],
},
{
featureType: "road",
elementType: "geometry",
stylers: [{
color: "#38414e"
}],
},
{
featureType: "road",
elementType: "geometry.stroke",
stylers: [{
color: "#212a37"
}],
},
{
featureType: "road",
elementType: "labels.text.fill",
stylers: [{
color: "#9ca5b3"
}],
},
{
featureType: "road.highway",
elementType: "geometry",
stylers: [{
color: "#746855"
}],
},
{
featureType: "road.highway",
elementType: "geometry.stroke",
stylers: [{
color: "#1f2835"
}],
},
{
featureType: "road.highway",
elementType: "labels.text.fill",
stylers: [{
color: "#f3d19c"
}],
},
{
featureType: "transit",
elementType: "geometry",
stylers: [{
color: "#2f3948"
}],
},
{
featureType: "transit.station",
elementType: "labels.text.fill",
stylers: [{
color: "#d59563"
}],
},
{
featureType: "water",
elementType: "geometry",
stylers: [{
color: "#17263c"
}],
},
{
featureType: "water",
elementType: "labels.text.fill",
stylers: [{
color: "#515c6d"
}],
},
{
featureType: "water",
elementType: "labels.text.stroke",
stylers: [{
color: "#17263c"
}],
},
],
});
}
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
<!DOCTYPE html>
<html>
<head>
<title>Styled Maps - Night Mode</title>
<script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap&libraries=&v=weekly" defer></script>
<!-- jsFiddle will insert css and js -->
</head>
<body>
<div id="map"></div>
</body>
</html>