Maps API v3 Saving map in localstorage

by upsidown

HTML

<script src="http://maps.google.com/maps/api/js?sensor=false&amp;.js"></script>
<div id="map"></div>

CSS

html, body {
	height: 100%;
}

#map {
    width:100%;
    height: 100%;
    border: 1px solid black;
}

JavaScript

var map = new google.maps.Map(document.getElementById('map'), {
    disableDefaultUI: false,
    center: new google.maps.LatLng(32.3985, -3.6914),
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    zoom: 3
});

getDetails();

google.maps.event.addListener(map, 'idle', function() {
    console.log("idle");
    saveMap();
});

function getDetails() {
    if (!localStorage.mapCenter) {
        return false;
    }
    
    var mapCenter = JSON.parse(localStorage.mapCenter);
    var mapZoom = JSON.parse(localStorage.mapZoom);

    var center = new google.maps.LatLng(mapCenter['nb'],mapCenter['ob']);
    
    map.setCenter(center);
    map.setZoom(mapZoom);
};

function saveMap() {
    var center = map.getCenter();
    var zoom = map.getZoom();

    localStorage.mapCenter = JSON.stringify(center);
    localStorage.mapZoom = zoom;
}