Главная страница Visual 2000 · Общий список статей
MapViewer — инструмент анализа картографической информацииАндрей Колесов, Ольга Павлова
© 1999, Андрей Колесов, Ольга Павлова
Авторский вариант. Статья была опубликована c незначительной
литературной правкой в журнале "КомпьютерПресс" № 10/99 (компакт-диск).
Загрузить все рисунки, прилагаемые
к статье (архивный файл — 222 Кб)
Хотя первая версия MapViewer...
Технология работы
Использование готовых карт и изображений
Картографическое представление числовой информации
Работа с электронными таблицами
Еще некоторые новшества версии 3.0
Пожелания
* Приложение
Хотя первая версия MapViewer...
Хотя MapViewer версии 1.0 появился еще в 1991 году (это был первый продукт Golden Software, созданный для работы в тогда еще не столь популярной Windows), данная программа пока еще не очень известна российским пользователям. И это при том, что уже спустя три года появилась версия 2.0, а в начале 1998 года — 32-разрядная версия 3.0 для Windows 9x и NT 4.0 (рис. 1). С одной стороны, удачно дополняя пакеты Surfer и Grapher, MapViewer может быть полезен их традиционным пользователям — ученым и инженерам. С другой стороны, решая собственный круг задач, данный пакет может эффективно применяться более широким кругом специалистов, в частности в области маркетинга.
Название MapViewer (просмотрщик карт) не очень точно отражает суть продукта. На самом деле это инструмент для анализа и визуализации географически распределенной числовой информации с помощью построения информативных тематических карт (Thematic Mapping Software). Используя его, консультанты в области ГИС-систем, ученые и картографы, руководители и аналитики предприятий могут проводить геологические, экологические и эпидемиологические исследования, выполнять анализ рынка, готовить материалы для презентаций и отчетов и пр. Например, если у вас имеется база данных по отдельным регионам мира или страны (численность населения, данные по сбору урожая и пр.) и необходимо представить эту информацию в виде карты с нанесенными на нее диаграммами, то MapViewer сделает это в считанные секунды (рис. 2).
Пакет включает два взаимосвязанных, но в значительной степени самостоятельных функциональных набора инструментов:
Карта в MapViewer строится в виде наложения нескольких слоев различных прозрачных или непрозрачных изображений векторного или растрового типов. При этом пользователь может гибко изменять последовательность наложения этих изображений (рис. 3), число которых в версии 3.0 практически неограничено.
Каждый слой, в свою очередь, формируется с помощью набора графических объектов: замкнутые области, линии, точки (с использованием разных символов), прямоугольники, квадраты, эллипсы и окружности, текстовые блоки, растровые изображения и пр. (рис. 4). С помощью встроенного инструментария пользователь может создавать эти объекты, задавая их различные свойства, например размеры, тип шрифта, цвет, текстуру и т.д. (рис. 5).
Особое внимание в пакете уделено средствам работы с произвольными областями, ограниченными замкнутыми линиями (Area). Для этого используются разнообразные функции их преобразования — слияние, разделение, масштабирование и пр. Состав данных средств в MapViewer 3.0 несколько расширен по сравнению с предыдущей версией. В частности, появилась новая функция Auto Trace для автоматического формирования границы вокруг выделенной группы областей. Вместе с тем, к сожалению, мы не обнаружили в новой версии таких полезных функций, как вычисление площадей замкнутых областей, вычисление длины ломаных линий и расстояний между точками (см. приложение — функции расчета).
В качестве замечания следует также отметить отсутствие возможности поиска объекта по его идентификатору (например, выделить нужную область можно, только зная ее расположение на карте). Кроме того, было бы полезно управлять режимом "видимый/невидимый" при выводе объектов определенного типа на уровне каждого слоя, а не карты в целом.
Важный элемент картографических задач — представление изображений в различных географических проекциях. В MapViewer имеется возможность работы с тремя вариантами проекций — Albers Equal Area, Miller Cylindrical, Latitude/Longitude, которые могут использоваться для преобразования сферических координат земного шара в прямоугольную декартову систему координат карты для более точного представления границ. Например, при работе с большими областями в целях минимизации их искажения пользователь должен преобразовывать координаты Latitude/Longitude в другой тип проекции. Такие преобразования особенно нужны для наложения изображений, представленных в разных проекциях.
Справедливости ради следует отметить, что в MapViewer процедура преобразования проекций в Albers Equal Area сделана не очень удобно — по умолчанию там всегда предлагаются параметры стандартной карты США (рис. 6). Получается, что необходимые для преобразования файла параметры (границы географических координат конкретной области) можно узнать, только специально загрузив карту в качестве изображения, а потом вводить их в окне преобразования вручную. Кроме того, можно было бы предоставить пользователю возможность автоматического пересчета значений Стандартных Параллелей для Albers Equal Area, которое выполняется по простой формуле (для северного полушария):
Северная Стандартная Параллель = Север - (Север - Юг)/6
Южная Стандартная Параллель = Юг + (Север - Юг)/6
где Север и Юг — значения северной и южной границ данной карты.
Пакет позволяет управлять режимом вывода всего изображения (разворачивать, сворачивать, масштабировать, поворачивать и пр.) или отдельных его элементов, наносить координатную сетку, использовать различные единицы измерения расстояний. Команда Map|Scale, реализованная в версии 3.0, позволяет перемасшабировать карту в направлениях X и Y одновременно.
Послойная компоновка изображений с использованием широкого набора графических объектов обеспечивает возможность получения самых разнообразных карт (рис. 7). Например, можно импортировать изображение карты изолиний распределения какого-либо параметра из пакета Surfer, наложить на него карту территории и получить карту распределения данного параметра на конкретной территории (рис. 8). Или вывести изображение врезки крупномасштабной карты на фоне мелкомасштабной (рис. 9 -11).
Использование готовых карт и изображений
Собственными форматами пакета являются файлы векторных границ (GSB) и комплексных изображений карт (GSM). Кроме того, карты исходных изображений можно импортировать из файлов разнообразных форматов: DXF, LGS, STD, BLN, CLP, PLT, TIF, PCX, WPG, JPG, DCX, BNA, LGO, OPT, DLG, BND, WMF, BMP, GIF и PCT. Этот список несколько увеличен по сравнению с версией 2.0. Однако наиболее существенными являются появившиеся в MapViewer 3.0 расширенные возможности экспорта результирующих данных: к форматам GSB и BNA добавлены DXF, CLP, BMP, PCX, WPG, PCT, WMF, BNA, CGM, TIF, TGA, GIF, JPG и DCX.
В состав пакета входит большой набор векторных карт в формате GSB, ориентированный, к сожалению, на пользователей в США: карты всей страны, ее крупнейших городов, отдельных штатов и округов, почтовых округов, автомагистралей и ряд других. Отдельными файлами представлены только Канада, Мексика и Россия, границы остальных страны — на картах материков. Кроме того, на Web-узле фирмы Golden Software содержатся дополнительные карты, которые можно скачать бесплатно.
В качестве претензии к пакету следует отметить отсутствие списка с хотя бы кратким описанием файлов границ, включенных в состав пакета; пользователь должен сам догадываться о назначении этих файлов и их параметров. Здесь довольно ярко видна ориентация пакета на внутренний американский рынок - разработчики пакета уверены, что сокращения названий файлов типа Ca (Калифорния) и Az (Аризона) известны всем.
Картографическое представление числовой информации
MapViewer создает тематические карты, связывая данные, хранящиеся в электронных таблицах, с областями и точками на карте. При этом пакет предлагает несколько стандартных вариантов визуализации числовой информации:
Возможность наложения разных типов карт позволяет получать самые различные варианты представления необходимой информации. При этом можно реализовать такие комбинации карт, с помощью которых будут видны совсем не очевидные результаты.
Работа с электронными таблицами
Для ввода и преобразования числовой информации, ее сортировки и расчета статистических характеристик в пакете имеется полнофункциональная электронная таблица. Данные могут храниться (ввод-вывод) в файлах форматов XLS, SLK, CSV, TXT, DAT, BNA и BLN. Кроме того, можно импортировать информацию из форматов WK1, WK3, WK4, WKS, WRK, WR1, DBF, MDB и DB. В состав пакета входит несколько файлов со статистическими данными (в основном связанными с народонаселением) по странам мира и штатам США.
В работе с электронными таблицами в MapViewer 3.0 также появились некоторые нововведения, в частности:
Еще некоторые новшества версии 3.0
Команда File|Preferences позволяет устанавливать параметры пакета из SET-файлов. Пользователь может запоминать любое число вариантов описаний параметров пакета. Еще одна новая команда — оцифровка карт прямо с экрана. С ее помощью можно снимать координаты точек, создавать на их основе новые файлы границ и запоминать полученные данные. Дополнительные возможности появились и при работе с картами:
В целом пакет MapViewer 3.0 производит очень хорошее впечатление, особенно если учесть его достаточно скромные требования к ресурсам компьютера (16 Мб оперативной и 20 Мб дисковой памяти) и цену для подобного класса программных продуктов (250 долл.). Документация, а также удобная встроенная справочная система содержат полную информацию о работе с пакетом и примеры решения типовых задач. В то же время нужно отметить, что возможности комбинаций изображений с помощью различных приемов очень велики и для успеха в достижении нетривиальной цели пользователю потребуется призвать на помощь воображение и смекалку.
Приятно отметить, что разработчики включили в новую версию многие функции, которых явно не хватало в предыдущих вариантах пакета. Тем не менее представляется, что пакет мог бы усилить свою функциональность, причем без значительных усилий на разработку и привлечение сложных математических алгоритмов.
В Совете 144 рубрики "Советы тем, кто программирует на Visual Basic" ("КомпьютерПресс" № 9'98, с. 160-164) приводен пример друх простых процедур для вычисления площади многоугольника произвольной формы и проверки местонахождения точки — вне и внутри замкнутой области.