2 votos

Filtrado de capas por tipos en ArcGIS

Quiero hacer un bucle a través de todas las capas en TOC en ArcGIS y reportar las capas raster y vectoriales. Quiero ver cuántas capas son raster y cuántas son vectoriales. Puedo acceder a las capas utilizando:

IEnumLayer pEnumLayer = pMap.get_Layers(null, true);

y hacer un bucle de las capas en Enum, pero ¿cómo puedo determinar qué capa es Raster.

5voto

Flinkman Puntos 4821

Al utilizar IMap.get_Layers puede suministrar un UID con el tipo previsto, por ejemplo:

UID pFeatureLayersUID = new UIDClass();
pFeatureLayersUID.Value = "{40A9E885-5533-11d0-98BE-00805F7CED21}";
IEnumLayer pMapLayers = gMap.get_Layers(pFeatureLayersUID, true);

Obtendrá todas las capas de características (Vector) en su mapa actual recursivamente... normalmente obtendría todas sus capas vectoriales, luego todas sus capas rasterizadas pero supongo que puede obtener todo sus capas y se ramifican en consecuencia...

Para saber cuáles son hay que utilizar las coclas de ILayer (hay bastantes):

ILayer pLayer = pMapLayers.Next();
if (pLayer.Valid) // important, make sure it's not broken
{
    if (pLayer is IFeatureLayer)
    { 
    }
    else if (pLayer is IRasterLayer)
    { 
    }
}

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X