Ich habe eine Google Map in meine Website implementiert (siehe Code unten). Die Karte und die Bilder, z. B. Vergrößern/Verkleinern, werden jedoch nicht in Chrome, Firefox oder Internet Explorer gerendert. Sie funktionieren gut auf Safari. Ich benutze Bootstrap und interessanterweise lädt die Karte, wenn der Browser auf die Größe eines mobilen Geräts reduziert wird. Die Bilder werden jedoch immer noch nicht geladen. Ich frage mich, ob ein potenzielles Problem durch die Einstellung der Höhe/Breite ist? Ich habe mein CSS auch unten angehängt.Google Maps HTML/JavaScript wird nicht angezeigt
CSS
#map {
height: 100%;
max-height: 600px;
width: 100%;
max-width: none;
}
#floating-panel {
background-color: #fff;
padding: 5px;
border: 1px solid #999;
text-align: center;
font-family: "Palatino Linotype", "Book Antiqua", serif;
line-height: 30px;
padding-left: 10px;
}
HTML und Javascript
<div id="floating-panel">
<b>Start: </b>
<input type="text" id="start">
<b>End: </b>
<input type="text" id="end" value="London, UK">
<button id="directions">Directions </button>
</div>
<div class="map" id="map"></div>
<script>
function initMap() {
var directionsService = new google.maps.DirectionsService;
var directionsDisplay = new google.maps.DirectionsRenderer;
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: {lat: 51.5074, lng: 0.1278}
});
directionsDisplay.setMap(map);
var onChangeHandler = function() {
calculateAndDisplayRoute(directionsService, directionsDisplay);
};
//document.getElementById('start').addEventListener('change', onChangeHandler);
document.getElementById('directions').addEventListener('click', onChangeHandler);
//document.getElementById('end').addEventListener('change', onChangeHandler);
}
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(foundYou, notFound);
} else {
alert('Geolocation not supported or not enabled.');
}
function notFound(msg) {
//alert('Unable to find your location')
}
function foundYou(position) {
var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
marker = new google.maps.Marker({
position: latlng,
map: map
})
var address = results[0].address_components[1].long_name+' '+results[0].address_components[0].long_name+', '+results[0].address_components[3].long_name
$('.autoLink span').html(address).parent().show().click(function(){
$('#start').val(address);
calcRoute();
});
}
} else {
alert("Geocoder failed due to: " + status);
}
});
}
function calculateAndDisplayRoute(directionsService, directionsDisplay) {
directionsService.route({
origin: document.getElementById('start').value,
destination: document.getElementById('end').value,
travelMode: google.maps.TravelMode.DRIVING
}, function(response, status) {
if (status === google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
}
</script>
und meine API, die ich gestellt habe nach </body>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDjjv2XhU9dhy3Zn8SlwCqzz7NnXAbeY-o&callback=initMap"></script>
Es könnte etwas mit der 'max-width: none;' zu tun haben. Ich habe es auf explizite Breiten umgestellt und es funktionierte nach Skripten, die in der richtigen Reihenfolge geladen wurden. Siehe meine Antwort unten. – jdgregson
mögliches Duplikat von [Google Maps div wird nicht in JSBin angezeigt] (http://stackoverflow.com/questions/20572196/google-maps-div-not-showing-up-in-jsbin) – geocodezip
mögliches Duplikat von [Google Maps API v3 | zeigt keine Kartendaten an] (http://stackoverflow.com/questions/18273430/google-maps-api-v3-shows-no-map-data) – geocodezip