Set the terrain surface with elevation described by a raster file.
Use case
In a scene view, the terrain surface is what the basemap, operational layers, and graphics are draped onto. For example, when viewing a scene in a mountainous region, applying a terrain surface to the scene will help in recognizing the slopes, valleys, and elevated areas.
How to use the sample
When loaded, the sample will show a scene with a terrain surface applied. Pan and zoom to explore the scene and observe how the terrain surface allows visualizing elevation differences.
How it works
- Create a
Scene
and add it to aSceneView
. - Create a
RasterElevationSource
with a list of local raster file paths, in this case a single .dt2 file - Add the raster elevation source to the scene's base surface.
Relevant API
- RasterElevationSource
- Surface
Offline data
Read more about how to set up the sample's offline data here.
Link | Local Location |
---|---|
MontereyElevation Raster | <userhome> /ArcGIS/Runtime/Data/raster/MontereyElevation.dt2 |
Additional information
Supported raster formats include:
- ASRP/USRP
- CIB1, 5, 10
- DTED0, 1, 2
- GeoTIFF
- HFA
- HRE
- IMG
- JPEG
- JPEG 2000
- NITF
- PNG
- RPF
- SRTM1, 2
Tags
3D, Raster, Elevation, Surface
Sample Code
// [WriteFile Name=CreateTerrainSurfaceFromLocalRaster, Category=Scenes]
// [Legal]
// Copyright 2019 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]
import QtQuick 2.6
import Esri.ArcGISRuntime 100.15
import Esri.ArcGISExtras 1.1
Rectangle {
id: rootRectangle
clip: true
width: 800
height: 600
readonly property string montereyRasterElevationPath: System.userHomePath + "/ArcGIS/Runtime/Data/raster/MontereyElevation.dt2"
SceneView {
id: sceneView
anchors.fill: parent
Scene {
id: scene
Basemap {
initStyle: Enums.BasemapStyleArcGISImageryStandard
}
Surface {
RasterElevationSource{
// RasterElevationSource takes a list of raster files. Here we provide a list cotaining just a single file.
fileUrls: [montereyRasterElevationPath]
// Hook up success/error reporting for the Elevation Source load
onLoadStatusChanged: reportLoadStatus(loadStatus, loadError)
}
}
}
Component.onCompleted: {
// Set the focus on SceneView to initially enable keyboard navigation
forceActiveFocus();
// Once the scene view has loaded, apply the camera.
setViewpointCameraAndWait(camera);
}
}
function reportLoadStatus(loadStatus, loadError){
if(loadStatus === Enums.LoadStatusLoaded){
console.info("Loaded raster elevation source succesfully");
}
else if(loadStatus === Enums.LoadStatusFailedToLoad){
console.warn("Error loading elevation source : ", loadError.message, loadError.additionalMessage);
}
}
// Create the camera to be used as the scene view's viewpoint, looking at Monterey, California..
Camera {
id: camera
location: Point {
x: -121.80 // Longitude
y: 36.51 // Latitude
z: 300.0 // Altiude
spatialReference: SpatialReference { wkid: 4326 }
}
heading: 10.0
pitch: 70.0
roll: 0.0
}
}