Simple marker symbol

View inC++QMLView on GitHubSample viewer app

Show a simple marker symbol on a map.

screenshot

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

  1. Create a SimpleMarkerSymbol(SimpleMarkerSymbolStyle, color, size).
  2. Create a Graphic passing in a Point and the simple marker symbol as parameters.
  3. Add the graphic to the graphics overlay with graphicsOverlay::graphics()::append(graphic).

Relevant API

  • Graphic
  • GraphicsOverlay
  • Point
  • SimpleMarkerSymbol

Tags

symbol

Sample Code

Simple_Marker_Symbol.cppSimple_Marker_Symbol.cppSimple_Marker_Symbol.hSimple_Marker_Symbol.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
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);
}

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