Skip To Content

MapLayer.Get (.NET)

Этот метод возвращает свойства слоя карты или слоя изображений для указанного слоя карты или слоя изображений, на который ссылается его номер индекса карты.

Декларация

public Dictionary<string, object> Esri.ArcGISForAutoCAD.MapLayer.Get(Document doc, int mapLayerId)

Параметры

ТипИмяОписаниеОбязательный

Документ

doc

Документ AutoCAD, на основании которого следует действовать.

required

int

mapLayerId

Целое число индекса, связанное со слоем, который можно получить с помощью MapLayer.Names

required

Возвращаемые значения

ТипОписание

Dictionary<string, object>

Словарь свойств слоев карты и изображений. Свойства зависят от сервиса. В таблице ниже приводится описание ключей и значений словаря.

Словарь может содержать следующие значения и другие:

КлючТипОписание значения

"Allow_Raster_Function"

булево

Поддерживает ли слой функции растра или нет.

"Динамический"

булево

Метод обновления картографического сервиса при изменении вида (true = Динамическое поведение, false = Обновление по требованию).

"DatumTransformations"

IEnumerable<Dictionary<string, object>>

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

"Id"

int

Целое число индекса, связанное со слоем.

"IsConnected"

булево

Подключен ли слой или нет.

"Имя"

string

Имя слоя карты или слоя изображений.

"ProcessingTemplate"

string

Имя шаблона обработки слоя изображений.

"ProcessingTemplateNames"

IEnumerable<string>

Коллекция доступных имен шаблонов обработки слоев изображений.

"SpatialReference"

string

Пространственная привязка слоя в виде строки WKID или WKT.

"Прозрачность"

int

Процент прозрачности изображения, применяемый для карты (0-99, 0 означает полную непрозрачность).

"Видимый"

булево

Видимость карты (true= Видимая, false = Скрытая)

Замечания по условиям возникновения ошибок

Этот метод может выдать исключение или вернуть null, если параметр является некорректным.

Пример 1

Вывести свойства слоя карты для слоя карты c индексом 1.

// Initialize
var doc = Application.DocumentManager.MdiActiveDocument;
var mapLayerId = 1;

// Get the map layer properties 
var mapLayerProperties = Esri.ArcGISForAutoCAD.MapLayer.Get(doc, mapLayerId);

// Print the map layer properties 
foreach (var property in mapLayerProperties)
{
  if (property.Key == "DatumTransformations")
  {
    doc.Editor.WriteMessage("\n{0}: ", property.Key);
    foreach (var value in property.Value as IEnumerable<Dictionary<string, object>>)
    {
      doc.Editor.WriteMessage("\nFrom {0}: To {1}", value["From"], value["To"]);
      doc.Editor.WriteMessage("\nTransformation:");
      foreach (var dict in value["Steps"] as List<Dictionary<string, object>>)
      {
        foreach (var kvp in dict)
        {
          doc.Editor.WriteMessage("\n\t{0}: {1}", kvp.Key, kvp.Value);
        }
      }
    }
    continue;
  }
  doc.Editor.WriteMessage("\n{0}: {1}", property.Key, property.Value);
}

/* Example output 
Id: 1
Name: ThreeLayers
ItemType: MapImageServiceLayer
IsConnected: True
ServiceUri: https://cadserver.esri.com/server/rest/services/afaHarness/ThreeLayers/MapServer
SpatialReference: 3857
Sublayer_0_Name: myGroupOfLayers
Sublayer_0_Visible: True
Sublayer_1_Name: ETH_ThreeLayers_6543
Sublayer_1_Visible: True
Sublayer_1_SourceSpRef: 103122
Sublayer_2_Name: ETH_ThreeLayers_2882
Sublayer_2_Visible: True
Sublayer_2_SourceSpRef: 2882
Sublayer_3_Name: ETH_ThreeLayers_6425
Sublayer_3_Visible: True
Sublayer_3_SourceSpRef: 103002
Visible: True
Transparency: 30
Dynamic: True
DatumTransformations:
From 6543: To 3857
Transformation:  
 Direction: Reverse
 Step: 108354
From 2882: To 3857
Transformation:
 Direction: Forward
 Step: 1901
*/

Пример 2

Вывести свойства слоя изображений для слоя изображений c индексом 2.

// Initialize
var doc = Application.DocumentManager.MdiActiveDocument;
var layerId = 2;

// Get the imagery layer properties 
var imageryLayerProperties = Esri.ArcGISForAutoCAD.MapLayer.Get(doc, layerId);

// Print the imagery layer properties 
foreach (var property in imageryLayerProperties)
{
  if (property.Key == "ProcessingTemplateNames")
  {
    doc.Editor.WriteMessage("\n{0}:", property.Key);
    foreach (var value in property.Value as List<string>)
    {
      doc.Editor.WriteMessage(" " + value);
    }
    continue;
  }
  doc.Editor.WriteMessage("\n{0}: {1} ", property.Key, property.Value);
}

/* Example output 
Id: 2
Name: CharlotteLAS
ItemType: RasterServiceLayer
IsConnected: True
ServiceUri: https://sampleserver6.arcgisonline.com/arcgis/rest/services/CharlotteLAS/ImageServer
SpatialReference: 102719
Visible: True
Transparency: 30
Dynamic: True
Allow_Raster_Function: True
ProcessingTemplateNames: None RFTAspectColor RFTHillshade RFTShadedReliefElevationColorRamp
*/

См. также

MapLayer.Names — метод .NET, который возвращает индексированный словарь имен слоев карты и слоев изображений, включенных в текущий чертеж.

esri_maplayer_get — функция AutoLISP, которая возвращает свойства слоя карты или слоя изображений для указанного номера индекса слоя.