Google Mapの中心点をクッキーに保存し、次回のページのロード時に地図を最後の位置に復元しようとしています。GoogleMapsLatLngをシリアライズしてクッキーに保存する
確かに、緯度と経度を文字列またはシリアル化された配列などのクッキーに保存できますが、JSONを使ってGoogle Maps LatLngオブジェクトをクッキーにシリアル化してから、後の時間。
私はjQueryと、このライブラリを使用しています:
$.cookies.set('map_center', map.getCenter());
、その後、私は意志シリアライズ/デシリアライゼーションのを期待し、それを読み出すしよう:私はマップから緯度経度でクッキーを設定し
http://code.google.com/p/cookies/オブジェクトを復元してください...
var centerpointFromCookie = $.cookies.get('map_center);
map.setCenter(centerpointFromCookie);
しかし、オブジェクトの種類が保持されていないようです。スクリプトコンソールでは、これはそれがシリアル化され、クッキーに保存される前のLatLngオブジェクトは、次のようになります。
map.getCenter()
O
$a: 151.21950000000004
Za: -33.8688
__proto__: O
constructor: function O(a, b, c) {a-=0;b-=0;c||(a=Bd(a,-90,90),b=Cd(b,-180,180));this.Za=a;this.$a=b;}
equals: function (a) {return!a?k:Dd(this.lat(),a.lat())&&Dd(this.lng(),a.lng());}
lat: function() {return this[a];}
lng: function() {return this[a];}
toString: function() {return"("+this.lat()+", "+this.lng()+")";}
toUrlValue: function (a) {a=Hd(a)?a:6;return ae(this.lat(),a)+","+ae(this.lng(),a);}
__proto__: Object
そして、これは、それがその後どのように見えるかです:
centerpointFromCookie
Object
$a: 151.21950000000004
Za: -33.8688
__proto__: Object
__defineGetter__: function __defineGetter__() {
__defineSetter__: function __defineSetter__() {
__lookupGetter__: function __lookupGetter__() {
__lookupSetter__: function __lookupSetter__() {
constructor: function Object() {
hasOwnProperty: function hasOwnProperty() {
isPrototypeOf: function isPrototypeOf() {
propertyIsEnumerable: function propertyIsEnumerable() {
toLocaleString: function toLocaleString() {
toString: function toString() {
valueOf: function valueOf() {
私はキャストする必要がありますかデシリアライズ時にオブジェクトをGoogleMapsLatLng型に変換しますか?私はちょうど値を格納することができますが、私は正しくこのような小さなオブジェクトをクッキーにシリアル化する方法を理解したいと思います。
実装可能な場合でも、実装の詳細に依存します。あなたはしないでください。これは、アプリケーションが将来中断する可能性があることを意味します。 私はクッキーに緯度と経度を格納することに固執しています(実際には全く同じものを持っています)。もちろん、あなたの質問を動かすのは単なる好奇心であれば、それには何もありません。 – Jasper