@@ -22,7 +22,7 @@ extension TraceUtilityNetworkView {
2222
2323 /// The domain network for this sample.
2424 private var electricDistribution : UtilityDomainNetwork ? {
25- network? . definition? . domainNetwork ( named: " ElectricDistribution " )
25+ network. definition? . domainNetwork ( named: " ElectricDistribution " )
2626 }
2727
2828 /// The URLs of the relevant feature layers for this sample.
@@ -69,8 +69,8 @@ extension TraceUtilityNetworkView {
6969 }
7070
7171 /// The utility network for this sample.
72- private var network : UtilityNetwork ? {
73- map. utilityNetworks. first
72+ private var network : UtilityNetwork {
73+ map. utilityNetworks. first!
7474 }
7575
7676 /// The parameters for the pending trace.
@@ -140,10 +140,10 @@ extension TraceUtilityNetworkView {
140140 /// - mapPoint: The location on the map where the feature was discovered. If the feature is a
141141 /// junction type, the feature's geometry will be used instead.
142142 func add( _ feature: ArcGISFeature , at mapPoint: Point ) {
143- if let element = network? . makeElement ( arcGISFeature: feature) ,
143+ if let element = network. makeElement ( arcGISFeature: feature) ,
144144 let geometry = feature. geometry,
145145 let table = feature. table as? ArcGISFeatureTable ,
146- let networkSource = network? . definition? . networkSource ( named: table. tableName) {
146+ let networkSource = network. definition? . networkSource ( named: table. tableName) {
147147 switch networkSource. kind {
148148 case . junction:
149149 add ( element, at: geometry)
@@ -197,11 +197,16 @@ extension TraceUtilityNetworkView {
197197 func setup( ) async {
198198 do {
199199 try await ArcGISEnvironment . authenticationManager. arcGISCredentialStore. add ( . publicSample)
200- try await network? . load ( )
200+ try await map. load ( )
201+ try await network. load ( )
201202 } catch {
202203 await updateUserHint ( withMessage: " An error occurred while loading the network. " )
203204 return
204205 }
206+
207+ // Clears all sublayers then add the layers relevant for the demo.
208+ map. removeAllOperationalLayers ( )
209+
205210 featureLayerURLs. forEach { url in
206211 let table = ServiceFeatureTable ( url: url)
207212 let layer = FeatureLayer ( featureTable: table)
@@ -222,7 +227,7 @@ extension TraceUtilityNetworkView {
222227 /// - Note: Elements are grouped by network source prior to selection so that all selections
223228 /// per operational layer can be made at once.
224229 func trace( ) async throws {
225- guard let network , let pendingTraceParameters = pendingTraceParameters else { return }
230+ guard let pendingTraceParameters = pendingTraceParameters else { return }
226231 let traceResults = try await network
227232 . trace ( using: pendingTraceParameters)
228233 . compactMap { $0 as? UtilityElementTraceResult }
0 commit comments