Display common symbols for all graphics in a graphics overlay with a renderer.
Use case
Graphics are often used to display data that changes location regularly because they are held in memory instead of being persisted to the map. When a number of graphics are required to share the same style, a simple renderer can be applied to the graphics overlay containing the graphics. For example, the location of mobile taxis from a same company could be plotted on a map with each taxi marked by a relevant symbol.
How to use the sample
The sample loads with a predefined simple renderer, which displays a red cross simple marker symbol for the graphics in the graphics overlay.
How it works
A GraphicsOverlay
is added to the MapView
. A SimpleRenderer
is created in the GraphicsOverlay
which sets a red cross SimpleMarkerSymbol
as its symbol. Three Graphic
s are added using Point
s.
- Create a
GraphicsOverlay
. - Create a number of
Point
objects with x, y and spatial reference parameters. - Create a
SimpleMarkerSymbol
passing in aSimpleMarkerSymbolStyle
, color and size as parameters. - Create a
SimpleRenderer
and set theSimpleMarkerSymbol
as its symbol. - Create a number of
Graphic
objects with the points initiated in step 2.
Relevant API
- Graphic
- GraphicsOverlay
- Point
- SimpleMarkerSymbol
- SimpleRenderer
Additional information
Renderers are used to display graphics that don't already have a symbol set. A renderer will not override a graphic's symbol if one has been set.
Tags
graphics, marker, renderer, symbol, symbolize, symbology
Sample Code
// [WriteFile Name=Simple_Renderer, Category=DisplayInformation]
// [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]
import QtQuick 2.6
import Esri.ArcGISRuntime 100.15
Rectangle {
clip: true
width: 800
height: 600
// Map view UI presentation at top
MapView {
id: mapView
anchors.fill: parent
Component.onCompleted: {
// Set the focus on MapView to initially enable keyboard navigation
forceActiveFocus();
}
Map {
Basemap {
initStyle: Enums.BasemapStyleArcGISImageryStandard
}
Envelope {
id: envelope
xMin: -110.828140
yMin: 44.460458
xMax: -110.829381
yMax: 44.462735
spatialReference: Factory.SpatialReference.createWgs84()
}
// set initial Viewpoint
onLoadStatusChanged: {
if (loadStatus === Enums.LoadStatusLoaded)
mapView.setViewpointGeometryAndPadding(envelope, 50);
}
}
// create graphic overlay
GraphicsOverlay {
// set renderer for overlay
SimpleRenderer {
// set symbol as red cross
SimpleMarkerSymbol {
style: Enums.SimpleMarkerSymbolStyleCross
color: "red"
size: 12
}
}
// add the points to be rendered
Graphic {
// Old Faithful
Point {
x: -110.828140
y: 44.460458
spatialReference: Factory.SpatialReference.createWgs84()
}
}
Graphic {
// Cascade Geyser
Point {
x: -110.829004
y: 44.462438
spatialReference: Factory.SpatialReference.createWgs84()
}
}
Graphic {
// Plume Geyser
Point {
x: -110.829381
y: 44.462735
spatialReference: Factory.SpatialReference.createWgs84()
}
}
}
}
}