View in QML C++ View on GitHub Sample viewer app
Show a simple marker symbol on a map.
Use case
Customize the appearance of a point suitable for the data. For example, a point on the map styled with a circle could represent a drilled borehole location, whereas a cross could represent the location of an old coal mine shaft.
How to use the sample
The sample loads with a predefined simple marker symbol, set as a red circle.
How it works
Create a SimpleMarkerSymbol(SimpleMarkerSymbolStyle, color, size)
.
Create a Graphic
passing in a Point
and the simple marker symbol as parameters.
Add the graphic to the graphics overlay with graphicsOverlay::graphics()::append(graphic)
.
Relevant API
Graphic
GraphicsOverlay
Point
SimpleMarkerSymbol
symbol
Sample CodeSimple_Marker_Symbol.cpp Simple_Marker_Symbol.cpp Simple_Marker_Symbol.h Simple_Marker_Symbol.qml
Use dark colors for code blocks Copy
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
// [WriteFile Name=Simple_Marker_Symbol, 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]
# ifdef PCH_BUILD
# include "pch.hpp"
# endif // PCH_BUILD
# include "Simple_Marker_Symbol.h"
# include "Graphic.h"
# include "GraphicsOverlay.h"
# include "Point.h"
# include "Map.h"
# include "MapQuickView.h"
# include "SimpleMarkerSymbol.h"
# include "SpatialReference.h"
# include "Viewpoint.h"
# include "MapViewTypes.h"
# include "MapTypes.h"
# include "GraphicListModel.h"
# include "GraphicsOverlayListModel.h"
# include "SymbolTypes.h"
using namespace Esri::ArcGISRuntime;
Simple_Marker_Symbol:: Simple_Marker_Symbol (QQuickItem* parent) :
QQuickItem (parent)
{
}
Simple_Marker_Symbol::~ Simple_Marker_Symbol () = default ;
void Simple_Marker_Symbol::init ()
{
qmlRegisterType<MapQuickView>( "Esri.Samples" , 1 , 0 , "MapView" );
qmlRegisterType<Simple_Marker_Symbol>( "Esri.Samples" , 1 , 0 , "Simple_Marker_SymbolSample" );
}
void Simple_Marker_Symbol::componentComplete ()
{
QQuickItem:: componentComplete ();
// find QML MapView component
m_mapView = findChild<MapQuickView*>( "mapView" );
m_mapView-> setWrapAroundMode (WrapAroundMode::Disabled);
// create a map using the imagery basemap
m_map = new Map (BasemapStyle::ArcGISImageryStandard, this );
// set initial viewpoint
m_map-> setInitialViewpoint ( Viewpoint ( Point ( -226773 , 6550477 , SpatialReference:: webMercator ()), 7500 ));
// create a GraphicsOverlay
m_graphicsOverlay = new GraphicsOverlay ( this );
// create red circle graphic
Graphic* redCircle = new Graphic ( Point ( -226773 , 6550477 , SpatialReference:: webMercator ()), this );
SimpleMarkerSymbol* redCircleSymbol = new SimpleMarkerSymbol (SimpleMarkerSymbolStyle::Circle, QColor ( "red" ), 12 , this );
redCircle-> setSymbol (redCircleSymbol);
// append to graphics overlay
m_graphicsOverlay-> graphics ()-> append (redCircle);
// add the GraphicsOverlay to map view
m_mapView-> graphicsOverlays ()-> append (m_graphicsOverlay);
// set map to map view
m_mapView-> setMap (m_map);
}