The combination of a PopupDefinition and a GeoElement, which allows a visual representation of the GeoElement's attributes as well as the ability to edit them. More...
Header: | #include <Popup.h> |
Since: | Esri::ArcGISRuntime 100.0 |
Inherits: | Esri::ArcGISRuntime::Object |
Public Functions
Popup(Esri::ArcGISRuntime::GeoElement *geoElement, QObject *parent = nullptr) | |
Popup(Esri::ArcGISRuntime::GeoElement *geoElement, Esri::ArcGISRuntime::PopupDefinition *popupDefinition, QObject *parent = nullptr) | |
virtual | ~Popup() override |
QFuture<QList<Esri::ArcGISRuntime::PopupExpressionEvaluation *>> | evaluateExpressionsAsync(QObject *parent = nullptr) |
QList<Esri::ArcGISRuntime::PopupElement *> | evaluatedElements() const |
QString | formattedValue(Esri::ArcGISRuntime::PopupField *popupField) const |
Esri::ArcGISRuntime::GeoElement * | geoElement() const |
Esri::ArcGISRuntime::PopupDefinition * | popupDefinition() const |
Esri::ArcGISRuntime::Symbol * | symbol() const |
QString | title() const |
Detailed Description
Use the Popup to create a PopupManager. The PopupManager can then be used in conjunction with the PopupView (from the ArcGIS Maps SDK Toolkit) for a visual representation of the Popup.
Relevant samples:
- Display clusters: Display a web map with a point feature layer that has feature reduction enabled to aggregate points into clusters.
- Show popup: Show predefined popups from a web map.
Member Function Documentation
[explicit]
Popup::Popup(Esri::ArcGISRuntime::GeoElement *geoElement , QObject *parent = nullptr)
Creates a new popup from a GeoElement.
This method creates a default PopupDefinition with default properties and default popup elements based on the given GeoElement.
- geoElement - The GeoElement for the popup, such as a Feature or Graphic.
- parent - The optional parent QObject.
Popup::Popup(Esri::ArcGISRuntime::GeoElement *geoElement , Esri::ArcGISRuntime::PopupDefinition *popupDefinition , QObject *parent = nullptr)
Creates a new popup from a geo element and a popup definition.
- geoElement - The GeoElement for the popup, such as a Feature or Graphic.
- popupDefinition - A PopupDefinition.
- parent - The optional parent QObject.
If the popup definition is nullptr
, a default one will be created from the geo element.
{GeoView::identifyLayersAsync(const QPointF&, double, bool, QObject*)}
See also Esri::ArcGISRuntime::GeoView::identifyLayersAsync(const QPointF&, double, bool, QObject*).
[override virtual]
Popup::~Popup()
Destructor.
[since Esri::ArcGISRuntime 200.2]
QFuture<QList<Esri::ArcGISRuntime::PopupExpressionEvaluation *>> Popup::evaluateExpressionsAsync (QObject *parent = nullptr)
Asynchronously evaluates all expressions available at PopupDefinition::expressions or at ExpressionPopupElement::popupExpression.
The expression can include Arcade FeatureSet functions, which need to be evaluated asynchronously.
- parent - The optional parent QObject
Also populates the evaluatedElements from the PopupDefinition::elements. During the evaluation, each ExpressionPopupElement is replaced by the PopupElement returned by the Arcade expression and each placeholder is replaced by its value.
This method must be called before displaying the popup information in a UI so you can use synchronous methods formattedValue(Esri::ArcGISRuntime::PopupField*) and Esri::ArcGISRuntime::PopupManager::substitute(const QString&) to get the formatted QString representation.
If there are no PopupDefinition::expressions and no popup elements of type ExpressionPopupElement then the result array will be empty.
The PopupExpression may be used in the PopupDefinition::fields, PopupDefinition::media, PopupDefinition::title and PopupDefinition::description.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[since Esri::ArcGISRuntime 100.14]
QList<Esri::ArcGISRuntime::PopupElement *> Popup::evaluatedElements () const
Returns a QList of PopupElement objects evaluated asynchronously by evaluateExpressionsAsync.
During the evaluation, each ExpressionPopupElement is replaced by the PopupElement returned by the Arcade expression and each placeholder is replaced by its value.
If the Arcade expression returns a list of attributes to be used by the popup element, these attributes will be used by formattedValue(Esri::ArcGISRuntime::PopupField*).
The list is empty while evaluateExpressionsAsync has not been executed, and is cleared if evaluateExpressionsAsync is executed more than once.
After evaluation, the order of the pop-up elements in the QList matches the order elements present in PopupDefinition::elements and shown in the pop-up window. If an ExpressionPopupElement fails to be evaluated, then it will be skipped in the QList. Use the list of PopupExpressionEvaluation returned from evaluateExpressionsAsync to learn the cause of the error.
This function was introduced in Esri::ArcGISRuntime 100.14.
See also PopupDefinition::elements and evaluateExpressionsAsync.
QString Popup::formattedValue (Esri::ArcGISRuntime::PopupField *popupField ) const
Returns the formatted value of the popup field.
- popupField - The popup field object.
Dates and times are returned in the local timezone. If PopupDefinition::expressions is not empty then the PopupField may be using expressions with Arcade FeatureSet functions. Use evaluateExpressionsAsync to evaluate the Arcade expressions before trying to get the formatted QString representation of the popup field's value, otherwise it may return an empty string.
If the field is part of a CodedValueDomain, the CodedValue::name is returned.
Esri::ArcGISRuntime::GeoElement *Popup::geoElement () const
Returns the GeoElement of this Popup.
Esri::ArcGISRuntime::PopupDefinition *Popup::popupDefinition () const
Returns the PopupDefinition of this Popup.
Esri::ArcGISRuntime::Symbol *Popup::symbol() const
Returns the Symbol of this Popup.
QString Popup::title() const
Returns the title of this Popup.