1
境界や中心位置を文字列に変換して、それをサーバー側にjsonで送信して保存する方法はありますか?Store Map Google Maps API v3用のDBに繋ぐ
これらのものを文字列に変換しようとすると、私は尋ねています。私はAPIから変換エラーを取得していますか?
境界や中心位置を文字列に変換して、それをサーバー側にjsonで送信して保存する方法はありますか?Store Map Google Maps API v3用のDBに繋ぐ
これらのものを文字列に変換しようとすると、私は尋ねています。私は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
は、その引数の正確な境界に適合しません。このlinkを参照してください。
これは実際には私のシナリオに合っているわけではありませんが、間違いなく正しい答えです。ありがとよ! – MrGorki