GraphicsOverlay Class

  • GraphicsOverlay
  • class Esri::ArcGISRuntime::GraphicsOverlay

    Contains a collection of graphics for display in a map or scene view. More...

    Header: #include <GraphicsOverlay.h>
    Since: Esri::ArcGISRuntime 100.0
    Inherits: Esri::ArcGISRuntime::Object and Esri::ArcGISRuntime::PopupSource

    This class was introduced in Esri::ArcGISRuntime 100.0.

    Public Functions

    GraphicsOverlay(QObject *parent = nullptr)
    virtual ~GraphicsOverlay() override
    void clearSelection()
    Esri::ArcGISRuntime::Envelope extent() const
    Esri::ArcGISRuntime::GraphicListModel *graphics() const
    bool isLabelsEnabled() const
    bool isScaleSymbols() const
    bool isVisible() const
    Esri::ArcGISRuntime::LabelDefinitionListModel *labelDefinitions() const
    double maxScale() const
    double minScale() const
    float opacity() const
    QString overlayId() const
    Esri::ArcGISRuntime::Renderer *renderer() const
    Esri::ArcGISRuntime::GraphicsRenderingMode renderingMode() const
    Esri::ArcGISRuntime::LayerSceneProperties sceneProperties() const
    void selectGraphics(const QList<Esri::ArcGISRuntime::Graphic *> &graphics)
    QList<Esri::ArcGISRuntime::Graphic *> selectedGraphics() const
    void setLabelsEnabled(bool labelsEnabled)
    void setMaxScale(double maxScale)
    void setMinScale(double minScale)
    void setOpacity(float opacity)
    void setOverlayId(const QString &overlayId)
    void setRenderer(Esri::ArcGISRuntime::Renderer *renderer)
    void setRenderingMode(Esri::ArcGISRuntime::GraphicsRenderingMode value)
    void setScaleSymbols(bool scaleSymbols)
    void setSceneProperties(const Esri::ArcGISRuntime::LayerSceneProperties &sceneProperties)
    void setVisible(bool visible)
    void unselectGraphics(const QList<Esri::ArcGISRuntime::Graphic *> &graphics)

    Reimplemented Public Functions

    virtual bool isPopupEnabled() const override
    virtual Esri::ArcGISRuntime::PopupDefinition *popupDefinition() const override
    virtual void setPopupDefinition(Esri::ArcGISRuntime::PopupDefinition *popupDefinition) override
    virtual void setPopupEnabled(bool popupEnabled) override

    Detailed Description

    Graphics can represent temporary data in your application, such as the results of a query or an analysis, or they can be used to highlight existing content in the map.

    Each graphic contains a geometry describing the location and the shape of the graphic. A graphics overlay can contain graphics of various geometry types and can define symbology for the graphics it contains using its GraphicsOverlay::renderer. Each graphic can be associated with a symbol which controls how the graphic looks. Alternatively, the overlay can be associated with a renderer which manages the appearance of all graphics in the graphics overlay that do not have specific symbols associated with each of them. Graphics overlays display on top of all other data in a map or scene view.

    A graphic's Z-index is used to define its draw order in the collection and is relevant for display in a two dimensional map. For dynamic 3D rendering (in a scene), graphic display order is determined by the distance to the camera rather than by Z-index. Z-index is considered, however, when using static rendering in a scene (draping graphics on the surface, in other words).

    If Z-index for graphics is not set, they will usually render in the order in which they were added to the graphics overlay, the first added is rendered first and subsequent graphics on top. In rare cases, the rendering algorithm may change the display order to provide more efficient rendering. If ordering is important, set the Graphic::zIndex explicitly on graphics. You can also place graphics of the same geometry type in their own graphics overlay and manage the order of the overlays in the view.

    Example:

    Create a graphics overlay and add a graphic to the overlay:

    // create graphics overlay
    GraphicsOverlay* graphicsOverlay = new GraphicsOverlay(this);
    
    // create a graphic
    Point point(0, 0);
    SimpleMarkerSymbol* simpleMarker = new SimpleMarkerSymbol(SimpleMarkerSymbolStyle::X, QColor(Qt::red), 15.0, this);
    QVariantMap attr;
    attr["name"] = "Null Island";
    Graphic* graphic = new Graphic(point, attr, simpleMarker, this);
    
    //add the graphic to the graphics overlay
    graphicsOverlay->graphics()->append(graphic);

    See also Graphic, GraphicsOverlayListModel, and PopupSource.

    Member Function Documentation

    GraphicsOverlay::GraphicsOverlay(QObject *parent = nullptr)

    Constructor with an optional parent.

    [override virtual] GraphicsOverlay::~GraphicsOverlay()

    Destructor

    void GraphicsOverlay::clearSelection()

    Clears the current graphics selection.

    Esri::ArcGISRuntime::Envelope GraphicsOverlay::extent() const

    Gets the extent of the GraphicsOverlay.

    Returns the extent of all graphics in the overlay.

    Esri::ArcGISRuntime::GraphicListModel *GraphicsOverlay::graphics() const

    Gets the list of graphics in the overlay as a GraphicsListModel.

    Returns a list model of the graphics in the overlay.

    bool GraphicsOverlay::isLabelsEnabled() const

    Returns true if graphics will be labeled in this overlay.

    This function was introduced in Esri::ArcGISRuntime 100.1.

    [override virtual] bool GraphicsOverlay::isPopupEnabled() const

    Reimplements: PopupSource::isPopupEnabled() const.

    Returns whether the Popup is enabled on the PopupSource.

    bool GraphicsOverlay::isScaleSymbols() const

    Returns whether the overlay's symbols and labels honor the Map reference scale when displayed in a MapView.

    If the Map has a positive reference scale, and the overlay honors it, then symbols and labels will be drawn at their specified size when the viewing scale is the same as the reference scale, and will grow or shrink as the view zooms in or out, to keep the symbol a fixed size on the map.

    If the Map has no reference scale, the reference scale is zero or the GraphicOverlay's scaleSymbols property is false, then the symbols and labels will be drawn at their fixed screen size.

    The default value is false.

    GraphicsOverlay::scaleSymbols only affects display in a MapView.

    The symbols and labels will be displayed at fixed screen size in a SceneView.

    This function was introduced in Esri::ArcGISRuntime 100.7.

    bool GraphicsOverlay::isVisible() const

    Gets whether the graphics overlay is visible.

    Returns true if the graphics overlay is visible.

    Esri::ArcGISRuntime::LabelDefinitionListModel *GraphicsOverlay::labelDefinitions() const

    Returns the list model of label definitions in the GraphicsOverlay.

    This function was introduced in Esri::ArcGISRuntime 100.1.

    double GraphicsOverlay::maxScale() const

    Gets the maximum scale at which the graphics should be displayed.

    Returns the maximum scale.

    See also setMaxScale().

    double GraphicsOverlay::minScale() const

    Gets the minimum scale at which the graphics should be displayed.

    Returns the minimum scale.

    See also setMinScale().

    float GraphicsOverlay::opacity() const

    Gets the opacity of the graphics.

    Returns the opacity as a value from 0.0 (transparent) to 1.0 (opaque).

    See also setOpacity().

    QString GraphicsOverlay::overlayId() const

    Gets the graphics overlay's ID.

    This function was introduced in Esri::ArcGISRuntime 100.2.

    See also setOverlayId().

    [override virtual] Esri::ArcGISRuntime::PopupDefinition *GraphicsOverlay::popupDefinition() const

    Reimplements: PopupSource::popupDefinition() const.

    See PopupSource.

    See also setPopupDefinition().

    Esri::ArcGISRuntime::Renderer *GraphicsOverlay::renderer() const

    Gets the renderer of the overlay.

    See also setRenderer().

    Esri::ArcGISRuntime::GraphicsRenderingMode GraphicsOverlay::renderingMode() const

    Gets the GraphicsRenderingMode of the overlay.

    Returns the renderingMode.

    See also setRenderingMode().

    Esri::ArcGISRuntime::LayerSceneProperties GraphicsOverlay::sceneProperties() const

    Gets the LayerSceneProperties of the overlay.

    Returns the LayerSceneProperties.

    See also setSceneProperties().

    void GraphicsOverlay::selectGraphics(const QList<Esri::ArcGISRuntime::Graphic *> &graphics)

    Selects the graphics in the graphics list.

    Any graphics that are not in the overlay will be ignored.

    This function was introduced in Esri::ArcGISRuntime 100.2.

    QList<Esri::ArcGISRuntime::Graphic *> GraphicsOverlay::selectedGraphics() const

    Gets the list of selected graphics.

    Returns a list representing the selected graphics in the overlay.

    void GraphicsOverlay::setLabelsEnabled(bool labelsEnabled)

    Sets whether labels are enabled on graphics in this overlay to labelsEnabled.

    See also isLabelsEnabled().

    void GraphicsOverlay::setMaxScale(double maxScale)

    Sets the maximum scale at which the graphics should be displayed to maxScale.

    See also maxScale().

    void GraphicsOverlay::setMinScale(double minScale)

    Sets the minimum scale at which the graphics should be displayed to minScale.

    See also minScale().

    void GraphicsOverlay::setOpacity(float opacity)

    Sets the opacity to opacity.

    The opacity can have a value from 0.0 (transparent) to 1.0 (opaque).

    See also opacity().

    void GraphicsOverlay::setOverlayId(const QString &overlayId)

    Sets the graphics overlay's ID to overlayId.

    This function was introduced in Esri::ArcGISRuntime 100.2.

    See also overlayId().

    [override virtual] void GraphicsOverlay::setPopupDefinition(Esri::ArcGISRuntime::PopupDefinition *popupDefinition)

    Reimplements: PopupSource::setPopupDefinition(Esri::ArcGISRuntime::PopupDefinition *popupDefinition).

    Sets the popup definition to popupDefinition.

    See also popupDefinition() and PopupSource.

    [override virtual] void GraphicsOverlay::setPopupEnabled(bool popupEnabled)

    Reimplements: PopupSource::setPopupEnabled(bool popupEnabled).

    Sets whether the PopupSource is enabled to popupEnabled.

    See also isPopupEnabled() and PopupSource.

    void GraphicsOverlay::setRenderer(Esri::ArcGISRuntime::Renderer *renderer)

    Sets the renderer of the overlay to renderer.

    See also renderer().

    void GraphicsOverlay::setRenderingMode(Esri::ArcGISRuntime::GraphicsRenderingMode value)

    Sets the GraphicsRenderingMode of the overlay to value.

    See also renderingMode().

    void GraphicsOverlay::setScaleSymbols(bool scaleSymbols)

    Sets whether the overlay's symbols and labels honor the Map reference scale when displayed in a MapView.

    GraphicsOverlay::setScaleSymbols only affects display in a MapView. The symbols and labels will be displayed at fixed screen size in a SceneView.

    • scaleSymbols - true to scale the symbols, false to not.

    This function was introduced in Esri::ArcGISRuntime 100.7.

    See also isScaleSymbols.

    void GraphicsOverlay::setSceneProperties(const Esri::ArcGISRuntime::LayerSceneProperties &sceneProperties)

    Sets the LayerSceneProperties of the overlay to sceneProperties.

    See also sceneProperties().

    void GraphicsOverlay::setVisible(bool visible)

    Sets the graphics overlay visibility to visible.

    See also isVisible().

    void GraphicsOverlay::unselectGraphics(const QList<Esri::ArcGISRuntime::Graphic *> &graphics)

    Unselects the graphics in the graphics list.

    Any graphics that are not in the overlay will be ignored.

    This function was introduced in Esri::ArcGISRuntime 100.2.

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