Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Подземелье Магов
  
 

Фильтр по датам

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  15:08[Войти] | [Зарегистрироваться]

Просто и ясно о MapX и Delphi.

Дмитрий Кузан
дата публикации 24-04-2003 18:49

Просто и ясно о MapX и Delphi.

Доброе время суток, уважаемые коллеги. Этой статьей я открываю (или продолжаю) цикл статей посвященный использованию картографии в проектах Delphi. Предыдущие статьи касались в основном использования интегрированной картографии MapInfo, данная статья будет направлена на изучения ActiveX компонента MapX предназначенного для встраивания в свои приложения элементов картографии.

Итак, что такое MapX.:

MapX - это картографический ActiveX компонент, который можно использовать в языках программирования Visual Basic, Delphi, Visual C++, PowerBuilder и др.
Используя карты, Вы можете отображать информацию в виде, легко понятном каждому. Карты более информативны, чем диаграммы и графики, и их интерпретация более наглядная и быстрая по сравнению с таблицами.
MapX имеет обширный набор функций и позволяет разработчикам использовать в своих программах средства анализа и управления пространственными данными.
МарХ основан на тех же картографических технологиях, которые используются в других продуктах MapInfo, таких как MapInfo Professional и Microsoft Map.

Обзор основных возможностей :

  • Разработчик получает доступ к выполнению различных операций с картографическими данными, типа - нахождение пересечений и вложенности объектов; построение буферов; объединение объектов и т.д.
  • Создание тематических карт - мощное средство анализа и наглядного представления пространственных данных. Тематические карты выявляют связи между объектами и тенденции в развитии явлений. Возможно создание тематических карт следующими способами: картограммы, картодиаграммы, способы значков и плотности точек, метод качественного фона, построение непрерывной поверхности по неравномерно распределенным значениям.
  • Редактирование объектов. На электронной карте можно интерактивно создавать новые объекты, а также их изменять и удалять.
  • Визуальный выбор. Используя стандартные средства, можно выбирать элементы, попадающие в прямоугольник, произвольный полигон и окружность.
  • Управление слоями. Имеются функции позволяющие оперировать слоями географической информации, назначать способы отображения объектов и формирования подписей, изменять масштаб карты, управлять видимостью слоя, определять порядок показа и масштабный эффект для слоев картографических объектов и подписей.
  • Анимационный слой динамически отображает движущиеся объекты, например, в приложениях работающих с информацией от GPS-приемников в режиме реального времени.
  • Поддержка растровых изображений позволяет использовать спутниковые и аэрофотоснимки, сканированные карты и другие изображения как не редактируемые слои карты.
  • Поддержка стандартного языка запросов - SQL.
  • Доступ к серверу пространственных данных SSA - новое мощное средство, предоставляющее доступ к информации, хранящейся на удаленном сервере пространственных данных.
Помимо основных возможностей MapX постоянно находится в развитии и от версии к версии происходит модернизация и наращивания возможностей, так например в версии 4.5 были добавлены и улучшены следующие возможности:
  • Поддержка файлов поверхности и прозрачных растров (TrueСolor).
  • Автоматическая регистрация растровых изображений.
  • Поддержка технологий для связывания данных ADO и RDO.
  • Поддержка серверов баз данных DB2 и Oracle 8.1.6.
  • Кэширование картографических данных расположенных на сервере.
  • Разграничение прав доступа к картографической информации.
  • Инструменты для создания и редактирования объектов карты. Добавлены четыре новых инструмента создания объектов.
  • Стандартные диалоги MapX на русском языке.
  • Создание новых видов курсоров.
  • Всплывающие подсказки при выборе обектов.
  • Поддержка векторных символов совместимых с MapInfo 3.0
Значительно улучшены и/или расширены следующие возможности MapX
  • Скорость отображения карты.
  • Производительность повторяющихся операций со слоями.
  • Расширены возможности работы с геословарем.
  • Быстрый доступ к объектам карты для редактирования объектов и полей атрибутов.
  • Поддержка импорта большего числа графических форматов, включая GIF, JPEG, и PNG.
  • Методы построения и оформления тематических карт (картограммы, картодиаграммы и др.) .
  • Поддержка методов преобразования координат NADCON, Molodensky и Bursa Wolfe (Начиная с версии MapX 3.5)
  • Максимальное число узлов для регионов и полилиний увеличено до 1,048,572 для одного региона или полилинии.


Вот в принципе возможности MapX :
В данной статье речь будет идти о MapX версии 5.0 так как на текущий момент времени оная присутствовала у меня в наличии.

Установка MapX в Delphi

После установки дистрибутива MapX на компьютер нужно установить MapX в Delphi. Следующие шаги устанавливают МарХ в Delphi package. Это необходимо сделать только один раз.
  1. Откройте Delphi с новым, пустым проектом.
  2. Выберите Import ActiveX Control из меню Components

  3. Выберите MapInfo MapX V5 из списка, и нажмите Install.


    В диалоге Install, установите его в по умолчанию в пакете программ Borland User's Components. Нажмите Yes чтобы перекомпилировать пакет программ (package), затем закройте и сохраните окно Package.
    Пиктограмма МарХ должна появиться в Controls palette, в разделе ActiveX.

Первый проект.

После того как вы установили MapX сделаем свой первый простой проект, вот что у меня вышло для начала :



Согласитесь - для начала не плохо.
Итак приступим:

Положим компонент Tmap на форму. Тут я сделаю маленькое отступление - обычно MapX поставляется в составе приложения MapXTreme, которое в свою очередь является сервером для хранения карт, что-то вроде централизованного хранилища картографической информации, и если у вас выйдет такая ошибка :

то не пугайтесь - она не смертельная, а говорит лишь о там, что - у вас не установлен MapXTremе, либо установлен, но не найден набор (вроде алиаса в BDE - хотя сравнение не совсем удачное) GeoDict.ddt, т.е. MapX пытается уже открыть карту прописанную GeoDict.ddt в MapXTreme.
Так как я не ставил MapXTreme то данная ошибка лечится обнулением (установкой пустой строки) свойства GeoDictionary объекта MapX;


Итак пришла пора загрузить карту - для этого в MapX служит объект Layers который представляет собой коллекцию слоев на карте :
Вот как можно добавить слои (в примере они загружаются в FormCreate):

FileMapper  := ExtractFilePath(ParamStr(0)) + 'Map\Республика.TAB';
MapX.Layers.Add(FileMapper,2);
FileMapper  := ExtractFilePath(ParamStr(0)) + 'Map\Реки_полигоны.TAB';
MapX.Layers.Add(FileMapper,1);

У объекта Layers есть метод Add в котором указывается таблица MapInfo и положение слоя на карте, причем чем меньше положение слоя тем слой выше на карте.
Ну а органы управления картой (приближение,уменьшение,сдвиг и т.д) управляются свойствами MousePointer - вид курсора и CurrentTool - текущий инструмент;

В своем примере я применил следующие инстурменты
Стрелочка (стандартный инструмент по умолчанию)
MapX.MousePointer := miDefaultCursor;
MapX.CurrentTool  := miArrowTool;
	
Рука (инструмент для перемещения карты)
MapX.MousePointer := miPanCursor;
MapX.CurrentTool  := miPanTool;
Лупы + и - (инструмент для маштабирования карты)
MapX.MousePointer := miZoomOutCursor;
MapX.CurrentTool  := miZoomOutTool;
//---
MapX.MousePointer := miZoomInCursor;
MapX.CurrentTool  := miZoomInTool;
Итак, для начала мы разобрались как загружать карту в Tmap и как производить простейшие манипуляции на карте. В следующей части мы начнем более глубоко изучать MapX, научимся создовать собственные инструменты, манипулировать с единицами измерений и проекциями и т.д.
До встречи !

С уважением к коллегам, Дмитрий Кузан.





К материалу прилагаются файлы:


Смотрите также материалы по темам:
[Взаимодействие с ГИС]

 Обсуждение материала [ 02-12-2009 00:32 ] 8 сообщений
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования