Я пытаюсь сохранить центр центра карты Google в файл cookie и восстановить карту до последней позиции при следующей загрузке страницы.Сериализация GoogleMapsLatLng и сохранение в файле cookie
Я уверен, что могу сохранить широту и долготу в файле cookie как строку или сериализованный массив или что-то в этом роде, но мне любопытно, могу ли я только JSON сериализовать объект LatLng Google Maps в файл cookie, а затем просто восстановить его на позднее время.
Я использую JQuery и эту библиотеку: http://code.google.com/p/cookies/
Я установил печенье с LatLng с карты:
$.cookies.set('map_center', map.getCenter());
И тогда я стараюсь читать его ожидает сериализации/десериализации будет восстановить мой объект ...
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 при десериализации? Я знаю, что могу просто сохранить значения, но я хотел бы понять, как правильно сериализовать небольшой объект, подобный этому, в файл cookie.
Даже если это возможно, вы будете полагаться на детали реализации. Вы не должны. Это может означать, что ваше приложение может просто сломаться в будущем. Я бы (и на самом деле имел в прошлом то же самое), просто придерживаюсь сохранения широты и долготы в файле cookie. Конечно, если это просто любопытство, управляющее вашим вопросом, нет ничего против этого. – Jasper