Доброе время суток уважаемые гуру! Возникла следующая задача, реализовать поиск объектов на карте города например на такой http://planetolog.ru/maps/metro/almaty-metro-map.gif так вот надо дать возможность поиска объекта, ближайшего к введенному пользователем, пересечению улиц, как такое можно организовать, не прилеплять же к каждому объекту все перекрёстки
На самом деле немного подумав, я пришел к выводу, что можно организовать систему координат основанную на улицах, город то построен по принципу клеток, и каждый перекрёсток, будет иметь координаты х, у, теперь надо подумать как правильнее хранить в базе улицы , а именно как "поженить" пересекающиеся улицы, для корректного вывода второго выпадающего списка, после выбора первой улицы
ты наверно нормальных развязок не видел. Вот там такие клетки, как в во восьмиплоскостном измерении....
да развязки то я видел, сейчас задача стоит для конкретного города, и отправные точки поиска именно перекрёстки
так что теперь вопрос стоит только в том как организовать структуру хранения улиц, на ум приходят две таблицы одна с вертикльными улицами, вторая с горизонтальными. с полем в котором через запятую хранятся id пересекающие данную улицу выбрав вертикальную улицу, мы обращаемся к базе, и получаем список пересекающих её улиц, вроде так
Первая таблица хранит точки. Вторая улицы, третья связи. Если похитрить то можно отделаться двумя. Поверь опыту.
точки, это ты про объекты? C объектами то теперь просто буду просто хранить координаты перекрестка, теперь самое главное разораться со структурой хранения улиц, и связей между ними
GPS-ом снимаем координаты объектов (точки). Задача поиска ближайшего в этом случае банальна. Советую юзать БД, которая умеет работать с геометрией, например Постгрес. Если нужно не просто ближайшее, а еще что-то вроде проезда - снимаем координаты улиц (вектора) и читаем умные книжки по поиску кратчайшего пути. Или можно что-то вроде графа построить - читаем про графы. Да, граф тут проще будет, наверно - будет сетка координат с перекрестками и объектами. Как хранить - читайте про графы, в сети этого навалом. Как считать - читайте алгоритм Дейкстры. Конечно, можно не GPS координаты, а просто на карту координатную сетку нанести.
Думаю что для карт лучше использовать postgresql (или подобную СУБД), ибо в данной СУБД имеются типы данных для хранения координат http://postgresql.ru.net/manual/datatype-geometric.html Наша местная карта http://sway.ru/, построена на этой СУБД
У вас там ошибка, кстати sway.ru Content-Type: text/html; charset=UTF-8 sway.ru/sway Content-Type: text/plain; charset=WINDOWS-1251 В результате title в кракозярбрах.