Передовые решения в области
картографии и навигации
Несомненно, одним из наиболее замечательных изобретений человечества является географическая карта. Вплоть до начала нынешнего столетия путешественники везли с собой рулоны бумажных карт или толстые атласы. Еще не так давно на дорогах всего мира можно было встретить стоящий у обочины автомобиль с разложенной на капоте картой, над которой склонились водитель и все пассажиры.
Однако в наши дни произошел качественный скачок в картографии и навигации. Развитие информационных технологий и программного обеспечения дало возможность переводить бумажные карты в цифровую форму, хранить их, записывать на компактные носители и передавать по линиям связи.
Появление систем глобального позиционирования, таких как GPS и ГЛОНАСС, и возможность использования их для определения местоположения с высокой точностью привело к развитию систем навигации и цифровых карт.
Теперь уже сложно будет найти водителя или путешественника, использующего бумажную карту. На смену им пришли навигаторы и электронные online-карты.
Несмотря на широкое распространение и невысокую стоимость, современные навигационные устройства являются высокотехнологичными не только в плане оборудования (GPS-приемник, цветной экран с высоким разрешением), но, в основном, в плане программного обеспечения и цифровых карт, входящих в него.
Какие требования предъявляет к навигатору (автомобильному или пешеходному) современный пользователь?
Навигационное устройство должно уметь:
- быстро и точно рисовать карту
- быстро и точно определять положение пользователя
- находить нужный объект по имени / адресу / категории
- прокладывать маршруты с учетом:
- различных критериев оптимальности (самый быстрый/самый короткий маршрут)
- типа транспорта – легковая машина, грузовик, велосипед
- ограничений на движение, как обусловленными ПДД так и заданными пользователем (пример такого ограничения - избегать платных дорог)
- текущей загруженности дорог
- провести пользователя по построенному маршруту с использованием голосовых подсказок
- быстро перестроить маршрут в случае ошибки пользователя или изменения дорожной ситуации
Кроме того, все это желательно уметь делать локально на устройстве (без подключения к сети Интернет), а значит, карта должна быть компактной и занимать мало места. И еще все должно работать быстро даже на слабых устройствах.
Таким образом, создание навигационной программы разбивается на несколько взаимосвязанных задач:
- подготовка картографических данных
- создание библиотек, отвечающих за обработку этих данных
- оптимизация поиска объектов на карте по различным критериям
- разработка алгоритмов для построения оптимального маршрута
- определение положения пользователя и его привязка к карте
- реализация голосового и визуального сопровождения пользователя по маршруту
- и многое другое
И каждая из этих задач требует наилучшего решения, так как если хоть одна из вышеперечисленных компонент не будет работать наилучшим образом, то вся навигационная система будет вызывать у пользователя только негативную реакцию.