Create and use a raster layer made from a local raster file.
Use case
Rasters can be digital aerial photographs, imagery from satellites, digital pictures, or even scanned maps. An end-user will frequently need to import raster files acquired through various data-collection methods into their map to view and analyze the data.
How to use the sample
Upon launch, a raster will be loaded from a file and displayed in the map view. Pan and zoom to explore.
How it works
Create a Raster from a raster file.
Create a RasterLayer from the raster.
Add the raster layer to the map's operational layers.
Relevant API
Raster
RasterLayer
About the data
This sample shows a Shasta Raster hosted on ArcGIS Online.
Additional information
See the topic What is raster data? in the ArcMap documentation for more information about raster images.
Tags
data, image, import, layer, raster, visualization
Sample Code
AddRasterFromFileView.swift
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// Copyright 2022 Esri//// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at//// https://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.import ArcGIS
import SwiftUI
structAddRasterFromFileView: View{
/// Makes a map with a raster layer.privatestaticfuncmakeMap() -> Map {
/// A map with a standard imagery basemap style.let map =Map(basemapStyle: .arcGISImageryStandard)
// Gets the Shasta.tif file URL.let shastaURL =Bundle.main.url(forResource: "Shasta", withExtension: "tif", subdirectory: "raster-file/raster-file")!// Creates a raster with the file URL.let raster =Raster(fileURL: shastaURL)
// Creates a raster layer using the raster object.let rasterLayer =RasterLayer(raster: raster)
// Adds the raster layer to the map's operational layer. map.addOperationalLayer(rasterLayer)
return map
}
/// A map with a standard imagery basemap style.@StateObjectprivatevar map = makeMap()
/// A Boolean value indicating whether to show an alert.@Stateprivatevar isShowingAlert =false/// The error shown in the alert.@Stateprivatevar error: Error? {
didSet { isShowingAlert = error !=nil }
}
/// The current viewpoint of the map view.@Stateprivatevar viewpoint: Viewpoint?
var body: someView {
// Creates a map view with a viewpoint to display the map.MapView(map: map, viewpoint: viewpoint)
.onViewpointChanged(kind: .centerAndScale) { viewpoint =$0 }
.alert(isPresented: $isShowingAlert, presentingError: error)
.task {
do {
let rasterLayer = map.operationalLayers.first!tryawait rasterLayer.load()
viewpoint =Viewpoint(center: rasterLayer.fullExtent!.center, scale: 8e4)
} catch {
// Presents an error message if the raster fails to load.self.error = error
}
}
}
}