Skip to content

Set map spatial reference

View on GitHubSample viewer app

Specify a map's spatial reference.

screenshot

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

  1. Create a Map object using a spatial reference e.g. Map(SpatialReference.create(54024)).
  2. Create a Basemap object using an ArcGISMapImageLayer object.
  3. Set the base map to the map.
  4. Set the map to a MapView object.

The ArcGIS map image layer will now use the spatial reference set to the ArcGIS map (World Bonne (WKID: 54024)) and not it's 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

SetMapSpatialReference.cppSetMapSpatialReference.cppSetMapSpatialReference.hSetMapSpatialReference.qml
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 65 66 67 68 69 70 71 72 73 74 // [WriteFile Name=SetMapSpatialReference, Category=Maps] // [Legal] // Copyright 2016 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 // http://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. // [Legal]  #ifdef PCH_BUILD #include "pch.hpp" #endif // PCH_BUILD  // sample headers #include "SetMapSpatialReference.h"  // ArcGIS Maps SDK headers #include "ArcGISMapImageLayer.h" #include "Basemap.h" #include "Map.h" #include "MapQuickView.h" #include "MapViewTypes.h" #include "SpatialReference.h"  // Qt headers #include <QUrl>  using namespace Esri::ArcGISRuntime;  SetMapSpatialReference::SetMapSpatialReference(QQuickItem* parent) :  QQuickItem(parent) { }  SetMapSpatialReference::~SetMapSpatialReference() = default;  void SetMapSpatialReference::init() {  qmlRegisterType<MapQuickView>("Esri.Samples", 1, 0, "MapView");  qmlRegisterType<SetMapSpatialReference>("Esri.Samples", 1, 0, "SetMapSpatialReferenceSample"); }  void SetMapSpatialReference::componentComplete() {  QQuickItem::componentComplete();   // find QML MapView component  m_mapView = findChild<MapQuickView*>("mapView");  m_mapView->setWrapAroundMode(WrapAroundMode::Disabled);   // Create a new map with the spatial reference  m_map = new Map(SpatialReference(54024), this);   // create the URL pointing to the map image layer  QUrl imageLayerUrl("https://sampleserver6.arcgisonline.com/arcgis/rest/services/SampleWorldCities/MapServer");   // construct the ArcGISMapImageLayer using the URL  m_imageLayer = new ArcGISMapImageLayer(imageLayerUrl, this);   // create a Basemap and pass in the ArcGISMapImageLayer  m_basemap = new Basemap(m_imageLayer, this);   // set the ArcGISMapImageLayer as basemap  m_map->setBasemap(m_basemap);  // set map on the map view  m_mapView->setMap(m_map); }

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.