react - ¿La API de JavaScript de Google Maps no carga el nivel de zoom más cercano?
multiple markers google maps (2)
Esto fue un error en la API de Javascript de Google Maps y fue resuelto por Google, según issuetracker.google.com/issues/71715009
Hoy noté que el nivel de zoom disponible más cercano de las imágenes satelitales se eliminó en un área en particular (puede afectar a otras áreas, pero me estoy enfocando en un área que está definitivamente afectada). Hace dos días el nivel 20 estaba disponible, ahora solo el nivel 19.
MaxZoomService aún dice que el zoom disponible más cercano en esta ubicación es 20. Pero cuando el mapa está en el nivel 19, al presionar el botón de zoom + no se aumenta el zoom al nivel 20.
¿Hay alguna razón por la que no pueda hacer zoom al nivel 20 cuando dice que está disponible?
Algunas explicaciones teóricas (todas sin confirmar) incluyen:
- El nivel de zoom 20 se eliminó recientemente, pero MaxZoomService no se ha actualizado y muestra el valor anterior
- El nivel 20 se rompe temporalmente en esta ubicación y se restaurará pronto (por ejemplo, ¿quizás están reprocesando los cuadros de imágenes para este nivel?)
(No creo que haya confusión con la profundidad disponible para top-down vs Oblique porque ambos están bloqueados al nivel 19).
Actualizaciones:
- Los mosaicos de mapas en el nivel 20 que se estaban cargando anteriormente todavía existen en las URL antiguas, simplemente no se cargan en el Mapa API de Javascript. ¿Quizás esto le da importancia a la explicación de que es solo un problema temporal con el servicio que enumera las capas de imágenes disponibles?
- Parece ser un problema global, no un área geográfica aislada
- Cambiar a una versión anterior de la API de Javascript de Google Maps (por ejemplo, agregar? V = 3.29) no parece resolver el problema
Ver ejemplo en vivo: https://jsfiddle.net/3qojzt76/
<!DOCTYPE html>
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
/* 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;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
var map;
var latlng = {lat: 37.8768101, lng: -122.2813413}
function initMap() {
map = new google.maps.Map(document.getElementById(''map''), {
mapTypeId: google.maps.MapTypeId.SATELLITE,
tilt: 0,
center: latlng,
zoom: 19
});
var mapZoomService = new google.maps.MaxZoomService()
mapZoomService.getMaxZoomAtLatLng(latlng, function(MaxZoomResult){
if(google.maps.MaxZoomStatus.OK){
alert(''map.getZoom(): ''+map.getZoom()+'', MaxZoomResult.zoom: '' + MaxZoomResult.zoom)
}else{
alert(''Error: in google.maps.MaxZoomService().getMaxZoomAtLatLng()'')
}
})
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=&callback=initMap"
async defer></script>
</body>
</html>
Sí, es cierto que esto era un error anteriormente, ahora está funcionando bien. Google ha hecho algunas modificaciones. Por ese momento se rompe el mismo problema que enfrenté ahora se resuelve. Una cosa más que noté cuando establecí una propiedad del mapa.
map = new google.maps.Map(document.getElementById(''map''), {
mapTypeId: google.maps.MapTypeId.SATELLITE,
tilt: 0,
center: latlng,
zoom: 20 // look I set it 20
});
Todavía no está entrando en una profundidad máxima. https://jsfiddle.net/Negirox/3qojzt76/8/ vea en el JSfiddle anterior dado por @ python1981
Pero cuando lo puse en 21, su profundidad máxima será máxima, pero MaxZoomResult.zoom todavía muestra 20.
map = new google.maps.Map(document.getElementById(''map''), {
mapTypeId: google.maps.MapTypeId.SATELLITE,
tilt: 0,
center: latlng,
zoom: 21 // look I set it 21
});
Corrígeme si estoy equivocado.