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


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует