Свойства и методы растровых слоев

Свойства и методы растровых слоев

Рассмотрим свойства и методы, специфичные для растровых слоев. Остальные свойства и методы описаны в разделе «Слои».

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

Чтобы удалить растровый слой и освободить занимаемую для него память, необходимо воспользоваться методом DeleteImageLayer() карты:

mvMapLib.mvImageLayer imLayer = axMapLIb1.getImageLayer("C:\\Image.bmp");
axMapLIb1.deleteImageLayer(imLayer);
axMapLIb1.mapRepaint(); 

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

int imageLayersCount = axMapLIb1.ImageLayerCount; 

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

for (int i = 0; i < axMapLIb1.ImageLayerCount; i++)
{
     mvMapLib.mvImageLayer imLayer = axMapLIb1.getImageLayerByNum(i); 
}

Растровые слои всегда отображаются под всеми остальными типами слоев. Методы MoveDown() и MoveUp() растровых слоев перемещают их только относительно друг друга. Можно сделать так, чтобы один растровый слой отображался поверх другого растрового слоя. Но сделать так, чтобы, например, растровый слой оказался поверх слоя подложки, невозможно.

При использовании методов MoveDown() и MoveUp() растровых слоев, также меняется их порядковый номер, по которому можно получить доступ к растровым слоям, при использовании метода  mvLayer.getImageLayerByNum(int).

Чтобы сделать растровый слой прозрачным, можно установить его цвет фона следующим образом:

mvMapLib.mvImageLayer imLayer = axMapLIb1.getImageLayer("C:\\Image.bmp");
imLayer.bgcolor = 0xFFFFFF;

Свойства и методы внешних растровых слоев

Доступ к внешнему растровому слою осуществляется также, как к обычному растровому слою, – через имя файла:

mvMapLib.mvExternalImageLayer extImLayer = axMapLIb1.GetExternalImageLayer("E:\\map_wmsc_roscos.xml");

Так как внешний растровый слой является для карты обычным растровым слоем, к нему можно также обращаться следующим образом:

mvMapLib.mvImageLayer extImLayer = 
axMapLIb1.getImageLayer("E:\\map_wmsc_roscos.xml");

Либо по номеру:

mvMapLib.mvImageLayer extImLayer = axMapLIb1.getImageLayerByNum(i);

Внешние растровые слои помещаются в одну коллекцию с другими растровыми слоями, таким образом, к ним можно также обращаться по индексу, и перемещать вверх и вниз относительно других растровых слоев используя методы mvImageLayer.MoveDown() и mvImageLayer.MoveUp().

Для удаления слоя и освобождения памяти, можно использовать метод mvExternalImageLayer.Delete(). Кэш при этом не будет очищен.

mvMapLib.mvExternalImageLayer extImLayer = 
axMapLIb1.GetExternalImageLayer("E:\\map_wmsc_roscos.xml");
extImLayer.Delete();

Свойство mvExternalImageLayer.IsConnected – указывает, есть ли на данный момент соединение с сервером.

У слоя mvExternalImageLayer есть метод getBbox(), который возвращает структуру mvMapLib.mvBbox, содержащий два поля – a и b типа mvMapLib.mvCenterGlobal. Тип mvMapLib.mvCenterGlobal является структурой, содержащей координаты x и y типа float. Таким образом, поле a – координаты нижнего левого угла, а поле b – координаты правого верхнего угла прямоугольника, который виден на данный момент на карте.

Также есть метод getBboxByRef, который во многом похож на метод getBbox(), но имеет несколько дополнительных возможностей. Метод возвращает объект типа интерфейса mvMapLib.mvBboxObject. Этот объект содержит свойства a и b, типа mvMapLib.mvPointObject, который предоставляет координаты x и y левого нижнего и правого верхнего углов того же прямоугольника, но более высокой точности – double. К тому же, тип mvMapLib.mvPointObject предоставляет несколько методов для работы с координатами.

Доступ к серверам с растровыми изображениями осуществляется указанием файла в формате WMS (Web Map Services). Это специальный xml файл, где описаны параметры подключения, а также другая дополнительная информация, которая необходима для загрузки растрового слоя из сервера. Необходимая информация о том, как составляется такой файл, описана здесь: http://www.gdal.org/frmt_wms.html.