Сохранение полного маршрута Google Maps

Я хочу иметь возможность легко сохранять и повторно отображать маршрут Google Maps Directions Route на карте Google. Скажем, от точки A до B объект DirectionsResult от Google имеет 100 точек вдоль маршрута, я хочу иметь возможность сохранить этот маршрут и гарантировать, что в следующий раз, когда я его нарисую, маршруты пройдут через все эти точки.

Я видел, как люди пытались сделать это сериализовать весь объект DirectionsResult и сохранить его в базе данных. Затем, когда мы хотим перерисовать маршрут, отправляем строку обратно, JSON.Parse, а затем пытаемся передать ее объекту DirectionsRenderer , который отобразит направления на карте.У этого подхода есть три проблемы:

1) Вы теряете информацию о типе в процессе сериализации, и, поскольку Google минимизирует объекты, вы не можете использовать функции класса для надежного извлечения этих значений из объекта. Вам необходимо сначала использовать функции доступа к данным для создания объектов-заполнителей при первоначальной сериализации объекта, а затем перестроить объекты Google Maps при последующем синтаксическом анализе сериализованной строки.

2) Это юридически сомнительно. В TOS Google Maps говорится, что вы не должны хранить данные постоянно, и, судя по другим сообщениям, этот подход нарушает его.

3) Объект может быть огромным, размер одного сериализованного маршрута превышал 64 КБ.

Я также подумал о том, чтобы попытаться сохранить несколько точек пути, а затем перестроить их с помощью путевых точек. Этот вид работает, но у вас может быть не более 8 баллов для бесплатного API, поэтому это не гарантирует большой точности, превышающей эти 8 баллов. Кроме того, он затем рисует маркеры путевых точек вдоль маршрута, что, как я думаю, может запутать пользователя.

Есть ли общепринятый способ хранения точных маршрутов из Google Maps, или API и TOS специально разработаны для предотвращения этого? Спасибо за помощь.

12
задан jargetz 15 February 2012 в 16:00
поделиться