Skip to content

Commit ada02c3

Browse files
authored
Merge branch 'v.next' into chrisw/ShowShapefileMetadata
2 parents 960a241 + e7c6129 commit ada02c3

File tree

72 files changed

+1451
-181
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+1451
-181
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ This repository contains Swift sample code demonstrating the capabilities of the
1818

1919
## Requirements
2020

21-
* [ArcGIS Maps SDK for Swift](https://developers.arcgis.com/swift/) 200.7 (or newer)
22-
* [ArcGIS Maps SDK for Swift Toolkit](https://github.com/Esri/arcgis-maps-sdk-swift-toolkit) 200.7 (or newer)
23-
* Xcode 16.0 (or newer)
21+
* [ArcGIS Maps SDK for Swift](https://developers.arcgis.com/swift/) 200.8 (or newer)
22+
* [ArcGIS Maps SDK for Swift Toolkit](https://github.com/Esri/arcgis-maps-sdk-swift-toolkit) 200.8 (or newer)
23+
* Xcode 16.4 (or newer)
2424

2525
The *ArcGIS Maps SDK for Swift Samples app* has a *Target SDK* version of *17.0*, meaning that it can run on devices with *iOS 17.0* or newer.
2626

Samples.xcodeproj/project.pbxproj

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,8 @@
183183
1C43BC852A43783900509BF8 /* SetVisibilityOfSubtypeSublayerView.Model.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = 1C43BC7C2A43781100509BF8 /* SetVisibilityOfSubtypeSublayerView.Model.swift */; };
184184
1C43BC862A43783900509BF8 /* SetVisibilityOfSubtypeSublayerView.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = 1C43BC7E2A43781100509BF8 /* SetVisibilityOfSubtypeSublayerView.swift */; };
185185
1C43BC872A43783900509BF8 /* SetVisibilityOfSubtypeSublayerView.Views.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = 1C43BC792A43781100509BF8 /* SetVisibilityOfSubtypeSublayerView.Views.swift */; };
186+
1C68E0D42E21A89100B4DEBD /* EditGeometriesWithProgrammaticReticleToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C68E0D22E21A89100B4DEBD /* EditGeometriesWithProgrammaticReticleToolView.swift */; };
187+
1C68E0D52E21A89100B4DEBD /* EditGeometriesWithProgrammaticReticleToolView.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = 1C68E0D22E21A89100B4DEBD /* EditGeometriesWithProgrammaticReticleToolView.swift */; };
186188
1C7B85DF2DEE47F200B267EA /* QueryWithTimeExtentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C7B85DD2DEE47F200B267EA /* QueryWithTimeExtentView.swift */; };
187189
1C7B85E02DEE47F200B267EA /* QueryWithTimeExtentView.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = 1C7B85DD2DEE47F200B267EA /* QueryWithTimeExtentView.swift */; };
188190
1C7B85E32DF0B86F00B267EA /* SetAtmosphereEffectInSceneView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C7B85E12DF0B86F00B267EA /* SetAtmosphereEffectInSceneView.swift */; };
@@ -328,6 +330,8 @@
328330
95A3773C2C0F93770044D1CC /* AddRasterFromServiceView.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = 955271602C0E6749009B1ED4 /* AddRasterFromServiceView.swift */; };
329331
95A572192C0FDCC9006E8B48 /* ShowScaleBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A572182C0FDCC9006E8B48 /* ShowScaleBarView.swift */; };
330332
95A5721B2C0FDD34006E8B48 /* ShowScaleBarView.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = 95A572182C0FDCC9006E8B48 /* ShowScaleBarView.swift */; };
333+
95A86A5B2E1C50C2000BF570 /* ShowPortalUserInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A86A5A2E1C50BF000BF570 /* ShowPortalUserInfoView.swift */; };
334+
95A86A5D2E1C51A9000BF570 /* ShowPortalUserInfoView.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = 95A86A5A2E1C50BF000BF570 /* ShowPortalUserInfoView.swift */; };
331335
95ADF34F2C3CBAE800566FF6 /* EditFeatureAttachmentsView.Model.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = 9547085B2C3C719800CA8579 /* EditFeatureAttachmentsView.Model.swift */; };
332336
95B096A02E136365006AFA8F /* Dolmus3ds in Resources */ = {isa = PBXBuildFile; fileRef = 95B0969F2E136365006AFA8F /* Dolmus3ds */; settings = {ASSET_TAGS = (ShowLineOfSightBetweenGeoelements, ); }; };
333337
95D2EE0F2C334D1600683D53 /* ShowServiceAreaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95D2EE0E2C334D1600683D53 /* ShowServiceAreaView.swift */; };
@@ -579,6 +583,7 @@
579583
D7AE861F2AC39E7F0049B626 /* DisplayAnnotationView.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = D7AE861D2AC39DC50049B626 /* DisplayAnnotationView.swift */; };
580584
D7AE86202AC3A1050049B626 /* AddCustomDynamicEntityDataSourceView.Vessel.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = 7900C5F52A83FC3F002D430F /* AddCustomDynamicEntityDataSourceView.Vessel.swift */; };
581585
D7AE86212AC3A10A0049B626 /* GroupLayersTogetherView.GroupLayerListView.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = D75C35662AB50338003CD55F /* GroupLayersTogetherView.GroupLayerListView.swift */; };
586+
D7AECFDD2E31448100FD312A /* View+OnTeardown.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7AECFDC2E31448100FD312A /* View+OnTeardown.swift */; };
582587
D7B759B32B1FFBE300017FDD /* FavoritesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7B759B22B1FFBE300017FDD /* FavoritesView.swift */; };
583588
D7BA38912BFBC476009954F5 /* EditFeaturesWithFeatureLinkedAnnotationView.Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7BA38902BFBC476009954F5 /* EditFeaturesWithFeatureLinkedAnnotationView.Model.swift */; };
584589
D7BA38922BFBC4F0009954F5 /* EditFeaturesWithFeatureLinkedAnnotationView.Model.swift in Copy Source Code Files */ = {isa = PBXBuildFile; fileRef = D7BA38902BFBC476009954F5 /* EditFeaturesWithFeatureLinkedAnnotationView.Model.swift */; };
@@ -733,6 +738,7 @@
733738
dstSubfolderSpec = 7;
734739
files = (
735740
951896BD2E29B20500144F9B /* ShowShapefileMetadataView.swift in Copy Source Code Files */,
741+
95A86A5D2E1C51A9000BF570 /* ShowPortalUserInfoView.swift in Copy Source Code Files */,
736742
9520B2B62E135AEE00B3BEF9 /* ShowLineOfSightBetweenGeoelementsView.swift in Copy Source Code Files */,
737743
95FFEB442E06211B00543993 /* ShowGeodesicSectorAndEllipseView.swift in Copy Source Code Files */,
738744
885F89BA2E0B5F8900C2E456 /* ManageFeaturesView.swift in Copy Source Code Files */,
@@ -890,6 +896,7 @@
890896
D75F66392B48EB1800434974 /* SearchForWebMapView.swift in Copy Source Code Files */,
891897
D73FCFFA2B02A3C50006360D /* FindAddressWithReverseGeocodeView.swift in Copy Source Code Files */,
892898
D742E4952B04134C00690098 /* DisplayWebSceneFromPortalItemView.swift in Copy Source Code Files */,
899+
1C68E0D52E21A89100B4DEBD /* EditGeometriesWithProgrammaticReticleToolView.swift in Copy Source Code Files */,
893900
D7010EC12B05618400D43F55 /* DisplaySceneFromMobileScenePackageView.swift in Copy Source Code Files */,
894901
D737237B2AF5AE1A00846884 /* FindRouteInMobileMapPackageView.Models.swift in Copy Source Code Files */,
895902
D737237A2AF5AE1600846884 /* FindRouteInMobileMapPackageView.MobileMapView.swift in Copy Source Code Files */,
@@ -1130,6 +1137,7 @@
11301137
1C43BC792A43781100509BF8 /* SetVisibilityOfSubtypeSublayerView.Views.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetVisibilityOfSubtypeSublayerView.Views.swift; sourceTree = "<group>"; };
11311138
1C43BC7C2A43781100509BF8 /* SetVisibilityOfSubtypeSublayerView.Model.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetVisibilityOfSubtypeSublayerView.Model.swift; sourceTree = "<group>"; };
11321139
1C43BC7E2A43781100509BF8 /* SetVisibilityOfSubtypeSublayerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetVisibilityOfSubtypeSublayerView.swift; sourceTree = "<group>"; };
1140+
1C68E0D22E21A89100B4DEBD /* EditGeometriesWithProgrammaticReticleToolView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditGeometriesWithProgrammaticReticleToolView.swift; sourceTree = "<group>"; };
11331141
1C7B85DD2DEE47F200B267EA /* QueryWithTimeExtentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QueryWithTimeExtentView.swift; sourceTree = "<group>"; };
11341142
1C7B85E12DF0B86F00B267EA /* SetAtmosphereEffectInSceneView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetAtmosphereEffectInSceneView.swift; sourceTree = "<group>"; };
11351143
1C7B85E52DF37F7700B267EA /* SetFeatureLayerRenderingModeOnMapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetFeatureLayerRenderingModeOnMapView.swift; sourceTree = "<group>"; };
@@ -1208,6 +1216,7 @@
12081216
9579FCE92C3360BB00FC8A1D /* EditFeatureAttachmentsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditFeatureAttachmentsView.swift; sourceTree = "<group>"; };
12091217
95813E382DF88FD000342CBF /* SetMapImageLayerSublayerVisibilityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetMapImageLayerSublayerVisibilityView.swift; sourceTree = "<group>"; };
12101218
95A572182C0FDCC9006E8B48 /* ShowScaleBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShowScaleBarView.swift; sourceTree = "<group>"; };
1219+
95A86A5A2E1C50BF000BF570 /* ShowPortalUserInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShowPortalUserInfoView.swift; sourceTree = "<group>"; };
12111220
95B0969F2E136365006AFA8F /* Dolmus3ds */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Dolmus3ds; sourceTree = "<group>"; };
12121221
95D2EE0E2C334D1600683D53 /* ShowServiceAreaView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShowServiceAreaView.swift; sourceTree = "<group>"; };
12131222
95DEB9B52C127A92009BEC35 /* ShowViewshedFromPointOnMapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShowViewshedFromPointOnMapView.swift; sourceTree = "<group>"; };
@@ -1346,6 +1355,7 @@
13461355
D7ABA2F82A32579C0021822B /* MeasureDistanceInSceneView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MeasureDistanceInSceneView.swift; sourceTree = "<group>"; };
13471356
D7ABA2FE2A32881C0021822B /* ShowViewshedFromGeoelementInSceneView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShowViewshedFromGeoelementInSceneView.swift; sourceTree = "<group>"; };
13481357
D7AE861D2AC39DC50049B626 /* DisplayAnnotationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DisplayAnnotationView.swift; sourceTree = "<group>"; };
1358+
D7AECFDC2E31448100FD312A /* View+OnTeardown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+OnTeardown.swift"; sourceTree = "<group>"; };
13491359
D7B759B22B1FFBE300017FDD /* FavoritesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoritesView.swift; sourceTree = "<group>"; };
13501360
D7BA38902BFBC476009954F5 /* EditFeaturesWithFeatureLinkedAnnotationView.Model.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditFeaturesWithFeatureLinkedAnnotationView.Model.swift; sourceTree = "<group>"; };
13511361
D7BA38932BFBFC0F009954F5 /* QueryRelatedFeaturesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QueryRelatedFeaturesView.swift; sourceTree = "<group>"; };
@@ -1468,6 +1478,7 @@
14681478
D7A670D42DADB9630060E327 /* Bundle.swift */,
14691479
D7A670D62DADBC770060E327 /* EnvironmentValues+RequestReviewModel.swift */,
14701480
00181B452846AD7100654571 /* View+ErrorAlert.swift */,
1481+
D7AECFDC2E31448100FD312A /* View+OnTeardown.swift */,
14711482
D7142BC32DB71082004F87B7 /* View+PagePresentation.swift */,
14721483
);
14731484
path = Extensions;
@@ -1712,6 +1723,7 @@
17121723
D75E5EF02CC049D500252595 /* Edit features using feature forms */,
17131724
D762AF5E2BF6A7B900ECE3C7 /* Edit features with feature-linked annotation */,
17141725
D764B7DE2BE2F89D002E2F92 /* Edit geodatabase with transactions */,
1726+
1C68E0D32E21A89100B4DEBD /* Edit geometries with programmatic reticle tool */,
17151727
D73E619D2BDB21F400457932 /* Edit with branch versioning */,
17161728
D7D9FCF52BF2CC8600F972A2 /* Filter by definition expression or display filter */,
17171729
1C26ED122A859525009B7721 /* Filter features in scene */,
@@ -1803,6 +1815,7 @@
18031815
889F9DB42E133CDB0025A98E /* Show magnifier */,
18041816
D7337C5C2ABD137400A5D865 /* Show mobile map package expiration date */,
18051817
1C42E04129D2396B004FC4BE /* Show popup */,
1818+
95A86A5C2E1C5156000BF570 /* Show portal user info */,
18061819
1C9B74C429DB43580038B06F /* Show realistic light and shadows */,
18071820
E004A6F1284E4F80002A1FE6 /* Show result of spatial operations */,
18081821
E066DD392860C9EE004D3D5B /* Show result of spatial relationships */,
@@ -2318,6 +2331,14 @@
23182331
path = "Set visibility of subtype sublayer";
23192332
sourceTree = "<group>";
23202333
};
2334+
1C68E0D32E21A89100B4DEBD /* Edit geometries with programmatic reticle tool */ = {
2335+
isa = PBXGroup;
2336+
children = (
2337+
1C68E0D22E21A89100B4DEBD /* EditGeometriesWithProgrammaticReticleToolView.swift */,
2338+
);
2339+
path = "Edit geometries with programmatic reticle tool";
2340+
sourceTree = "<group>";
2341+
};
23212342
1C7B85DE2DEE47F200B267EA /* Query with time extent */ = {
23222343
isa = PBXGroup;
23232344
children = (
@@ -2815,6 +2836,14 @@
28152836
path = "Show scale bar";
28162837
sourceTree = "<group>";
28172838
};
2839+
95A86A5C2E1C5156000BF570 /* Show portal user info */ = {
2840+
isa = PBXGroup;
2841+
children = (
2842+
95A86A5A2E1C50BF000BF570 /* ShowPortalUserInfoView.swift */,
2843+
);
2844+
path = "Show portal user info";
2845+
sourceTree = "<group>";
2846+
};
28182847
95D2EE102C334D1D00683D53 /* Show service area */ = {
28192848
isa = PBXGroup;
28202849
children = (
@@ -4536,6 +4565,7 @@
45364565
4C81273E2DCA9E31006EF7D2 /* ApplyColormapRendererToRasterView.swift in Sources */,
45374566
10CFF4CA2DBAAFAC0027F144 /* AddFeatureLayerWithTimeOffsetView.swift in Sources */,
45384567
D74F03F02B609A7D00E83688 /* AddFeaturesWithContingentValuesView.Model.swift in Sources */,
4568+
95A86A5B2E1C50C2000BF570 /* ShowPortalUserInfoView.swift in Sources */,
45394569
E004A6F3284E4FEB002A1FE6 /* ShowResultOfSpatialOperationsView.swift in Sources */,
45404570
955AFAC42C10FD6F009C8FE5 /* ApplyMosaicRuleToRastersView.swift in Sources */,
45414571
D751018E2A2E962D00B8FA48 /* IdentifyLayerFeaturesView.swift in Sources */,
@@ -4559,6 +4589,7 @@
45594589
4D2ADC5A29C4F612003B367F /* ChangeMapViewBackgroundView.swift in Sources */,
45604590
95DEB9B62C127A92009BEC35 /* ShowViewshedFromPointOnMapView.swift in Sources */,
45614591
D7BA38972BFBFC0F009954F5 /* QueryRelatedFeaturesView.swift in Sources */,
4592+
1C68E0D42E21A89100B4DEBD /* EditGeometriesWithProgrammaticReticleToolView.swift in Sources */,
45624593
004421902DB9620200249FEE /* AddFeatureCollectionLayerFromQueryView.swift in Sources */,
45634594
D7ECF5982AB8BE63003FB2BE /* RenderMultilayerSymbolsView.swift in Sources */,
45644595
D769C2122A29019B00030F61 /* SetUpLocationDrivenGeotriggersView.swift in Sources */,
@@ -4663,6 +4694,7 @@
46634694
00A7A14A2A2FC5B700F035F7 /* DisplayContentOfUtilityNetworkContainerView.Model.swift in Sources */,
46644695
E004A6F0284E4B9B002A1FE6 /* DownloadVectorTilesToLocalCacheView.swift in Sources */,
46654696
00ABA94E2BF6721700C0488C /* ShowGridView.swift in Sources */,
4697+
D7AECFDD2E31448100FD312A /* View+OnTeardown.swift in Sources */,
46664698
1CAB8D4E2A3CEAB0002AA649 /* RunValveIsolationTraceView.swift in Sources */,
46674699
D7A737E02BABB9FE00B7C7FC /* AugmentRealityToShowHiddenInfrastructureView.swift in Sources */,
46684700
4D2ADC4329C26D05003B367F /* AddDynamicEntityLayerView.swift in Sources */,
@@ -4847,7 +4879,7 @@
48474879
"$(inherited)",
48484880
"@executable_path/Frameworks",
48494881
);
4850-
MARKETING_VERSION = 200.7.0;
4882+
MARKETING_VERSION = 200.8.0;
48514883
PRODUCT_BUNDLE_IDENTIFIER = "com.esri.arcgis-swift-sdk-samples";
48524884
PRODUCT_NAME = "ArcGIS Maps SDK Samples";
48534885
SDKROOT = iphoneos;
@@ -4877,7 +4909,7 @@
48774909
"$(inherited)",
48784910
"@executable_path/Frameworks",
48794911
);
4880-
MARKETING_VERSION = 200.7.0;
4912+
MARKETING_VERSION = 200.8.0;
48814913
PRODUCT_BUNDLE_IDENTIFIER = "com.esri.arcgis-swift-sdk-samples";
48824914
PRODUCT_NAME = "ArcGIS Maps SDK Samples";
48834915
SDKROOT = iphoneos;
@@ -4920,7 +4952,7 @@
49204952
repositoryURL = "https://github.com/Esri/arcgis-maps-sdk-swift-toolkit/";
49214953
requirement = {
49224954
kind = upToNextMinorVersion;
4923-
minimumVersion = 200.7.0;
4955+
minimumVersion = 200.8.0;
49244956
};
49254957
};
49264958
/* End XCRemoteSwiftPackageReference section */

Scripts/CI/common.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ def __init__(self, folder_path: str):
275275

276276
# A list of ArcGIS Portal Item IDs.
277277
self.offline_data = [] # Default to empty list.
278+
self.has_teardown = False # Only applies to samples that require async tear down (e.g., authentication).
278279

279280
self.folder_path = folder_path
280281
self.folder_name = get_folder_name_from_path(folder_path)
@@ -372,6 +373,9 @@ def flush_to_json_string(self) -> str:
372373
data["relevant_apis"] = self.relevant_apis
373374
data["snippets"] = self.snippets
374375
data["title"] = self.title
376+
if self.has_teardown:
377+
# Only write has_teardown when it is True.
378+
data["has_teardown"] = self.has_teardown
375379
if self.offline_data:
376380
# Only write offline_data when it is not empty.
377381
data["offline_data"] = self.offline_data

Scripts/CI/metadata_checker.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ def run_check(path: str) -> None:
5252
# The special rule not to compare the redirect_from.
5353
checker.redirect_from = json_data['redirect_from']
5454

55+
# The special rule not to compare has_teardown.
56+
if 'has_teardown' in json_data:
57+
checker.has_teardown = json_data['has_teardown']
58+
5559
# The special rule not to compare offline_data.
5660
if 'offline_data' in json_data:
5761
checker.offline_data = json_data['offline_data']

Scripts/GenerateSampleViewSourceCode.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ private struct SampleMetadata: Decodable {
4343
let keywords: [String]
4444
/// The relevant APIs of the sample.
4545
let relevantApis: [String]
46+
/// A Boolean value indicating whether a sample has an action that needs to
47+
/// be performed when its view disappears.
48+
let hasTeardown: Bool? // swiftlint:disable:this discouraged_optional_boolean
4649
}
4750

4851
extension SampleMetadata {
@@ -130,6 +133,7 @@ private let sampleStructs = sampleMetadata
130133
var snippets: [String] { \(sample.snippets) }
131134
var tags: Set<String> { \(sample.tags) }
132135
\(portalItemIDs.isEmpty ? "" : "var hasDependencies: Bool { true }\n")
136+
var hasTeardown: Bool { \(sample.hasTeardown ?? false) }
133137
func makeBody() -> AnyView { .init(\(sample.viewName)()) }
134138
}
135139
"""

Scripts/create-metadata-from-README.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ def flush_to_json_file(self, path_to_json: str) -> None:
4949
data["relevant_apis"] = self.relevant_apis
5050
data["snippets"] = self.snippets
5151
data["title"] = self.title
52+
if self.has_teardown:
53+
# Only write has_teardown when it is True.
54+
data["has_teardown"] = self.has_teardown
5255
if self.offline_data:
5356
# Only write offline_data when it is not empty.
5457
data["offline_data"] = self.offline_data

Shared/Samples/Add KML layer/AddKMLLayerView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ private extension AddKMLLayerView {
7676

7777
/// A KML layer created from a web URL.
7878
let urlLayer: KMLLayer = {
79-
let url = URL(string: "https://www.wpc.ncep.noaa.gov/kml/noaa_chart/WPC_Day1_SigWx.kml")!
79+
let url = URL(string: "https://www.spc.noaa.gov/products/outlook/SPC_outlooks.kml")!
8080
let kmlDataset = KMLDataset(url: url)
8181
return KMLLayer(dataset: kmlDataset)
8282
}()

Shared/Samples/Add KML layer/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ This sample uses the [US State Capitals](https://www.arcgis.com/home/item.html?i
3232

3333
This sample displays three different KML files:
3434

35-
* From URL: This is a map of the significant weather outlook produced by NOAA/NWS. It uses KML network links to always show the latest data.
35+
* From URL: This is a map of the convective outlook produced by NOAA/NWS Storm Prediction Center. It uses KML network links to always show the latest data.
3636
* From local file: This is a map of U.S. state capitals. It doesn't define an icon, so the default pushpin is used for the points.
3737
* From portal item: This is a map of U.S. states.
3838

0 commit comments

Comments
 (0)