Сохранение полного маршрута Google Maps - PullRequest
12 голосов
/ 15 февраля 2012

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

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

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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

Я считаю, что это юридически сомнительно. На самом деле это почти наверняка противоречит Условиям предоставления услуг . Как вы указали, это постоянное хранилище для других целей, помимо повышения производительности (в отличие от 10.1.3 (b)); но он также предназначен для показа направлений без получения их через API (в отличие от 10.1.1 (a)). Тот факт, что Google не сделал это легко, означает, что они не разрешили этот вариант использования. На самом деле TOS и API предназначены для того, чтобы сделать подобное хранилище трудным, если не невозможным.

Не допустимо ли хранить начальную и конечную точки и позволить API определиться с маршрутом, когда вы захотите отобразить его снова?

0 голосов
/ 01 августа 2012

Взгляните на www.mapmyrun.com они используют API Google Maps и, безусловно, сохраняют данные.Однако маловероятно, что они используют бесплатный API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...