cmdClearAnalysisLayer.vb
' Copyright 2012 ESRI ' ' All rights reserved under the copyright laws of the United States ' and applicable international laws, treaties, and conventions. ' ' You may freely redistribute and use this sample code, with or ' without modification, provided you include the original copyright ' notice and use restrictions. ' ' See the use restrictions. ' Imports Microsoft.VisualBasic Imports System.Runtime.InteropServices Imports System.Windows.Forms Imports ESRI.ArcGIS.Carto Imports ESRI.ArcGIS.Controls Imports ESRI.ArcGIS.NetworkAnalyst ' This command deletes all the network locations and analysis results from the selected NALayer. Namespace NAEngine <Guid("773CCD44-C46A-42eb-A1B2-E00C7B765783"), ClassInterface(ClassInterfaceType.None), ProgId("NAEngine.ClearAnalysisLayer")> _ Public NotInheritable Class cmdClearAnalysisLayer : Inherits ESRI.ArcGIS.ADF.BaseClasses.BaseCommand Private m_mapControl As IMapControl3 Public Sub New() MyBase.m_caption = "Clear Analysis Layer" End Sub Public Overrides Sub OnClick() If m_mapControl Is Nothing Then MessageBox.Show("Error: Map control is null for this command") Return End If ' Get the NALayer and corresponding NAContext of the layer that ' was right-clicked on in the table of contents ' m_MapControl.CustomProperty was set in frmMain.axTOCControl1_OnMouseDown Dim naLayer As INALayer = TryCast(m_mapControl.CustomProperty, INALayer) If naLayer Is Nothing Then MessageBox.Show("Error: NALayer was not set as the CustomProperty of the map control") Return End If Dim naEnv As IEngineNetworkAnalystEnvironment = CommonFunctions.GetTheEngineNetworkAnalystEnvironment() If naEnv Is Nothing OrElse naEnv.NAWindow Is Nothing Then MessageBox.Show("Error: EngineNetworkAnalystEnvironment is not properly configured") Return End If ' Set the active Analysis layer Dim naWindow As IEngineNAWindow = naEnv.NAWindow If Not naWindow.ActiveAnalysis Is naLayer Then naWindow.ActiveAnalysis = naLayer End If ' Remember what the current category is Dim originalCategory As IEngineNAWindowCategory = naWindow.ActiveCategory ' Loop through deleting all the items from all the categories Dim naClasses As INamedSet = naLayer.Context.NAClasses Dim naHelper As IEngineNetworkAnalystHelper = TryCast(naEnv, IEngineNetworkAnalystHelper) Dim i As Integer = 0 Do While i < naClasses.Count Dim category As IEngineNAWindowCategory = naWindow.CategoryByNAClassName(naClasses.Name(i)) naWindow.ActiveCategory = category naHelper.DeleteAllNetworkLocations() i += 1 Loop 'Reset to the original category naWindow.ActiveCategory = originalCategory ' Redraw the map m_mapControl.Refresh(esriViewDrawPhase.esriViewGeography, naLayer, m_mapControl.Extent) End Sub Public Overrides Sub OnCreate(ByVal hook As Object) ' The "hook" was set as a MapControl in formMain_Load m_mapControl = TryCast(hook, IMapControl3) End Sub End Class End Namespace