1

I'm running batch processing on several datasets using a standalone EXE written in .NET. There are many output files for each dataset (>25 featureclasses/rasters). For every dataset I would like to grab a few specific outputs and create JPEG images of them for simple quality control. Ideally I would combine a few of the featureclasses together and create an image of the combination as if I were exporting an image of several layers as you can do using the Arc UI. I imagine that there will be a few steps involved in accomplishing this - can someone point me in the right direction?

For the sake of simplicity, you can assume that I have the full path to the files I want, which are stored in a FGDB on a drive. I can also derive the approximate extent of these featureclasses from the largest of them, so I can set a view extent.

For example:

I have just run the extension and created a series of output files which are stored in a FGDB. These featureclasses/rasters all cover the same discrete area and are projected.

Outputs (making these up for simplicity):

1) DEM of the area (represents the full extent).

2) Polyline road network.

3) Polygon building footprints.

4) Point featureclass representing manhole covers.

What to accomplish:

Combine all of the files in the correct order (featureclasses overtop of the DEM) and save a JPEG file.

EDIT:

My extension runs as an EXE (not a toolbar) and doesn't actually open the Arc UI - it merely consumes the licenses and does the processing in the background. So, do I have access to ActiveView if I haven't "launched" the UI? Essentially, I don't have a TOC to populate with layers.

asked Oct 20, 2011 at 17:03

1 Answer 1

1

If you are using ArcObjects to add and arrange the order of layers in the ArcMap TOC, I would first search for the specific names that you want to export out as a group. Then turn off all the layers except for those that you want to export out e.g.

'Search for MyLayer1 and MyLayer2 in the ArcMap TOC
 Dim pFLayer As IFeatureLayer = Nothing
 Dim pLayer As ILayer
 Dim pEnumLayer As IEnumLayer
 m_pMap2 = m_pMxDoc2.ActiveView.FocusMap
 pEnumLayer = m_pMap2.Layers
 pLayer = pEnumLayer.Next
 Do Until pLayer Is Nothing
 If pLayer.Name = "MyLayer1" AND pLayer.Name = "MyLayer2" Then
 TurnOffLayers() 
ExportActiveView()
 Else
 Exit Sub
 End If
 pLayer = pEnumLayer.Next
 Loop
End Sub

If those layers are present then you can use the ExportActiveView code to export out the jpg images. Here is the link for the ExportActiveView Code.

Edit

You could add those layers into an ArcMap project, save the mxd, and export out the map using python/arcpy script.

Add Layers

Export Map

OR

if you have access to the extension code you could use 'Call Shell' code to open up ArcMap, and add your layers in the TOC using ArcObjects.

A python script might be a better option.

answered Oct 20, 2011 at 18:35
4
  • Thanks for the response. Will this method work if I don't have the Arc UI open? I'll edit my question to elaborate, but my extension runs as an EXE and doesn't actually open the Arc UI - it merely consumes the licenses and does the processing in the background. So, do I have access to ActiveView if I haven't "launched" the UI? Essentially, I don't have a TOC to populate with layers. Commented Oct 20, 2011 at 18:43
  • @Radar, See my Edit. Commented Oct 20, 2011 at 19:10
  • @radar Usually "extension" means something that is running in same process as the arcmap.exe (or arccatalog.exe). If this is not the case you probably should re-phrase you question, changing "extension" to "standalone exe". Commented Oct 20, 2011 at 19:12
  • artwork21 - thanks for updating and addressing my comment. Your answer got me to where I need to be - I'll with my resulting methods once I get the finer details sorted out. @Kirk - I suppose the semantics are a little odd given how I've implemented this EXE. I'll update based on your suggestions. Commented Oct 20, 2011 at 19:22

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.