Domanda

Hai problemi conversione di un Ilayer a un IPolygon.

sto sviluppando una barra degli strumenti per ArcMap e ho afferrare uno strato tramite codice dalla tabella lato dei contenuti. Il livello è un poligono, ma il codice non verrà convertito in un IPolygon.

Qualcuno può darmi una mano? Questo è il codice che sto usando per cercare di convertirlo in un IPolygon ...

 IPolygon poly = m_document.Maps.get_Item(0).get_Layer(0) as IPolygon;

Posso fare questo:

 ILayer layer = m_document.Maps.get_Item(0).get_Layer(0) as ILayer;

e che le opere, non solo convertirlo in un IPloygon ..

È stato utile?

Soluzione

Se si desidera accedere alle geometrie contenute in uno strato shapefile, dovete ottenere feature class del livello. Questa è una proprietà dell'interfaccia IFeatureLayer, quindi dovrete lanciare il vostro livello (che è un ilayer) prima:

IFeatureLayer FLayer = layer as IFeatureLayer;
IFeatureClass FClass = FLayer.FeatureClass;

Se si dispone di una classe di entità, è possibile ottenere caratteristiche di indice (lenta) oppure definendo un cursore sulla classe di entità (questo è veloce e il modo preferito quando si vuole un sacco manico di funzioni di ricerca per IFeatureCursor;. ESRI docs usualy sono dotati di frammenti di codice buoni).

Se la feature class contiene una sola funzione, o se si desidera solo una funzione, è possibile utilizzare il metodo GetFeature:

IFeature MyFeature = FClass.GetFeature(0);

Ora ci sei quasi. la geometria di una funzione è nascosto nella sua proprietà Shape:

IPolygon MyPoly = MyFeature.Shape as IPolygon;

Il cast supplementare è necessaria perché la proprietà Shape è un IPolygon, che è un IGeometry più specifica.

Altri suggerimenti

L'ilayer sarà costituito da più poligoni. Pensare a un livello come tabella SQL e una funzione come una riga nella tabella. L'IPolygon farà riferimento alla geometria che compone una caratteristica individuale. Potrebbe essere necessario cast che ilayer come qualcosa di simile a un IFeatureLayer per ottenere l'accesso alle giuste proprietà / metodi per accedere alle singole funzioni all'interno del tuo livello.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top