+7 (812) 494-9090
Обратная связьEnglish
Главная → О компании → Наши клиенты → Cassel Aero → Создание системы отображения на экране географических карт, хранимых в разных форматах для Cassel Aero
Версия для печати

Создание системы отображения на экране географических карт, хранимых в разных форматах для Cassel Aero

Заказчик: Cassel Aero

Отрасль: Электроника и аппаратное обеспечение


Специалистами АстроСофт был разработан модуль разбора векторных карт. Параллельно был разработан модуль их генерации для того, чтобы производить тестирование правильности отображения сложных случаев, а также устойчивости модуля к заведомо ошибочным вариантам.



Ситуация

Заказчик производит удобрение лесов за 3 года до их порубки, что даёт больший объём собранной древесины. Для этого используется вертолёт, который перевозит чаны вместимостью 725 килограммов селитры каждый. Один чан опорожняется за 35 секунд. Пока вертолёт распыляет селитру, наземная бригада заполняет второй чан. Затем пилот производит обмен чанов и летит в следующий рейс. При распылении материала важно удобрить каждый квадратный метр территории, но не допускать перерасход материала, удобряя один и тот же участок несколько раз. Также следует прекращать распыление при проходе над карантинными зонами (дорогами, водоёмами, жилыми зонами, местами, где отсутствуют деревья).

Вертолёт у заправочной платформы
Рис. 1. Вертолёт у заправочной платформы

Деревообрабатывающие компании передают заказчику карты требуемых мест в векторном формате Gis Shape. Именно на них отображены удобряемые участки. Кроме того, имеются карты в растровом формате MrSid, по которым наземная группа поддержки осуществляет навигацию при выдвижении в район проведения работ.

Заказчик поставил задачу отображать карты в обоих форматах с частотой не менее 10 кадров в секунду и прокладывать треки для оптимального передвижения вертолёта. Также требовалось формировать графический протокол работы в векторном формате SHP.

Решение

Поисковые системы начала 2000-х годов не могли давать такие же точные данные, как современные. Специалистами АстроСофт было найдено описание формата shp, а заказчик предоставил программу для просмотра данных файлов. Пользуясь описанием, был разработан модуль разбора векторных карт. Параллельно был разработан модуль их генерации для того, чтобы производить тестирование правильности отображения сложных случаев, а также устойчивости модуля к заведомо ошибочным вариантам.

Для отображения карт была выбрана библиотека DirectDraw (в 2010 году вместо неё стала использоваться библиотека DirectX).

Для формата MrSid не было найдено описания, но обнаружена библиотека, при помощи которой можно производить отображение. Эта библиотека подключена к разрабатываемой программе.

Во время тестовых полётов выяснилось, что все принятые решения об автомасштабировании карт идут вразрез с привычками пилотов. Размер области, в которой проводилось распыление удобрений, брался так, чтобы она помещалась по высоте на экране. Ширина при этом масштабировалась пропорционально. Если символ вертолёта был в центре (так было задумано разработчиками), то расстояние от вертолёта до верхней и нижней границ совпадало и масштабирование области было пропорциональным. Проблема возникала, если символ вертолёта располагался внизу экрана - а именно в таком виде экран выглядел привычно для пилотов. В этом случае до входа в область использовалась вся доступная площадь экрана, но в момент входа масштаб искажался и область сокращалась до точки на карте за счёт того, что расстояние от вертолёта до нижней границы было мало, следовательно, уменьшалась нижняя часть области до микроскопических размеров. Это было неприемлемо, поэтому совместно с пилотами был оперативно разработан алгоритм временного отключения автомасштабирования во время входа в область работ. Он оказался так удачен, что используется уже 11 лет.

Результат

Модуль декодирования Shape-карт используется 11 лет без особых изменений. Модуль отображения использовался до 2010 года. Причиной перехода от DirectDraw к DirectX стала медленная работа первой из указанных библиотек на некоторых современных видеоадаптерах в среде Win64.

Используемые технологии

По требованию заказчика программа разрабатывалась в среде Borland Delphi 6. Впоследствии она была последовательно перенесена в среду Delphi 7 и Delphi 2007.

Использовалась библиотека DirectDraw, впоследствии заменённая на DirectX.

Для отображения карт в формате MrSid использовалась сторонняя библиотека.


Скачать