I am playing around with a raster and I want to find out if the fieldcount property can be found in any of the Raster interfaces using C#? I have been unable to find it when searching IRasterLayer, IRaster.....
Thank you
Hey Freddie.
I have tried them now and now I am having an error.
If I use IRasterLayer then I cannot use IRaster2 or IRasterBand. If I remove IRasterLayer then I get an error on IRaster2 or IRasterBand saying I cannot convert type string to the IRaster2 or IRasterBand.
I know I get the same value for map.get_Layer(i).name and cboDEM.text using messageboxes when I click the right file so it goes inside the loop.
if (map.get_Layer(i).Name == cboDEM.Text){
IRasterLayer pRasLayer = map.get_Layer(i) as IRasterLayer; IRaster2 pRaster = map.get_Layer(i).Name;
Hi Jamel,
I was able to get this to work by fetching the layer from the TOC, casting it to IRasterLayer, grabbing the IRaster from IRasterLayer.Raster, casting it to ESRI.ArcGIS.DataSourcesRaster.IRaster2 and then fetching the fields by iterating through the IRaster2.AttributeTable.Fields enumerator. Below is a small snippet from a combobox example I wrote for another post that I modified for this approach.
<SPAN class="keyword token">protected</SPAN> <SPAN class="keyword token">override</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="token function">OnSelChange</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">int</SPAN> cookie<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN> <SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>cookie <SPAN class="operator token"><</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">return</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">var</SPAN> name <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>items<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Where</SPAN><SPAN class="punctuation token">(</SPAN>s <SPAN class="operator token">=</SPAN><SPAN class="operator token">></SPAN> s<SPAN class="punctuation token">.</SPAN>Cookie <SPAN class="operator token">==</SPAN> cookie<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">FirstOrDefault</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>Caption<SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">var</SPAN> layer <SPAN class="operator token">=</SPAN> <SPAN class="token function">LoopThroughLayersOfSpecificUID</SPAN><SPAN class="punctuation token">(</SPAN>ArcMap<SPAN class="punctuation token">.</SPAN>Document<SPAN class="punctuation token">.</SPAN>FocusMap<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"{D02371C7-35F7-11D2-B1F2-00C04F8EDEFF}"</SPAN><SPAN class="punctuation token">,</SPAN> name<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> ESRI<SPAN class="punctuation token">.</SPAN>ArcGIS<SPAN class="punctuation token">.</SPAN>Carto<SPAN class="punctuation token">.</SPAN>IRasterLayer<SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">var</SPAN> raster <SPAN class="operator token">=</SPAN> layer<SPAN class="punctuation token">.</SPAN>Raster <SPAN class="keyword token">as</SPAN> ESRI<SPAN class="punctuation token">.</SPAN>ArcGIS<SPAN class="punctuation token">.</SPAN>DataSourcesRaster<SPAN class="punctuation token">.</SPAN>IRaster2<SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">var</SPAN> fields <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">List</SPAN><SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">for</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">int</SPAN> i <SPAN class="operator token">=</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">;</SPAN> i <SPAN class="operator token"><</SPAN> raster<SPAN class="punctuation token">.</SPAN>AttributeTable<SPAN class="punctuation token">.</SPAN>Fields<SPAN class="punctuation token">.</SPAN>FieldCount<SPAN class="punctuation token">;</SPAN> i<SPAN class="operator token">++</SPAN><SPAN class="punctuation token">)</SPAN> fields<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Add</SPAN><SPAN class="punctuation token">(</SPAN>raster<SPAN class="punctuation token">.</SPAN>AttributeTable<SPAN class="punctuation token">.</SPAN>Fields<SPAN class="punctuation token">.</SPAN>Field<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>Name<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">var</SPAN> cbx <SPAN class="operator token">=</SPAN> ESRI<SPAN class="punctuation token">.</SPAN>ArcGIS<SPAN class="punctuation token">.</SPAN>Desktop<SPAN class="punctuation token">.</SPAN>AddIns<SPAN class="punctuation token">.</SPAN>AddIn<SPAN class="punctuation token">.</SPAN>FromID<SPAN class="operator token"><</SPAN>FieldsCombo<SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN>ThisAddIn<SPAN class="punctuation token">.</SPAN>IDs<SPAN class="punctuation token">.</SPAN>FieldsCombo<SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToUID</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>Value<SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToString</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> cbx<SPAN class="punctuation token">.</SPAN><SPAN class="token function">UpdateItems</SPAN><SPAN class="punctuation token">(</SPAN>fields<SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToArray</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">base</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">OnSelChange</SPAN><SPAN class="punctuation token">(</SPAN>cookie<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="punctuation token">}</SPAN> <SPAN class="comment token">// Loop Through Layers of Specific UID Snippet (ArcObjects .NET 10.4 SDK)</SPAN> <SPAN class="comment token"><SPAN>// </SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fdesktop.arcgis.com%2Fen%2Farcobjects%2Flatest%2Fnet%2Fwebframe.htm%2368527c4d-e69d-42f2-9f9e-81652dd4c329.htm" target="_blank">http://desktop.arcgis.com/en/arcobjects/latest/net/webframe.htm#68527c4d-e69d-42f2-9f9e-81652dd4c329.htm</A></SPAN> <SPAN class="keyword token">public</SPAN> <SPAN class="keyword token">string</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="token function">LoopThroughLayersOfSpecificUID</SPAN><SPAN class="punctuation token">(</SPAN>ESRI<SPAN class="punctuation token">.</SPAN>ArcGIS<SPAN class="punctuation token">.</SPAN>Carto<SPAN class="punctuation token">.</SPAN>IMap map<SPAN class="punctuation token">,</SPAN> System<SPAN class="punctuation token">.</SPAN>String layerCLSID<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN> <SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>map <SPAN class="operator token">==</SPAN> <SPAN class="keyword token">null</SPAN> <SPAN class="operator token">||</SPAN> layerCLSID <SPAN class="operator token">==</SPAN> <SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">return</SPAN> <SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">;</SPAN> List<SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN> names <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">List</SPAN><SPAN class="operator token"><</SPAN><SPAN class="keyword token">string</SPAN><SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> ESRI<SPAN class="punctuation token">.</SPAN>ArcGIS<SPAN class="punctuation token">.</SPAN>esriSystem<SPAN class="punctuation token">.</SPAN>IUID uid <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">ESRI<SPAN class="punctuation token">.</SPAN>ArcGIS<SPAN class="punctuation token">.</SPAN>esriSystem<SPAN class="punctuation token">.</SPAN>UIDClass</SPAN> <SPAN class="punctuation token">{</SPAN> Value <SPAN class="operator token">=</SPAN> layerCLSID <SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">try</SPAN> <SPAN class="punctuation token">{</SPAN> ESRI<SPAN class="punctuation token">.</SPAN>ArcGIS<SPAN class="punctuation token">.</SPAN>Carto<SPAN class="punctuation token">.</SPAN>IEnumLayer enumLayer <SPAN class="operator token">=</SPAN> map<SPAN class="punctuation token">.</SPAN><SPAN class="token function">get_Layers</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN>ESRI<SPAN class="punctuation token">.</SPAN>ArcGIS<SPAN class="punctuation token">.</SPAN>esriSystem<SPAN class="punctuation token">.</SPAN>UID<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">(</SPAN>uid<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">true</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="comment token">// Explicit Cast </SPAN> enumLayer<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Reset</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> ESRI<SPAN class="punctuation token">.</SPAN>ArcGIS<SPAN class="punctuation token">.</SPAN>Carto<SPAN class="punctuation token">.</SPAN>ILayer layer<SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">while</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN>layer <SPAN class="operator token">=</SPAN> enumLayer<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Next</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">!=</SPAN> <SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">)</SPAN> names<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Add</SPAN><SPAN class="punctuation token">(</SPAN>layer<SPAN class="punctuation token">.</SPAN>Name<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">catch</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="token class-name">System<SPAN class="punctuation token">.</SPAN>Exception</SPAN> ex<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN> System<SPAN class="punctuation token">.</SPAN>Diagnostics<SPAN class="punctuation token">.</SPAN>Debug<SPAN class="punctuation token">.</SPAN><SPAN class="token function">WriteLine</SPAN><SPAN class="punctuation token">(</SPAN>ex<SPAN class="punctuation token">.</SPAN>Message<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">return</SPAN> names<SPAN class="punctuation token">.</SPAN><SPAN class="token function">ToArray</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="punctuation token">}</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
サインインしたメンバーは投稿、更新のフォローなどができます。初めてですか?無料アカウントを登録してください。
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.