Работа с MapWindow GIS. Загрузка растровых изображений. Тип Image

3 минуты на чтение

Всем привет, продолжаю развивать тему про MapWindow GIS в Delphi. На этот раз решил рассмотреть, как можно загрузить (отобразить) в компоненте TMap растровое изображение. Как Вы помните, то мы в прошлых статьях рассматривали загрузку shp-файлов. На растровых изображениях уже все необходимые объекты должны быть нанесены сразу, что не очень удобно, но зато на них можно рисовать, как на Canvas, например компонента TImage.

Для всех этих целей, мы рассмотри тип данных Image, который описан в модуле компонента TMap. А сейчас немного поговорим о растровых изображениях.

Растровые изображения — это грубо говоря те же самые BMP, JPEG, PNG изображения. На данных изображениях, сразу наносятся название объектов, раскрашиваются. В большинстве случаем они используются для GPS-навигаторов. Это не самый лучший вариант отображения географической информации, так как, чтобы хорошо увидеть нужный объект на растровой карте, она должна иметь достаточно высокое разрешение. Кроме всего этого, растровые карты имеют намного меньше масштаб увеличения, что также не совсем удобно их использовать в некоторых случаях.

Для примера, я нашел политическую карту Европы, которую мы будем использовать в нашем проекте.

Итак, приступим к рассмотрению типа Image. Рассмотрим функции объекта данного типа.

Функции:

  • Open(ImageFileName:String;OptionalInRam:Boolean;OptionacBack:ICallback):Boolean — загружает, указанный файл
  • CreateNew(NewWidth:Integer;NewHeight:Integer):Boolean — создает новые графический файл
  • Close():Boolean — закрывает открытый файл
  • Save(ImageFileName:String;OptionalWriteWorldFile:Boolean;OptionalFileType:ImageType;OptionalcBack:Iallback):Boolean — сохраняет изображения в файл, с нужным расширением

 

 

Свойства:

  • ImageType:ImageType — определяет тип, загруженного изображения (файла)
  • Filename:String — определяет имя загруженного файла
  • XllCenter:Double — получает или задает координаты центра изображения по X
  • YllCenter:Double — получает или задает координаты центра изображения поY
  • dX - устанавливает ширину пикселя по X
  • dY- устанавливает ширину пикселя по Y

Функции и свойства я рассмотрел не все, а только некоторые, которые понадобятся нам в данной статье. Дальше, мы рассмотрим и другие, когда будем рассматривать статью: о нанесении на слои графических объектов.

Кроме того, параметр FileType:ImageType, который используется, как в функции Open, так и в функции Save, может принимать следующие значения:

  • BITMAP_FILE
  • GIF_FILE
  • USE_FILE_EXTENSION
  • PPM_FILE

В моем проекте, я добавил еще одну кнопку и компонент TOpenDialog, и написал на событие OnClick следующий код:

procedure TForm1.ToolButton9Click(Sender: TObject);
var
 img:Image;
begin
   if OpenDialog2.Execute then
    begin
     img:=CoImage.Create;
     img.Open(OpenDialog2.FileName,BITMAP_FILE,True,nil);
     img.dX:=0.0035;
     img.dY:=0.0035;
     img.YllCenter:=42;
     img.XllCenter:=28;
     Map1.AddLayer(img,True);
    end;
end;

Как видите, я сперва создаю объект, затем загружаю в него наше изображения и настраиваю его отображение, путем указания центра изображения.

Если воспользоваться функцией Save и сохранить наше изображение в формате, например, bmp, то рядом с нашим изображение появиться файл, с расширением *.bpw, в котором будут храниться все указанные настройки нашего изображения.

Вот, что у меня получилось, после загрузки изображения, формата bmp, в наш проект (загружалась политическая карта Европы):

Растровые карты имеют довольно большой объем, так что лучше использовать слои формата shp

Данную тему я рассмотрел, так как мне было достаточно вопросов о том, можно ли загружать в MapWindow GIS, графические карты (растровые, векторные), пришлось сделать такую мини-статью.

Facebook Vk Ok Twitter LinkedIn Telegram

Похожие записи:

Всех приветствую, хочу продолжить тему по MapWindow GIS в Delphi, а на этот раз хотелось бы поговорить о новой версии, которая вышла совсем недавно в июне, данного года, последняя версия сборки 4.8.2. Скачать можно с официального сайта MapWindow GIS, благо дан...
Всем привет, продолжаем тему с MapWindow GIS, а в особенности рассматриваем тему, которая посвящена именно выходу новой версии MapWindow GIS в виде ActiveX-компонента, в которой появилось достаточно много изменений, о которых (о некоторых) я вспоминал в данной...
Всем привет, данная статья будет посвящена — двум географическом-информационным системам: Яндекс.Карты совместно с MapWindow GIS в Delphi. Яндекс.Карты мы уже использовали в своих проектах, и рассматривали их (Static Api), теперь попробуем совместить эти два д...