Specify a map’s spatial reference.

Use case
Choosing the correct spatial reference is important for ensuring accurate projection of data points to a map.
How to use the sample
Pan and zoom around the map. Observe how the map is displayed using the World Bonne spatial reference.
How it works
- Instantiate a
Mapobject using a spatial reference e.g.Map(spatialReference: SpatialReference(wkid: WKID(54024)). - Instantiate a
Basemapobject using anArcGISMapImageLayerobject. - Set the basemap to the map.
- Set the map to a
MapViewobject.
The ArcGIS map image layer will now use the spatial reference set to the map (World Bonne (WKID: 54024)) and not its default spatial reference.
Relevant API
- ArcGISMapImageLayer
- Basemap
- Map
- MapView
- SpatialReference
Additional information
Operational layers will automatically project to this spatial reference when possible.
Tags
project, WKID
Sample code
SetSpatialReferenceView.swift
// Copyright 2024 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 ArcGISimport SwiftUI
struct SetSpatialReferenceView: View { /// A map with spatial reference and a basemap. @State private var map: Map = { let map = Map(spatialReference: .worldBonne) map.basemap = Basemap( baseLayer: ArcGISMapImageLayer(url: .worldCities) ) return map }()
var body: some View { MapView(map: map) }}
private extension SpatialReference { /// The spatial reference for the sample, World Bonne (WKID: 54024). static var worldBonne: Self { SpatialReference(wkid: WKID(54024)!)! }}
private extension URL { /// The URL to the World Cities map service for the image layer. static var worldCities: URL { URL(string: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/SampleWorldCities/MapServer")! }}
#Preview { SetSpatialReferenceView()}