Microsoft MapPoint 2002
Использование внешних источников данных
Создание карт с агрегатными данными
Создание решений на основе MapPoint
Настоящая статья посвящена новому продукту Microsoft из семейства Microsoft Office — Microsoft MapPoint 2002 (MapPoint Office Data Mapping and Visualization Solution). Этот продукт поставляется отдельно и, на наш взгляд, представляет немалый интерес как для конечных пользователей, так и для разработчиков.
ледует отметить, что название MapPoint применяется и для самого продукта Microsoft MapPoint Office Data Mapping and Visualization Solution, и для технологии, которая лежит в основе семейства продуктов Microsoft, предназначенных для работы с картографической информацией. Помимо собственно Microsoft MapPoint 2002 (существующего в стандартной редакции MapPoint North America, содержащей карты США, и в европейской редакции MapPoint Europe, содержащей карты Европы, в том числе и европейской части России), в состав этого семейства входят приложения Streets & Trips 2002 (средство, предназначенное для отображения подробных карт США и Канады, для определения оптимальных автомобильных маршрутов, поиска различных объектов, например ресторанов и гостиниц), AutoRoute 2002 (аналогичное средство для европейских стран), Pocket Streets 2002 (аналогичное средство для карманных компьютеров, поддерживающее GPS-навигацию). Эта же технология была использована при создании сайта Expedia (http://www.expedia.com/) и Encarta World Atlas (http://encarta.msn.com/maps/mapview.asp). Для создания решений на основе указанной технологии служит Microsoft MapPoint Control 9.0 — элемент управления ActiveX, предназначенный для отображения карт в приложениях. Кроме того, сам MapPoint 2002, как и другие продукты семейства Microsoft Office, является сервером автоматизации, что позволяет создавать приложения на его основе.
Ниже мы рассмотрим основные особенности MapPoint 2002 European Edition.
Планирование маршрутов
целом MapPoint предназначен для создания карт и отображения географических данных. Подобно другим приложениям Microsoft Office, MapPoint хранит свои документы в файлах — они имеют расширение *.PTM. Созданные карты можно выводить на принтер, сохранять в виде Web-страниц, посылать по электронной почте в виде вложений или графических изображений.
Стандартный набор функций, которые обычно реализованы в приложениях такого класса (в Streets & Trips 2002, в AutoRoute 2002 и в самом MapPoint 2002),— поиск места на карте, определение территории, определение кратчайшего маршрута между двумя точками, поиск необходимых объектов (отелей, ресторанов, аэропортов, железнодорожных станций).
На рис. 1 представлен спланированный с помощью MapPoint маршрут из Тулы в Рязань с остановкой на 1 час в Кашире, с его подробным описанием, с оценкой времени в пути на разных участках маршрута и стоимостью затраченного бензина (с учетом введенных пользователем значений цен), а также показаны найденные объекты.
Кроме того (что еще более интересно), MapPoint 2002 содержит инструменты, позволяющие загрузить информацию из базы данных в документ MapPoint и отобразить ее на карте (и при необходимости сравнить эти данные с демографическими данными, которые входят в состав MapPoint). Ниже мы представим эти возможности более подробно.
Использование внешних источников данных
сли вы планируете применять MapPoint для работы с внешними данными (это может быть, например, таблица Excel, база данных Access, любой OLEDB-источник данных — в этом случае следует сослаться на UDL-файл1, база контактов Outlook), учитывать возможность такого применения необходимо уже при проектировании базы данных. В частности, стоит подумать о хранении разных частей адреса в разных полях. Предпочтительные названия полей — Name, Address, City, State, Region, ZIP и Oblast. При загрузке данных в MapPoint производится анализ полей и делается попытка сопоставить их со стандартными полями — Name, Name 2, Address 1, Address 2, Address 3, City, County, State, Country/Region, Oblast, ZIP Code, Latitude, Longitude, Territory. Однако при необходимости вы можете вручную указать соответствие полей импортируемого источника данных стандартным полям MapPoint.
В MapPoint 2002 можно описывать такой объект, как территория (Territory). Эти объекты могут соответствовать административно-территориальному делению или не совпадать с ним.
Воспользуемся объектами типа Territory для отображения русских названий областей России. Для этого создадим список соответствий русских и английских названий в таблице Excel: .
Описание территорий производится с помощью пункта меню Data | Territories, после выбора которого следует описать источник данных, а также соответствия между его полями и полями MapPoint. Полученные территории изображены на рис. 2.
Отметим, что территория может быть и более сложным образованием (например, состоять из нескольких областей или даже из нескольких точек на карте — в этом случае они будут помечены значками в виде канцелярских кнопок).
Использовать внешние источники данных можно двумя способами. Во-первых, данные можно просто импортировать — тогда в документе MapPoint будет храниться их копия. Во-вторых, можно связать внешние данные с MapPoint — и в этом случае в документе MapPoint будут храниться только ссылки на данные, а все изменения, вносимые в них, будут отображаться на карте.
Файлом, содержащим карту со ссылкой на источник данных, можно воспользоваться и не имея постоянного доступа к этим данным. Так, можно скопировать карту на переносной компьютер, пользоваться ею, а через какое-то время подключиться к корпоративной сети и обновить ее.
Для загрузки данных в MapPoint применяется мастер Data Mapping Wizard (в этом случае на основе источника данных создается новая карта) либо мастер Import Data Wizard или Link Data Wizard (в этом случае данные добавляются к имеющейся карте). Кроме того, если данные хранятся в Microsoft Excel, можно прямо из него обратиться к MapPoint и добавить карту на рабочий лист с помощью пункта меню Insert | MapPoint Europe Map (этот пункт меню добавляется к Excel при установке MapPoint). Выполним такой пример, воспользовавшись следующими данными:
Затем ответим на вопросы мастера Data Link Wizard, в частности свяжем между собой поля таблицы Excel и поля MapPoint (рис. 3).
Далее выбираем тип графика (в данном случае нас интересуют диаграммы типа Column Chart), отмечаем, что именно мы хотим отобразить в качестве серий, и получаем карту с диаграммами, изображающими динамику продаж по областям (рис. 4).
Помимо отображения данных «как есть», MapPoint позволяет произвести вычисление и некоторых статистических данных. Об этом мы поговорим в следующем разделе.
Создание карт с агрегатными данными
сли источник данных содержит фактические, а не суммарные данные, то MapPoint в состоянии просуммировать их самостоятельно. Рассмотрим в качестве примера таких данных представление Invoices, содержащее сведения о фактах продаж продуктов заказчикам из разных стран, из базы данных Northwind, входящей в комплект поставки Microsoft Access и Microsoft SQL. Для отображения этих данных выберем пункт меню MapPoint Data | Data Mapping Wizard и ответим на вопросы соответствующего мастера. Выберем Northwind.mdb (или UDL-файл, указывающий на базу данных Northwind в SQL Server) в качестве внешнего источника данных, представление Invoices в качестве набора отображаемых данных, свяжем поле Country этого набора данных с полем Country/Region MapPoint и импортируем данные. Отметим, что можно вручную указать, чему именно соответствуют записи в источнике данных, географические данные в которых в MapPoint не найдены (например, из-за различного написания названий на разных языках).
Далее выбираем отображаемые поля (в данном случае ExtendedPrice), уровень административно-территориального деления, согласно которому эти данные следует отображать, и способ вычисления агрегатных значений (суммирование, вычисление среднего, вычисление числа записей — рис. 5).
Затем определяем способ масштабирования и способ закраски территорий и в результате получаем отображение вычисленных с помощью MapPoint сумм продаж товаров по странам (рис. 6).
Отметим, однако, что если объем данных велик, то суммы все же предпочтительнее вычислять на сервере баз данных, а не посредством MapPoint.
Создание решений на основе MapPoint
ак было сказано в начале статьи, на основе MapPoint можно создавать собственные приложения. Во-первых, для отображения карт в приложениях можно применять элемент управления ActiveX Microsoft MapPoint Control 9.0, а во-вторых, можно воспользоваться MapPoint 2002 как сервером автоматизации. Естественно, для применения таких приложений пользователь должен иметь либо установленный на его компьютере MapPoint, либо runtime-лицензию на применение MapPoint (эта лицензия позволяет запускать приложения, использующие MapPoint Control, но не сам MapPoint).
Следует иметь в виду, что Microsoft MapPoint Control 9.0 можно использовать только в Visual Basic 6 и в Visual Studio .Net (согласно документации, он неработоспособен в ранних версиях Visual Basic). Заставить работать этот элемент управления в Delphi 6 нам также не удалось.
Для отображения карты на форме приложения, созданного с помощью Visual Basic 6, следует добавить элемент управления Microsoft MapPoint Control 9.0 на панель ToolBox и затем поместить его на форму приложения. Код для отображения карты в Visual Studio .Net beta 2 может выглядеть, например, так:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim GeoMapRegion As Integer GeoMapRegion = 2 AxMappointControl1.NewMap(GeoMapRegion) End Sub
Здесь константа GeoMapRegion = 2 соответствует MapPoint Europe, а GeoMapRegion = 1 соответствует MapPoint NorthAmerica.
По умолчанию данный элемент управления отображает только карту. Если необходимо отобразить инструментальные панели MapPoint, это можно сделать с помощью коллекции Toolbars элемента управления MappointControl (рис. 7):
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim i, GeoMapRegion As Integer GeoMapRegion = 2 AxMappointControl1.NewMap(GeoMapRegion) For i = 1 To AxMappointControl1.Toolbars.Count AxMappointControl1.Toolbars(i).Visible = True Next i End Sub
Помимо коллекции Toolbars в приложениях, использующих MapPoint Control, равно как и в контроллерах автоматизации MapPoint, можно применять и другие объекты сервера автоматизации MapPoint. Объектная модель MapPoint 2002 представлена на рис. 8.
Подробнее о создании и поставке решений на основе MapPoint можно узнать на сайте MSDN по адресу: http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28001143.
Заключение
ы убедились, что MapPoint 2002 позволяет не только осуществлять поиск нужного объекта на карте, определять кратчайший маршрут между двумя точками, планировать путешествия, но и отображать на карте сведения, хранящиеся в базах данных, если они содержат географическую информацию, а также получать статистические данные. На основе этого продукта можно создавать собственные приложения, которые будут намного дешевле, чем решения на основе дорогостоящих геоинформационных систем, особенно если к географическим данным не предъявляется никаких особых требований. Все это делает MapPoint весьма удобным инструментом для анализа географических данных и создания решений, реализующих такой анализ.
КомпьютерПресс 12'2001