MapWindowGIS в DelphiВсем доброго времени суток. Давненько я не писал ничего про MapWindow GIS в Delphi. Может оно и к лучшему, так как летом вышла очередная новая версия данного ActiveX-компонента, в которой наконец-то появилась поддержка Google-карт.

Мы уже с Вами рассматривали один проект, который позволяет в своих программах добавлять интерактивные карты Google. Эта библиотека называется GMLib и я уже о ней рассказывал на этом блоге. Но многим нравиться именно MapWindows GIS, так как по мне, она более функциональная и универсальная, да и разобрали в данном компоненте мы уже прилично вопросов.

Так вот, здесь я хотел бы поговорить о новой версии, которая вышла в августе 2014 года – MapWinGis 4.9.2. Вам лишь необходимо скачать последнюю версию с официального сайта (ссылка) для своей операционной системы.

Затем на всякий случай удалите старую версию компонента и установите новую, как это сделать я рассказывал в данной статье. Сейчас поговорим о самых интересных и больших обновлениях в этой версии, а в следующей статье уже будем рассматривать, как можно работать с этим компонентом.

Вообще, карты Google теперь в проекте Вашем могут выглядеть следующим образом:

MapWindowGIS 4.9.2

Горячие клавиши по умолчанию

Теперь на карте есть свои встроенные горячие клавиши, которыми можно с легкостью управлять своим проектом, например:

  • «+» — увеличение на карте
  • «-» — уменьшение на карте
  • «*» — увеличение на карте до ближайшей плитки
  • «M» — измерение расстояния
  • «Колесо мыши» — увеличение или уменьшение масштаба, в независимости от того, какой тип курсора у Вас установлен
  • «Z» — увеличение
  • «Shift+Left» – увеличение до предыдущего слоя
  • «Shift+Right» – увеличение до следующего слоя

Горячие клавиши будут работать только в том случае, если на вашей карте установлен фокус. А стрелки влево и вправо будут работать, только при выполнение некоторого кода, об этом будет рассмотрено в следующих статьях, так как здесь в основном рассматриваем новые возможности.

Измерения расстояния и площади

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

Чтобы измерить площадь необходимо включить режим измерения площади, это делается следующим образом:

Measuring.MeasuringType:=MeasureArea;

Вот так будет выглядеть измерение расстояния:

MapWindowGIS 4.9.2

А вот так измерение площади:

MapWindowGIS 4.9.2

Данный режим также поддерживает различные горячие клавиши:

  • Щелчок левой кнопки мыши – добавление новой точки
  • Щелчок правой кнопки мыши – стирание последней добавленной точки
  • Двойной щелчок мыши – разделение измерения пути
  • Ctrl+щелчок мыши – закрывает полигон для измерения
  • Shift+щелчок мыши – привязывает линию к ближайшей вершине на слое карты

Кроме этого, теперь можете создавать слои без создания нужных объектов. В версии 4.9.2 еще много различных вкусностей: он поддерживает и гибридные карты Яндекс, Yahoo и других картографических систем, о которых мы будем говорить в следующих статьях.

Обновление предыдущей версии MapWindowGIS

Если Вы не знаете, как можно установить новую версию ActiveX-компонента, то посетите данную статью. Если же она у Вас установлена, то можно просто ее обновить, например, при помощи регистрации библиотеки с помощью команды regsvr32 (Пуск-Выполнить), либо же просто импортируйте новую версию компонента в Delphi.

На этом все, хотели бы Вы дальше читать статьи по MapWindowGIS в Delphi?

Метки: , , , ,




К записи “Работа с MapWindow GIS. Новая версия 4.9.2. Обзор обновлений” оставлено комментариев: 11.

  1. Lena:

    Большое спасибо за очередную статью! Очень познавательно. Спасибо!

  2. Новости из мира Delphi 20.10 – 26.10 2014 | Delphi 2010 ru:

    […] Работа с MapWindow GIS. Новая версия 4.9.2. Обзор обновлений; […]

  3. Всеволод:

    Огромное спасибо! Я посмотрел примеры, но нигде не нашел перемещение по карте мышью, перетаскиванием. Ну как в том же googlemaps, например. Такое в компоненте вообще реализовано?

  4. Сергей О.:

    Здравствуйте!
    Пытаюсь установить ActiveX (версия 4.9.3.4), но в процессе компиляции пакета получаю ошибку (несколько аналогичных): переобъявлена переменная result, вот например в этой функции
    function TShapefile.SelectShapes(const BoundBox: IExtents; Tolerance: Double;
    SelectMode: SelectMode; var result: OleVariant): WordBool;
    begin
    Result := DefaultInterface.SelectShapes(BoundBox, Tolerance, SelectMode, result);
    end;

    Вы с таким не сталкивались?

  5. Сергей О.:

    Переименовал параметр result на aresult, но выплыло другое. При установке компонентов (из этого TLB) устанавливается куча компонентов, кроме TMap, в частности TImage, который конфликтует с имеющимся обычным TImage (это, похоже, просто первая ошибка, т.к. там куча еще таких компонентов). Не понял пока, как от этих компонентов избавиться…

  6. Сергей О.:

    Скачал на сайте производителя демо «beili», установил TMap из TLB оттуда. Кажется понял, в чем дело и как с этим бороться. Если при импорте ActiveX поставить флажок «generate component wrappers» (чтобы компонент установить потом в палитру), то Дельфи создаcт компоненты-обертки для всех интерфейсов в TLB. Наверное можно потом поудалять их все вручную, кроме TMap. Во всяком случае в файле TLB в скачанном демо импортируется только TMap, для остальных интерфейсов компоненты-обертки не создаются.

  7. Сергей О.:

    Оказывается, это я сам затупил. Нужно было убрать флажок «Create Component wrappers». Тогда не получается выбрать выпадающем списке закладку в палитре, куда ставить компонент, но это и неважно. На следующей странице мастера выбираем — создать ли новый пакет или добавить в имеющийся и потом уже для пакета (я создал новый) выбираем «Install». Устанавливает только TMap (на закладку ActiveX), как и было нужно.

  8. юрий:

    а где скачать то MapWinGis 4.9.2
    обыскалься

  9. Аноним:

    Не понял на счет горячих клавиш… они работают, но если на форму положить некоторые другие контролы — перестают работать. В чем дело?

Оставить комментарий

Вы можете использовать следующие теги:

*