Pavel_Osipov
@Pavel_Osipov
Программист, в основном web

Google directions кешировать route response объект

Столкнулся с задачей вывода пути по ключевым маркерам на гугло-карте. Google Maps API v3 предоставляет удобные средства для этого, и на данный момент ограничение в 8+2 маркера на путь меня вполне устраивает.
Но проблема во втором ограничении, 2500 вычислений пути для бесплатного использования на сайт в день. Смысл в том, что вычислять путь хочется только в админке, а при выводе карты пользователю не дёргать лишний раз гугло-серверы а подставлять десериализованный объект из базы.
Т.е. нужно как-то сериализовать response объект в функции
directionsService.route(request, function(response, status) {

из любого примера раздела Directions, к примеру этого.

Попгуглив оказалось, что сложные объекты так просто не сериализуются, но я на всякий случай попробовал пару вариантов:
mootools Object-toQueryString
http://www.dotnetfunda.com/articles/article763-serialize-object-in-javascript-.aspx
Serializing Objects in Javascript
Ещё хитрый проект

Ничего не помогает.

В итоге набрёл на этот проект, там в частности сказано, что JSON плохо справляется со сложными объектам и их подход сохранение в xml лучше, но их библиотека просто выдаёт sinatx error на строке
retObj = eval("new "+ nodeType + "()");
Проверял таким образом:

var serializer = new ONEGEEK.GSerializer();
var serializedXML = serializer.serialize(response, 'response');
response = serializer.deserialize( serializedXML );


Я написал создателям библиотеки, жду ответа.

А теперь вопрос, может кто-то уже сталкивался с такой задачей?
  • Вопрос задан
  • 2567 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы