Страница 1 из 1

Слежение

Добавлено: 08 дек 2014, 21:04
0800009
Имеем определенное количество объектов на карте имеем их координаты
Имеем координаты собственного местоположения
Задача при с сближении с одним из объектов сообщить об этом пользователю программы.
Как можно реализовать ?
Первое что приходит на ум это при изменении местоположения пользователя и/или с определенным интервалом временным вычислять
расстояние до объектов и если оно меньше определенного значения сообщать б этом пользователю.
Может еще какие то способы?
Или допустим мне нужно отслеживать объекты находящиеся непосредственно по пути следования
на проезжей части,
а те объекты которые находятся допустим в квартале игнорировать.

Re: Слежение

Добавлено: 09 дек 2014, 12:34
Mikhail_dev
Первое что приходит на ум это при изменении местоположения пользователя и/или с определенным интервалом временным вычислять
расстояние до объектов и если оно меньше определенного значения сообщать б этом пользователю.
А есть еще какие-то другие варианты? Только думаю если пользователи обновляются, то надо в двух случаях пересчитывать:
1. обновилось наше местоположение
2. обновилось местоположение других
Делается через метод - http://developer.android.com/reference/ ... .Location) (distanceTo)

Я на своём прошлом проекте (treQster) именно так и делал. Можете глянуть как он в этом случае работает.

Re: Слежение

Добавлено: 09 дек 2014, 16:07
Foenix
Миша, почему ты из подписи ссылку на трекстер убрал, ведь была же по-моему?

Re: Слежение

Добавлено: 09 дек 2014, 17:30
0800009
Спасибо,
а каким образом отследить именно те объекты которые находятся именно по пути следования
а не в стороне.

Re: Слежение

Добавлено: 09 дек 2014, 17:42
Mikhail_dev
Foenix писал(а):Миша, почему ты из подписи ссылку на трекстер убрал, ведь была же по-моему?
Потому что я больше там не работаю.
а каким образом отследить именно те объекты которые находятся именно по пути следования
а не в стороне.
Это нетривиальная штука. Что является "по пути"? две дороги, которые разграничены рекой, это тоже "по пути"

Re: Слежение

Добавлено: 09 дек 2014, 17:48
0800009
Ну хотя б в границах сектора определенного

Re: Слежение

Добавлено: 09 дек 2014, 18:02
Mikhail_dev
Через distanceTo. Если расстояние между нашими точками меньше нашего радиуса, то мы в границах объекта

Re: Слежение

Добавлено: 09 дек 2014, 18:08
0800009
А как создать геозону?
Допустим имеем координаты двух точек
объект и юзер если построим равнобедренный треугольник
вершина юзер объект основание
еще прямая это направление движения если она пересекается с основанием треугольника
значит объект находиться на пути следования.
Теперь остается понять как вычислить точки пересечения))

Re: Слежение

Добавлено: 09 дек 2014, 18:09
0800009
Mikhail_dev писал(а):Через distanceTo. Если расстояние между нашими точками меньше нашего радиуса, то мы в границах объекта
Это понятно, но мне не нужны объекты те что в стороне или сзади.
Может как-то угол вычислить между напралением движения и прямой к объекту если меньше 30 градусов допустим то значит в секторе

Re: Слежение

Добавлено: 09 дек 2014, 18:26
0800009
Кажется понял
Берем текущую локацию и предыдущею
Вычисляем расстояние от них до объекта
Получает треугольник и уже можем вычислить угол между направлением движения и прямой к объекту и уже в зависимости от его величины принимать решение об уведомлении.
Правда на поворотах будут казусы
И точности не хватит скорей всего у жпс

Код: Выделить всё

 protected void onCreate(Bundle savedInstanceState) {