1

无论如何将边界和/或中心位置转换为字符串并通过json将其发送到服务器端并存储它?

我问是因为当我尝试将这些东西转换成字符串时;我从 api 收到转换错误?

4

1 回答 1

6

使用serialize函数,用于检索地图边界和中心数据,然后将其存储在数据库中。

function serialize(map){
    var json = '{"bounds":'+map.getBounds().toString() + 
               ',"center":'+map.getCenter().toString()+"}";

    //'toString' returns values in '()', we need to replace them by '[]'
    json = json.replace(/\(/g,"[").replace(/\)/g,"]");
    return json;
}

使用deserialize函数,通过存储的数据更新地图的状态:

function deserialize(map, json, useCenter ){
    json = JSON.parse(json);
    if( useCenter ){
        map.setCenter( new google.maps.LatLng(json.center[0],json.center[1]) );
    }else{
        map.fitBounds( new google.maps.LatLngBounds(
                      new google.maps.LatLng(json.bounds[0][0],json.bounds[0][1]),
                      new google.maps.LatLng(json.bounds[1][0],json.bounds[1][1])
                   ) );
    }
}

重要提示: map.fitBounds不符合其论点的确切范围。请参阅此链接

于 2012-04-17T21:51:06.317 回答