Всем доброго времени суток. Давненько я не писал ничего про MapWindow GIS в Delphi. Может оно и к лучшему, так как летом вышла очередная новая версия данного ActiveX-компонента, в которой наконец-то появилась поддержка Google-карт.
Мы уже с Вами рассматривали один проект, который позволяет в своих программах добавлять интерактивные карты Google. Эта библиотека называется GMLib и я уже о ней рассказывал на этом блоге. Но многим нравиться именно MapWindows GIS, так как по мне, она более функциональная и универсальная, да и разобрали в данном компоненте мы уже прилично вопросов.
Так вот, здесь я хотел бы поговорить о новой версии, которая вышла в августе 2014 года – MapWinGis 4.9.2. Вам лишь необходимо скачать последнюю версию с официального сайта (ссылка) для своей операционной системы.
Затем на всякий случай удалите старую версию компонента и установите новую, как это сделать я рассказывал в данной статье. Сейчас поговорим о самых интересных и больших обновлениях в этой версии, а в следующей статье уже будем рассматривать, как можно работать с этим компонентом.
Вообще, карты Google теперь в проекте Вашем могут выглядеть следующим образом:
Горячие клавиши по умолчанию
Теперь на карте есть свои встроенные горячие клавиши, которыми можно с легкостью управлять своим проектом, например:
- «+» — увеличение на карте
- «-» — уменьшение на карте
- «*» — увеличение на карте до ближайшей плитки
- «M» — измерение расстояния
- «Колесо мыши» — увеличение или уменьшение масштаба, в независимости от того, какой тип курсора у Вас установлен
- «Z» — увеличение
- «Shift+Left» – увеличение до предыдущего слоя
- «Shift+Right» – увеличение до следующего слоя
Горячие клавиши будут работать только в том случае, если на вашей карте установлен фокус. А стрелки влево и вправо будут работать, только при выполнение некоторого кода, об этом будет рассмотрено в следующих статьях, так как здесь в основном рассматриваем новые возможности.
Измерения расстояния и площади
Теперь Вы можете очень легко и просто измерять площадь и расстояние на своих картах. Поэтому, чтобы Вы могли начать измерение расстояния, необходимо в свойствах компонента CursorMode выбрать cmMeasure, либо же использовать горячую клавишу «M», но в данном случае карта должна находиться в фокусе.
Чтобы измерить площадь необходимо включить режим измерения площади, это делается следующим образом:
Measuring.MeasuringType:=MeasureArea;
Вот так будет выглядеть измерение расстояния:
А вот так измерение площади:
Данный режим также поддерживает различные горячие клавиши:
- Щелчок левой кнопки мыши – добавление новой точки
- Щелчок правой кнопки мыши – стирание последней добавленной точки
- Двойной щелчок мыши – разделение измерения пути
- Ctrl+щелчок мыши – закрывает полигон для измерения
- Shift+щелчок мыши – привязывает линию к ближайшей вершине на слое карты
Кроме этого, теперь можете создавать слои без создания нужных объектов. В версии 4.9.2 еще много различных вкусностей: он поддерживает и гибридные карты Яндекс, Yahoo и других картографических систем, о которых мы будем говорить в следующих статьях.
Обновление предыдущей версии MapWindowGIS
Если Вы не знаете, как можно установить новую версию ActiveX-компонента, то посетите данную статью. Если же она у Вас установлена, то можно просто ее обновить, например, при помощи регистрации библиотеки с помощью команды regsvr32 (Пуск-Выполнить), либо же просто импортируйте новую версию компонента в Delphi.
На этом все, хотели бы Вы дальше читать статьи по MapWindowGIS в Delphi?
Похожие записи
Метки: MapWindow GIS, MapWindow GIS в Delphi, MapWindowGIS, Shape, TMap
К записи “Работа с MapWindow GIS. Новая версия 4.9.2. Обзор обновлений” оставлено комментариев: 11.
Оставить комментарий
Большое спасибо за очередную статью! Очень познавательно. Спасибо!
Всегда пожалуйста, будем и дальше писать про MapWindow GIS
[…] Работа с MapWindow GIS. Новая версия 4.9.2. Обзор обновлений; […]
Огромное спасибо! Я посмотрел примеры, но нигде не нашел перемещение по карте мышью, перетаскиванием. Ну как в том же googlemaps, например. Такое в компоненте вообще реализовано?
Здравствуйте!
Пытаюсь установить 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;
Вы с таким не сталкивались?
Переименовал параметр result на aresult, но выплыло другое. При установке компонентов (из этого TLB) устанавливается куча компонентов, кроме TMap, в частности TImage, который конфликтует с имеющимся обычным TImage (это, похоже, просто первая ошибка, т.к. там куча еще таких компонентов). Не понял пока, как от этих компонентов избавиться…
Скачал на сайте производителя демо «beili», установил TMap из TLB оттуда. Кажется понял, в чем дело и как с этим бороться. Если при импорте ActiveX поставить флажок «generate component wrappers» (чтобы компонент установить потом в палитру), то Дельфи создаcт компоненты-обертки для всех интерфейсов в TLB. Наверное можно потом поудалять их все вручную, кроме TMap. Во всяком случае в файле TLB в скачанном демо импортируется только TMap, для остальных интерфейсов компоненты-обертки не создаются.
Оказывается, это я сам затупил. Нужно было убрать флажок «Create Component wrappers». Тогда не получается выбрать выпадающем списке закладку в палитре, куда ставить компонент, но это и неважно. На следующей странице мастера выбираем — создать ли новый пакет или добавить в имеющийся и потом уже для пакета (я создал новый) выбираем «Install». Устанавливает только TMap (на закладку ActiveX), как и было нужно.
а где скачать то MapWinGis 4.9.2
обыскалься
Не понял на счет горячих клавиш… они работают, но если на форму положить некоторые другие контролы — перестают работать. В чем дело?
Попробуйте обновиться до самой последней версии MapWindow GIS