Supported with: ArcGIS Desktop with ArcScan
Library dependencies: System, SystemUI, Geometry, Display, Server, Output, GeoDatabase, GISClient, DataSourcesFile, DataSourcesGDB, DataSourcesOleDB, DataSourcesRaster, GeoDatabaseDistributed, Carto, NetworkAnalyst, Schematic, Location, NetworkAnalysis, Controls, GeoAnalyst, 3DAnalyst, GlobeCore, SpatialAnalyst, Framework, GeoDatabaseUI, DisplayUI, OutputUI, Catalog, CatalogUI, CartoUI, DataSourcesRasterUI, ArcCatalogUI, ArcCatalog, ArcMapUI, Editor, LocationUI, ArcMap, EditorExt, SchematicUI, GeoDatabaseDistributedUI, Geoprocessing, GeoprocessingUI, NetworkAnalystUI, OutputExtensions, OutputExtensionsUI, SpatialAnalystUI, 3DAnalystUI, ArcScene, GlobeCoreUI, ArcGlobe
The ArcScan library supports the ArcScan raster to vector conversion extension to ArcMap, along with its associated user interface components, commands and tools. The ArcScan extension object, Vectorization, is implemented by this library.
Developers do not extend this library.
The objects that implement this functionality are grouped into a number of library subsystems. These library subsystems are:
The focal point within ArcScan is the Vectorization object. This identifies the source raster layer, which all ArcScan functions are applied to, and maintains the vectorization environment. The properties and methods on this object also perform the raster to vector conversion. This class is an ArcMap extension and can be referenced via IApplication::FindExtensionByName.
It is recommended that all ArcScan functions occur within an edit session and edit operation via the Editor object. The editor framework provides undo/redo capability and supporting functions for vector manipulation.
A typical workflow to perform a conversion through either raster snapping, trace, or batch vectorization involves initially establishing the vectorization environment by setting the target raster layer, IVectorizationLayers::CurrentLayer, and the vectorization properties, IVectorizationproperties and IVectorizationBatchProperties. The conversion methods can then be called from IVectorization (Snap, Trace, Vectorize).
The vectorization environment, IVectorizationBatchProperties, may be saved and retrieved as a style. This enables the quick saving and loading of the environment for different types of rasters to be converted (parcel, contour, or vegetation maps, for example). Prior to vectorization, particularly batch vectorization, images can be cleaned by removing noise or filling cells. The RasterCleanup object provides this cleanup environment. Like Vectorization, the RasterCleanup class is an extension and must be referenced through the application.
See the ArcScan developer sample Batch Vectorization on Screen for an example of a vectorization workflow.
The raster cleanup session works much like an edit session. RasterCleanupOperation objects are used within the cleanup session to modify the raster target layer. These work in a similar manner to the drawing tools found in common raster drawing packages. Noise removal can be achieved by selecting raster cells using the methods on Vectorization::IConnectedCells then erasing the selection.
See the example in IRasterCleanup
for more information.