Читатели, интересующиеся комплексными ГИС-технологиями от CSoft, не понаслышке знают и об инструментальной ГИС CS MapDrive. Первая публикация, посвященная выходу промышленной версии, появилась год назад. С тех пор, судя по активности посетителей сайта www.mapdrive.ru, продукт вызывает интерес, но всё еще явно уступает в распространенности традиционным бестселлерам на рынке инструментальных ГИС. С нашей точки зрения, мы вправе рассчитывать на большее, и вот достойный повод: представляем новую версию CS MapDrive 1.3.5 со значительно расширенным функционалом.

Зачем он был нужен?

А действительно… Инструментальные ГИС часто отождествляют с ГИС вообще — как ксероксом называют любой копировальный аппарат. Их много, и стандартных, от солидных, «брендовых» производителей, и «рукотворных», от огромного множества групп российских разработчиков, пошедших «другим путем» либо из любопытства, либо от незнания конъюнктуры, либо по каким-то своим потаенным причинам. Казалось бы — зачем еще одна?

А ответ весьма прост. Мы не поставляем готовые «коробки», а строим комплексное ГИС-решение. Строится оно не по признаку верности «флагу» того или иного разработчика, предложившего нам выгодное дилерство, а исходя из оптимальности решения в целом для клиента. Критерии же оптимальности давно определил сам рынок.

Первый и главный: «масштабируемость». Большая ГИС всё чаще стартует с небольших проектов: клиенту надо убедиться, что он сделал правильно, доверившись нам; у него иногда нет достаточного бюджета на «большой прыжок», у него почти всегда нет того объема данных, который появится вскоре после успешного внедрения самой ГИС-технологии. Все эти обстоятельства часто заставляют начинать с «пилотных» проектов. А ориентация на традиционный, файловый способ хранения информации — это верный способ в самом ближайшем будущем разочаровать клиента или резким замедлением доступа к данным при увеличении их объема, или непомерно большими ценами и проблемами внедрения с использованием сложных инструментов, оптимизирующих доступ к большим файловым хранилищам.

Значит, всё нужно положить в одну СУБД, в которой держать и пространственные, и описательные данные, разрешать средствами этой системы все коллизии доступа и справляться с огромными потоками данных. Сделав этот выбор, не придется выбирать СУБД: только Oracle имеет собственный механизм хранения пространственных данных и разграничивает доступ к ним своими штатными средствами. Собственно, этот вывод сделали почти все производители инструментальных ГИС, только подошли к решению по-разному.

Компания ESRI со своими флагманскими продуктами ArcView и ArcInfo, с моей точки зрения, двинулась в Oracle несколько преждевременно. То есть слава Oracle как лучшей СУБД, надежной и быстрой, уже катилась по миру, а специального механизма хранения пространственных данных Spatial Cartridge, сделавшего Oracle заманчивой ГИС-мечтой, еще не случилось. И ESRI пришлось разрабатывать собственный механизм хранения пространственных данных в Oracle, так называемый SDE, через который данные и поступают в хранилище. Это действительно работает, но исключает использование таких важных преимуществ, как исполнение сложных ресурсоемких пространственных запросов на стороне сервера, применение единого подхода при разграничении доступа к любым данным (об администраторах Oracle и так ходят легенды, а тут придется искать двух разных администраторов…). При этом свобода выбора будущего развития системы практически отсутствует, ведь, использовав SDE, пользователь заранее ограничен только рамками сообщества ESRI.

Другие важные игроки ГИС-рынка взяли паузу… и не зря. Вскоре после появления механизма Spatial Cartridge о его поддержке заявили Intergraph, Autodesk и MapInfo. Но заявили по-разному.

Intergraph просто создал «с чистого листа» новый продукт GeoMedia, ориентированный только на использование СУБД и вообще начисто лишенный собственного файлового формата.

Autodesk и MapInfo пошли по пути расширения файлового подхода, существовавшего соответственно в Autodesk Map и MapInfo.

Организационно это привело к подписанию тремя перечисленными компаниями соглашения OpenGIS о едином стандарте хранения пространственных данных на основе Oracle Spatial Cartridge — появилась реальная угроза многолетнему лидерству ESRI…

Фактически ситуация такова. Любое из упомянутых программных приложений может устанавливать прямое соединение с Oracle Spatial и создавать/редактировать пространственные данные. Но есть нюансы… Только при использовании подхода Intergraph вы можете просто забыть о кнопке Save — ведь вся ваша работа происходит непосредственно в СУБД, а ее результаты немедленно становятся доступны всем остальным пользователям, «кормящимся» из того же хранилища на основе Oracle.

А вот Autodesk и MapInfo незаметно конвертируют данные в… те же внутренние файловые форматы и фактически работают с данными локально, сохраняя их в СУБД либо по завершении сессии, либо специальной командой. Это не смертельно, но неприятно: нужно отслеживать и возможность одновременного редактирования одного и того же объекта в перекрывающихся областях, и выбор «правильного» его варианта.

По понятным причинам отдав предпочтение подходу от Intergraph, мы ощутили желание кое-что изменить, подогнать инструмент «по руке» — в результате на ядре от Intergraph и был разработан CS MapDrive.

О совместимости с коллегами

Из всего вышесказанного понятно, что Intergraph GeoMedia может весьма удобно использоваться совместно с CS MapDrive в рамках одного внедренческого проекта. Технология доступа к данным, хранящимся в Oracle, остается одной и той же, поэтому поклонники GeoMedia могут просто использовать преимущества CS MapDrive (о них — далее), не отступая от отработанной технологии.

Пользователи MapInfo и Autodesk Map также легко могут расширить арсенал своих возможностей, закупив дополнительные рабочие места CS MapDrive. Но при этом не следует забывать, что OpenGIS — соглашение об «общем знаменателе», коим, естественно, является Oracle Spatial Cartridge. В нем, как в пещерах Али-Бабы, надежно хранятся сокровища ГИС-проекта — пространственные и описательные данные. А про «Сезам, откройся» знает только таинственный администратор…

Но вот какая штука: войдя в огромные пещеры, неплохо бы знать (для экономии времени), где что лежит, а не блуждать беспорядочно по бесконечным коридорам. Ведь снаружи, перед входом, ждут, нетерпеливо притопывая, пользователи. Реестр содержимого пещер от Oracle Spatial Cartridge — это так называемые метаданные. Используя их, посвященный пользователь сразу знает, где лежит, например, класс пространственных объектов, описывающих трубы системы водоснабжения, из каких пространственных примитивов он состоит и т.д. Вот унификация метаданных участников OpenGIS Consortium — дело недалекого (надеюсь!) будущего. Пока что метаданные идентичны по структуре у Intergraph GeoMedia и CS MapDrive, а MapInfo и Autodesk Map творят их каждый по-своему. Это может показаться проблемой для начинающего пользователя общих хранилищ Oracle, но, как доказал недавний опыт, всё успешно решается раз и навсегда на этапе проектирования системы, а далее принцип «общего знаменателя» вновь доказывает свою полезность.

Если кто-то из участников ГИС-проекта всё же хранит данные в файловых форматах, то и это не проблема. Ко всем известным форматам (SHP, MIF/MID, DXF, DGN) CS MapDrive осуществляет доступ напрямую. При этом в рамках одного проекта могут легко сосуществовать различные источники данных — и файловые, и содержащиеся в едином хранилище. Например, некий удаленный пользователь давно и традиционно ведет на ArView информационный слой рекламных щитов. Объем информации невелик, многопользовательского доступа на редактирование этого слоя не требуется — он осуществляет мониторинг этого слоя самостоятельно. В таком случае пользователи CS MapDrive просто имеют доступ на чтение к соответствующему SHP-файлу. Если же в будущем потребуется обеспечить реальный многопользовательский доступ, то информация из файлового источника легко конвертируется в хранилище на основе СУБД Oracle штатными средствами инструментальной ГИС CS MapDrive.

Кто-то из поставщиков данных использует СУБД как хранилище, но по каким-то причинам подход OpenGIS — это не его жизненный путь? Тоже не беда. Хранилища на основе SQL Server и даже MS Access, используемые Intergraph, по понятным причинам поддерживаются напрямую и могут использоваться как на чтение, так и на запись. Данные же, хранящиеся в SDE специальными средствами ESRI, могут конвертироваться в Oracle Spatial Cartridge через тот же SHP-файл.

И наконец, — хоть это и трудно обещать для всех клиентов, — но во время недавнего проекта в Подмосковье мы «научили» CS MapDrive читать нестандартные файловые данные: это вполне решаемо, если заранее известен формат хранения.

Обязательная программа

Право называться инструментальной ГИС нужно подтверждать наличием определенного «джентльменского набора» средств для создания, редактирования и анализа пространственных данных.

Разумеется, в CS MapDrive есть и «черчение» по объектным привязкам (к концу объекта, к середине, к ближайшей вершине), и прямой ввод координат или параметров операции редактирования с клавиатуры, и операции добавления/удаления/перемещения вершин, и группировка объектов в коллекции, и многое-многое другое.

Предмет нашей особой гордости — это продуманный интерфейс, который мы продолжаем совершенствовать, прислушиваясь к мнению пользователей. Ведь когда речь идет о каждодневной обработке сотен, а то и тысяч объектов, каждый лишний «клик» мыши приводит к дополнительным затратам.

В качестве стандартных средств обработки пространственных данных CS MapDrive (которые далеко не всегда считаются «обязательными» у разработчиков других инструментальных ГИС) с удовольствием перечисляем и возможную привязку к растровым объектам (весьма полезно при оцифровке), и анализ замкнутых контуров с автоматическим формированием полигональных объектов (никогда неизвестно, откуда и в каком формате мы можем получить данные, например, по землеотводам).

Естественно, есть и инструменты создания и исполнения именованных критериальных запросов, в том числе по пространственному критерию («поиск труб водоснабжения, находящихся ближе чем на два метра к кабелям высокого напряжения»). И тут вновь напоминает о себе OpenGIS: уникальная возможность не исполнять сложный запрос на рабочей станции, а просто передать его исполнение мощному серверу доступна только членам упомянутого консорциума. А это снижение минимальных аппаратных требований к рабочей станции, и опять всё те же сэкономленные минуты и… деньги.

Призы и бонусы

Как уже сказано, идея разработки CS MapDrive родилась вследствие желания дать пользователям больше, чем предоставляют известные и перечисленные выше инструментальные ГИС. Пришла пора сказать, о чем же шла речь.

Предмет особой гордости — использование справочников данных. Конечно, в основном с описательными данными следует работать никак не в инструментальной ГИС, для этого и придуманы системы публикации данных с их «тонкими клиентами» (см. статью «Utility Guide: общий подход…» в CADmaster № 4/2004).

Но всё же иногда часть данных просто необходимо ввести прямо на этапе оцифровки. Например, при обработке исполнительной съемки некоторые данные, которые содержатся прямо на кальке или в исходном файле, лучше ввести немедленно (диаметр и материал трубы, фамилия геодезиста). В противном случае оператору «тонкого клиента» придется потом снова разыскивать первоисточник, что опять же приведет к потерям времени.

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

Для этого CS MapDrive оснащен так называемым Редактором отношений. Оператор может указать, что при вводе, например, названия улицы, в окне данных вместо ячейки для ввода будет показываться набор значений из таблицы справочника. Справочники могут быть и локальными, и централизованно содержащимися на сервере. Все взаимосвязи, индексные поля и поля замены легко устанавливаются оператором. Количество справочников в одном окне данных не ограничено, во всех запросах в дальнейшем используются именно значения справочных таблиц. Причем каждый оператор может создавать свою систему справочников и связей, соответствующую особенностям его технологического процесса: эта информация содержится только в индивидуальном файле проекта; зато информация, указанная с помощью справочников, доступна всем пользователям хранилища.

Еще одной уникальной особенностью CS MapDrive является то, что справочники доступны не только в сводном окне данных, но и в индивидуальном окне свойств выбранного объекта: мы опять экономим «клики»!

Окно данных, несомненно, сильная сторона CS MapDrive. Помимо традиционных сортировок по столбцам, пользователю предоставляется возможность фильтрации данных по значению или критерию, причем фильтры могут применяться каскадно, друг за другом, к тому же являются именованными элементами проекта и доступны при последующих обращениях к окну данных, в том числе и в новых сеансах работы.

Возможности использования окна данных в CS MapDrive еще больше расширяются за счет использования операций поиска и критериальной замены данных, которые к тому же предоставляют уникальную возможность использовать регулярные выражения в качестве способа задания образца для сопоставления текстовой информации — очень мощный инструмент для опытного пользователя, знакомого, например, с Perl.

Очень полезна возможность установки пространственных фильтров на все или некоторые классы пространственных объектов, которые полностью или частично содержатся в заданной области (причем область может указываться прямым выбором, а может совпадать с границами какого-то уже существующего объекта).

«Зачем это?» — спросите вы недоуменно. А попробуйте по запросу мэра быстро отобрать все инженерные коммуникации, относящиеся только к Центральному району… А представьте себе, что в качестве объекта, определяющего границы пространственного фильтра, может использоваться такой автоматически создаваемый объект, как буферные зоны вокруг другого класса… Нравится? Вот и наши пользователи оценили!

Что же за этим последует?

К лету 2005 года запланирован выход CS MapDrive 2.0, в котором, помимо всего представленного многообразия, совершенно точно будут и совсем новые возможности.

Во-первых, долгожданный модуль обработки растра, хорошо знакомый по триумфальной серии Raster Arts. То есть возможности калибровки растра по ортогональной и произвольной сетке, «интеллектуальная» трассировка — то, к чему с удовольствием привыкли пользователи Spotlight Pro, — теперь будет доступно и из среды CS MapDrive.

Во-вторых, встроенный генератор печатных отчетных форм CrystalReports — признанный мировой лидер в этой области.

В-третьих, API-интерфейс, который даст возможность создавать свои команды и сценарии с использованием стандартных языков программирования.

Сроки выхода новой версии еще уточняются, но раз вы читаете эту статью, то вам доступна специальная программа, по которой все, кто приобрел в 2005 году CS MapDrive 1.3.5, получают возможность бесплатного обмена на версию 2.0!

Перед тем как попрощаться

Инструментальная ГИС CS MapDrive 1.3.5, возможности которой представлены в этой статье, по нашему мнению, очень полезна широкому кругу разработчиков и пользователей ГИС-систем. Но всё же ее использование наиболее эффективно в качестве компонента комплексного решения.

Инструментальная ГИС представляет собой при этом инструмент создания и редактирования пространственной информации, которая хранится совместно с описательными данными в едином хранилище на основе Oracle. Обработка и анализ информации для широкого круга пользователей наиболее эффективно реализуется за счет создания пользовательских приложений на основе системы публикации данных Autodesk MapGuide. «Удельный вес» различных компонентов комплексного решения непредсказуем — всё зависит от специфики запросов клиента, этапности программы внедрения, приоритетности решения отдельных задач в рамках единого подхода.

Поэтому внедрение ГИС — это всё же никак не набор готовых программ. Это системное решение проблем клиента, выявленных в результате внимательного обследования.

А CSoft — именно та консалтинговая компания, которая готова к внедрению таких комплексных проектов совместно с местными партнерами и персоналом заказчика.