Валерий Махорин
Валерий МахоринНа сайте 17 лет (заходил 13 лет 4 месяца 4 дня назад)
0
148
|
Рейтинг
148
|
Редактирование бюджета
20 Апреля 2011
По договоренности
Требуется создать поисковую программу, которая будет находить совпадение маршрутов попутчиков (пассажира и водителя). Движения пассажира будут в виде точек – Широты и Долготы посадки и высадки. Например
46.46117, 30.70489 (посадка пассажира в начале движения) 46.48109, 30.73991 (высадка пассажира в конце движения) маршрут движения водителя будет записан в виде промежуточных точек движения в таком виде: 46.46117, 30.70489 (начало движения водителя) 46.46093, 30.71107 46.46090, 30.71571 46.46394, 30.72098 46.46740, 30.72656 46.46909, 30.73038 46.47328, 30.73086 46.47736, 30.73163 46.47695, 30.73772 46.48115, 30.73849 46.48109, 30.73991 (конечная точка водителя) Необходимо, чтобы программа находила сходство маршрутов и, в случае совпасения вариантов, выдавала на сайт сохранённый в базе айфрейм ранее записанный пассажиром или водителем с карт Google Maps в таком виде: <iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="maps.google.ru/maps?f=q&s... /><small><a href="maps.google.ru/maps?f=q&s..." style="color:#0000FF;text-align:left"> Просмотреть увеличенную карту</a></small>. Нюансы: 1) пассажир может подсесть к водителю не обязательно в начальной-конечной точках. Соответсвие может найтись и по трассе (в промежуточных точках). 2) необходимо учитывать "шаговой доступности" для посадки-высадки. Разница в один квартал (примерно) составляет разницу в 0,006 Например есть пара ШиД 46.46085, 30.70487 желательно включить в охват поиска квадрат в котором эта ШиД будет в середине. То есть в любую сторону нужно будет пройти один квартал что бы сесть в машину или заехать за пассажиром. Может попробовать создать алгоритм поиска, чтоб например, если пользователь вводит свою начальную точку в виде 46.46085, 30.70487 то точку 46.46085 рассматривать как диапазон между (46.46085-0.006) и (46.46085+0.006) аналогично с долготой. Тогда точная цифра будет "в коробочке" и в выдаче будет больше вариантов (см приложение-рисунок). 3) Необходимо чтоб учитывалось направление маршрута (очередность цифр в столбике будет постоянным – начало движения всегда идёт в верхней цифрой и окончание нижней). На совпадения будут накладываться следующие ограничения: 1) в поиске будут участвовать только связка водитель + пассажир (не водитель +водитель или пассажир+пассажир) 2) времени начала движения (поиск по умолчанию +- 15 минут от старта). Если, в поиске по умолчанию не найдётся подходящей пары, то выскочит менюшка выбора в которой при помощи ниспадающего окна можно будет увеличивать интервал поиска. а) точное +- 30 минут в) точное +-сутки (для разовых дальних поездок). 3) поиск среди регулярных или разовых поездок. - Регулярные, те , которые будут помечаться галочками по дням недели а) рабочие минус выходные б) выходные минус рабочие с) рабочие плюс выходные дни |