Tôi không muốn sử dụng Cookies vì vậy tôi tạo ra một phương pháp bằng localStorage.
HTML
<div id="map-canvas" style="width:100%;height:500px;"></div>
JS
$(document).ready(function(){
//Global Variables
var mapCentre;
var map;
initialize();
function initialize() {
var mapOptions;
if(localStorage.mapLat!=null && localStorage.mapLng!=null && localStorage.mapZoom!=null){
mapOptions = {
center: new google.maps.LatLng(localStorage.mapLat,localStorage.mapLng),
zoom: parseInt(localStorage.mapZoom),
scaleControl: true
};
}else{
//Choose some default options
mapOptions = {
center: new google.maps.LatLng(0,0),
zoom: 11,
scaleControl: true
};
}
//MAP
map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
mapCentre = map.getCenter();
//Set local storage variables.
localStorage.mapLat = mapCentre.lat();
localStorage.mapLng = mapCentre.lng();
localStorage.mapZoom = map.getZoom();
google.maps.event.addListener(map,"center_changed", function() {
//Set local storage variables.
mapCentre = map.getCenter();
localStorage.mapLat = mapCentre.lat();
localStorage.mapLng = mapCentre.lng();
localStorage.mapZoom = map.getZoom();
});
google.maps.event.addListener(map,"zoom_changed", function() {
//Set local storage variables.
mapCentre = map.getCenter();
localStorage.mapLat = mapCentre.lat();
localStorage.mapLng = mapCentre.lng();
localStorage.mapZoom = map.getZoom();
});
}
});
Liên kết đến JSFiddle: http://jsfiddle.net/x11joex11/G4rdm/10/
Chỉ cần di chuyển xung quanh bản đồ bằng cách thu nhỏ kể từ khi nó bắt đầu ở giữa đại dương và sau đó nhấn chạy lại hoặc làm mới trang và bạn sẽ thấy nó ghi nhớ vị trí và thu phóng.
Nó lưu trữ để LocalStorage mỗi khi người dùng chảo màn hình hoặc phóng to nhờ những thông điệp sự kiện "center_changed"
và "zoom_changed"
Nguồn
2014-01-01 07:33:23
giải pháp tuyệt vời! Cảm ơn bạn! – AVEbrahimi
giải pháp tuyệt vời, nhưng không sửa chữa cho mapTypeId ... – Stefanvds
Tuyệt vời! Nó hoạt động tuyệt vời! – qub1n