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
When the sample starts, a raster will be loaded from a file and displayed in the map view.
How it works
Create a Raster from a raster file.
Create a RasterLayer from the raster.
Add it as an operational layer with map.getOperationalLayers().add(rasterLayer).
Relevant API
Raster
RasterLayer
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
RasterLayerFileSample.java
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
* Copyright 2017 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.
*/package com.esri.samples.raster_layer_file;
import java.io.File;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import com.esri.arcgisruntime.ArcGISRuntimeEnvironment;
import com.esri.arcgisruntime.layers.RasterLayer;
import com.esri.arcgisruntime.loadable.LoadStatus;
import com.esri.arcgisruntime.mapping.ArcGISMap;
import com.esri.arcgisruntime.mapping.BasemapStyle;
import com.esri.arcgisruntime.mapping.view.MapView;
import com.esri.arcgisruntime.raster.Raster;
publicclassRasterLayerFileSampleextendsApplication{
private MapView mapView;
@Overridepublicvoidstart(Stage stage){
try {
// create stack pane and application scene StackPane stackPane = new StackPane();
Scene scene = new Scene(stackPane);
// set title, size, and add scene to stage stage.setTitle("Raster Layer File");
stage.setWidth(800);
stage.setHeight(700);
stage.setScene(scene);
stage.show();
// authentication with an API key or named user is required to access basemaps and other location services String yourAPIKey = System.getProperty("apiKey");
ArcGISRuntimeEnvironment.setApiKey(yourAPIKey);
// create a raster from a local raster file Raster raster = new Raster(new File(System.getProperty("data.dir"), "./samples-data/raster/Shasta.tif").getAbsolutePath());
// create a raster layer RasterLayer rasterLayer = new RasterLayer(raster);
// create a map with the standard imagery basemap style ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_IMAGERY_STANDARD);
// create a map view and set the map to it mapView = new MapView();
mapView.setMap(map);
// add the raster layer to the map's operational layers map.getOperationalLayers().add(rasterLayer);
// set viewpoint on the raster rasterLayer.addDoneLoadingListener(() -> {
if (rasterLayer.getLoadStatus() == LoadStatus.LOADED) {
mapView.setViewpointGeometryAsync(rasterLayer.getFullExtent(), 150);
} else {
Alert alert = new Alert(Alert.AlertType.ERROR, "Raster Layer Failed to Load!");
alert.show();
}
});
// add the map view to stack pane stackPane.getChildren().addAll(mapView);
} catch (Exception e) {
// on any error, display the stack trace. e.printStackTrace();
}
}
/**
* Stops and releases all resources used in application.
*/@Overridepublicvoidstop(){
if (mapView != null) {
mapView.dispose();
}
}
/**
* Opens and runs application.
*
* @param args arguments passed to this application
*/publicstaticvoidmain(String[] args){
Application.launch(args);
}
}