Skip to content

Commit ff79adc

Browse files
authored
Merge pull request #259 from Esri/Ting/Fix-TUNLoad
[Fix] "false" utility network load problem
2 parents 6269a4c + 1f7a355 commit ff79adc

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

Shared/Samples/Trace utility network/TraceUtilityNetworkView.Model.swift

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)