我正在转换一些使用GMap2.savePosition()的谷歌 map 代码(我没有写过)。在v3 API中是否有等效的方法或更好的首选方法?

最佳答案

谷歌四处搜寻,在v3规范中找不到替代品,但是您自己做替代品并不难,无论是在页面中还是使用cookie。

1)页码

var myPos, myZoom;
function savePos() {
    myPos = map.getCenter();
    myZoom = map.getZoom();
}

function restorePos() {
    map.setCenter(myPos);
    map.setZoom(myZoom);
}

2)使用Cookie

取自this example
function Save() {
    var mapzoom = map.getZoom();
    var mapcenter = map.getCenter();
    var maplat = mapcenter.lat();
    var maplng = mapcenter.lng();
    var cookiestring = maplat + "_" + maplng + "_" + mapzoom;
    var exp = new Date();
    //set new date object
    exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 30));
    //set it 30 days ahead
    setCookie("DaftLogicGMRLL",cookiestring, exp);
}

function Load() {
    var loadedstring=getCookie("DaftLogicGMRLL");
    var splitstr = loadedstring.split("_");
    map.setCenter(new google.maps.LatLng(parseFloat(splitstr[0]), parseFloat(splitstr[1])));
    map.setZoom(parseFloat(splitstr[2]));
}

function setCookie(name, value, expires) {
    document.cookie = name + "=" + escape(value) + "; \
        path=/" + ((expires == null) ? "" : "; \
        expires=" + expires.toGMTString());
}

function getCookie(c_name) {
    if (document.cookie.length>0) {
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1) {
            c_start=c_start + c_name.length+1;
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1) c_end=document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
        }
    }
return "";
}

关于javascript - 等同于v3 Maps API中的GMap2.savePosition?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5158492/

10-12 21:24