За последние 24 часа нас посетили 16639 программистов и 1677 роботов. Сейчас ищут 808 программистов ...

Карта города, и поиск объектов на ней

Тема в разделе "Прочие вопросы по PHP", создана пользователем Rulya, 28 сен 2009.

  1. Rulya

    Rulya Активный пользователь

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    Доброе время суток уважаемые гуру!
    Возникла следующая задача, реализовать поиск объектов на карте города например на такой http://planetolog.ru/maps/metro/almaty-metro-map.gif
    так вот надо дать возможность поиска объекта, ближайшего к введенному пользователем, пересечению улиц, как такое можно организовать, не прилеплять же к каждому объекту все перекрёстки
     
  2. kostyl

    kostyl Guest

    нужно иметь граф расстояний
     
  3. Rulya

    Rulya Активный пользователь

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    На самом деле немного подумав, я пришел к выводу, что можно организовать систему координат основанную на улицах, город то построен по принципу клеток, и каждый перекрёсток, будет иметь координаты х, у, теперь надо подумать как правильнее хранить в базе улицы , а именно как "поженить" пересекающиеся улицы, для корректного вывода второго выпадающего списка, после выбора первой улицы
     
  4. kostyl

    kostyl Guest

    ты наверно нормальных развязок не видел. Вот там такие клетки, как в во восьмиплоскостном измерении....
     
  5. Rulya

    Rulya Активный пользователь

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    да развязки то я видел, сейчас задача стоит для конкретного города, и отправные точки поиска именно перекрёстки
     
  6. Rulya

    Rulya Активный пользователь

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    так что теперь вопрос стоит только в том как организовать структуру хранения улиц, на ум приходят две таблицы одна с вертикльными улицами, вторая с горизонтальными. с полем в котором через запятую хранятся id пересекающие данную улицу выбрав вертикальную улицу, мы обращаемся к базе, и получаем список пересекающих её улиц, вроде так
     
  7. kostyl

    kostyl Guest

    Первая таблица хранит точки. Вторая улицы, третья связи. Если похитрить то можно отделаться двумя. Поверь опыту.
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Чем не подходит API Google Maps?

    Там, вроде бы, требуемые вещи есть.
     
  9. Rulya

    Rulya Активный пользователь

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0

    точки, это ты про объекты? C объектами то теперь просто буду просто хранить координаты перекрестка,
    теперь самое главное разораться со структурой хранения улиц, и связей между ними
     
  10. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    GPS-ом снимаем координаты объектов (точки). Задача поиска ближайшего в этом случае банальна. Советую юзать БД, которая умеет работать с геометрией, например Постгрес.
    Если нужно не просто ближайшее, а еще что-то вроде проезда - снимаем координаты улиц (вектора) и читаем умные книжки по поиску кратчайшего пути. Или можно что-то вроде графа построить - читаем про графы.
    Да, граф тут проще будет, наверно - будет сетка координат с перекрестками и объектами. Как хранить - читайте про графы, в сети этого навалом. Как считать - читайте алгоритм Дейкстры.
    Конечно, можно не GPS координаты, а просто на карту координатную сетку нанести.
     
  11. kostyl

    kostyl Guest

    да
     
  12. Rulya

    Rulya Активный пользователь

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    в общем вариантов достаточно, , будем думать
     
  13. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    Думаю что для карт лучше использовать postgresql (или подобную СУБД), ибо в данной СУБД имеются типы данных для хранения координат
    http://postgresql.ru.net/manual/datatype-geometric.html

    Наша местная карта http://sway.ru/, построена на этой СУБД
     
  14. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    У вас там ошибка, кстати

    sway.ru
    Content-Type: text/html; charset=UTF-8

    sway.ru/sway
    Content-Type: text/plain; charset=WINDOWS-1251

    В результате title в кракозярбрах.
     
  15. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    Это не у меня ошибка, это у них ошибка :)
     
  16. Rulya

    Rulya Активный пользователь

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    Хм, попробуем "покурить"
    Спасибо за подсказку