java.lang.Object
io.jmix.mapsflowui.kit.component.model.MapObservableObject
io.jmix.mapsflowui.kit.component.model.feature.Feature
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
LineStringFeature, MarkerFeature, MultiLineStringFeature, MultiMarkerFeature, MultiPointFeature, MultiPolygonFeature, PointFeature, PolygonFeature

public abstract class Feature extends MapObservableObject
Abstract class for vector object for geographic features with a geometry.

For more details see: Feature docs

See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • getType

      protected String getType()
      Specified by:
      getType in class MapObservableObject
    • getGeometry

      public SimpleGeometry getGeometry()
      Returns:
      feature's geometry
    • getStyles

      public List<Style> getStyles()
      Returns:
      list of added styles or empty list if no styles added
    • addStyles

      public void addStyles(Style... styles)
      Adds style to the feature. Note, if the feature contains custom styles, the default styles or added ones to the layer won't be applied to this feature. And you have to provide fully described style to the specific feature.
      Parameters:
      styles - styles to add
    • withStyles

      public Feature withStyles(Style... styles)
      Parameters:
      styles - styles to add
      Returns:
      current instance
    • removeStyles

      public void removeStyles(Style... styles)
      Removes styles from feature.
      Parameters:
      styles - styles to remove
    • removeAllStyles

      public void removeAllStyles()
      Removes all added styles from feature.
    • getProperties

      public Map<String,Object> getProperties()
    • withProperties

      public Feature withProperties(Map<String,Object> properties)
      Sets the properties that will be associated with the feature.

      For instance, if cluster specified weight property it will try to get it from the feature's properties. The same with heatmap when it is specified its weight property.

      Another example of using feature's properties is listening click events in source. For instance:

       vectorSource.addSourceFeatureClickListener(event -> {
           Feature feature = event.getFeature();
           String description = (String) feature.getProperties().get("description");
           notifications.show(description);
       });
       
      Parameters:
      properties - properties to set
      Returns:
      current instance
    • withProperty

      public Feature withProperty(String name, Object value)
      Sets the property that will be associated with the feature.

      For instance, if cluster specified weight property it will try to get it from the feature's properties. The same with heatmap when it is specified its weight property.

      Another example of using feature's properties is listening click events in source. For instance:

       vectorSource.addSourceFeatureClickListener(event -> {
           Feature feature = event.getFeature();
           String description = (String) feature.getProperties().get("description");
           notifications.show(description);
       });
       
      Parameters:
      name - property name
      value - value
      Returns:
      current instance
    • removeProperty

      public void removeProperty(String name)
      Removes property from the feature.
      Parameters:
      name - property name to remove
    • removeAllProperties

      public void removeAllProperties()
      Removes all properties from the feature.