Здравствуйте, Кирилл Лебедев, Вы писали:
SIG>>GPS может определять скорость движения? Если да, то пусть действует в зависимости от скорости: если она больше пешеходной — делаем вывод, что хозяин за рулем, не отвлекаем его, другу можно отправить сообщение о том, что запрос будет обработан позже (можно и не отправлять ничего).
КЛ>Очень хорошее решение! Главное — оно использует то, что уже имеется — GPS-приёмник и информацию от него. Однако и данное решение можно ещё "дожать" и усилить. Интересно, кто-нибудь сделает следующий шаг?
Не хочу разочаровывать, но следующий шаг делать надо очень осторожно
Просто потому, что определение скорости по GPS в реальном времени очень неточно. Она меряется не по треку (координатам), а с помощью эффекта Доплера, то есть мы получаем "доплеровскую скорость". В итоге появляется слишком много факторов, влияющих на точность измерений и предсказать\предусмотреть их воздействие не представляется возможным.
Вот парочка исследований, можно на досуге ознакомиться:
A GPS Velocity Sensor: How Accurate Can It Be? – A First Look
GPS and speed measurements
PS. На практике, если едешь по трассе без резких маневров (ускорений, поворотов, торможений и тп), то доплеровская скорость измеряется весьма точно, погрешность не больше 1 км\ч, но вот в городе или, что много хуже, в горах на серпантине, погрешность дитчайшая. Похоже, этот способ измерений совсем не рассчитан на изменение вертикальной составляющей. Можно сделать опыт: берем GPS и, стоя на месте, подбрасываем его вертикально вверх, метра на 1.5 — он покажет скорость в 50-60 км, даже если надежно подцепился к нескольким спутникам.
PPS. Мерить скорость координатным методом, по трекам, тоже не получается, потому что нам нужна краевая скорость — на конце трека, а эти данные тоже грешат неточностью.