境界や中心位置を文字列に変換し、json でサーバー側に送信して保存する方法はありますか?
これらのものを文字列に変換しようとするとき、私は尋ねています。API から変換エラーが発生していますか?
境界や中心位置を文字列に変換し、json でサーバー側に送信して保存する方法はありますか?
これらのものを文字列に変換しようとするとき、私は尋ねています。API から変換エラーが発生していますか?
関数を使用serialize
してマップの境界と中心データを取得し、DB に格納します。
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
引数の正確な境界には適合しません。このリンクを参照してください。