Приближение расстояния на картах Google

Я начал создавать веб-сайт, на котором пользователи будут эффективно отслеживаться (они знают, что их отслеживают). Пользователи будут идти по определенному маршруту (точнее, вокруг Манчестера, Великобритания), из которых есть 10 контрольно-пропускных пунктов. Контрольно-пропускной пункт - это статическая позиция на карте. Используя API Карт Google, я знаю, что могу нанести на карту позицию, то есть контрольную точку. Я также сохраняю время, когда пользователь достигает указанной контрольной точки. После определения расстояния между контрольными точками я могу вычислить их среднюю скорость, используя простую математику.

Теперь я хотел бы нанести на карту их предполагаемую позицию в зависимости от их скорости. Сложность, с которой я столкнулся, заключается в нанесении новой позиции x миль / метров (любой единицы) от текущей позиции вдоль маршрута .

Если бы это была прямая линия, это было бы просто.

  • Есть ли способ рассчитать расстояние от текущего местоположения по маршруту?
  • Существуют ли какие-либо ограничения на количество баллов?
  • Есть ли особые способы сделать это, которых следует избегать?

Чтобы расширить мой пример изображением:

Example scenario

Представьте, что пользователь занял первое место маркер в 07:00, и предполагается, что они достигнут маркера второго места в 09:00. Текущее время (например) - 08:00, что означает, что (по оценкам) пользователь должен находиться примерно на полпути между маркерами.Затем я вычислял расстояние, которое они прошли (опять же, оценочное), и наносил их положение на карту «расстояние» от маркера первого места.

Надеюсь, я достаточно ясно объяснил сценарий, чтобы люди могли его понять.

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

Заранее спасибо.

ОБНОВЛЕНИЕ: Потратив много времени, пытаясь разобраться, я с треском провалился. Вот что я знаю:

  • Я должен создать путь, используя PolyLine (я могу это сделать, у меня есть список lat / lng)
  • Существует расширение JS под названием epoly.js, но оно несовместимо с V3
  • Использование spherical.interpolate не работает, потому что оно не следует по пути.
7
задан Adam Holmes 24 January 2012 в 22:38
поделиться