Reputation: 1058
I am using a Google Map on my website through an API. It works fine however I have two additional bits of code. One to make it responsive and one to keep it centred. For some reason I can't integrate both bits of code at the same time.
Here's the current working code (with responsive part):
<script>
var map;
jQuery(function($) {
$(document).ready(function() {
var latlng = new google.maps.LatLng(-40.893591, 132.023621);
var myOptions = {
zoom: 5,
center: latlng,
disableDefaultUI: true,
draggable: false,
scrollwheel: false,
navigationControl: false,
mapTypeControl: false,
scaleControl: false,
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// init Height
$('#map_canvas').height($( window ).height());
});
// On Resize
$(window).resize(function(){
$('#map_canvas').height($( window ).height());});
var center;
function calculateCenter() {
center = map.getCenter();
}
google.maps.event.addDomListener(map, 'idle', function() {
calculateCenter();
});
google.maps.event.addDomListener(window, 'resize', function() {
map.setCenter(center);
});
});
</script>
Thanks in advance.
Upvotes: 0
Views: 63
Reputation: 1058
Found a solution:
<script>
function initMap() {
var lnglat = {lat: -25.363, lng: 131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: lnglat,
disableDefaultUI: true,
draggable: false,
scrollwheel: false,
navigationControl: false,
mapTypeControl: false,
scaleControl: false,
});
var center;
function calculateCenter() {
center = map.getCenter();
}
google.maps.event.addDomListener(map, 'idle', function() {
calculateCenter();
});
google.maps.event.addDomListener(window, 'resize', function() {
map.setCenter(center);
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=API_ID&callback=initMap">
</script>
Upvotes: 1