Class MultiPolygonFeature

All Implemented Interfaces:
FeatureClickNotifier<MultiPolygonFeature>, Serializable

public class MultiPolygonFeature extends Feature implements FeatureClickNotifier<MultiPolygonFeature>
Multipolygon feature with predefined MultiPolygonGeometry.

Usage example:

 private void addMultiPolygon(VectorSource vectorSource) {
     GeometryFactory factory = GeometryUtils.getGeometryFactory();

     Polygon polygon1 = factory.createPolygon(
             factory.createLinearRing(new Coordinate[]{
                     new Coordinate(25.095057034220535, 31.6734818426374),
                     new Coordinate(25.095057034220535, 21.916591864189783),
                     new Coordinate(36.273764258555126, 21.916591864189783),
                     new Coordinate(31.711026615969566, 30.893621948904325),
                     new Coordinate(25.095057034220535, 31.6734818426374)}));

     Polygon polygon2 = factory.createPolygon(
             factory.createLinearRing(new Coordinate[]{
                     new Coordinate(26.836428848759905, 40.89954566030514),
                     new Coordinate(26.836428848759905, 35.71188725771292),
                     new Coordinate(45.08737941910209, 36.265661479563505),
                     new Coordinate(43.49042124419716, 41.4148387201449),
                     new Coordinate(26.836428848759905, 40.89954566030514)}));

     MultiPolygon multiPolygon = factory.createMultiPolygon(new Polygon[]{polygon1, polygon2});
     vectorSource.addFeature(new MultiPolygonFeature(multiPolygon));
 }
 
See Also:
  • Constructor Details

    • MultiPolygonFeature

      public MultiPolygonFeature(org.locationtech.jts.geom.MultiPolygon multiPolygon)
  • Method Details

    • getGeometry

      public MultiPolygonGeometry getGeometry()
      Overrides:
      getGeometry in class Feature
      Returns:
      feature's geometry
    • getMultiPolygon

      public org.locationtech.jts.geom.MultiPolygon getMultiPolygon()
      Returns:
      multipolygon from feature's geometry getGeometry()
    • setMultiPolygon

      public void setMultiPolygon(org.locationtech.jts.geom.MultiPolygon multiPolygon)
      Sets multipolygon to the feature's geometry.
      Parameters:
      multiPolygon - multipolygon to set
    • 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.

      For instance, custom polygon style:

       new MultiPolygonFeature(multiPolygon)
               .withStyles(new PolygonStyle()
                       .withFill(new Fill("rgba(1, 147, 154, 0.2)"))
                       .withStroke(new Stroke()
                               .withWidth(3.)
                               .withColor("#123EAB"))
                       .build());
       
      Overrides:
      addStyles in class Feature
      Parameters:
      styles - styles to add
    • withStyles

      public MultiPolygonFeature withStyles(Style... styles)
      Overrides:
      withStyles in class Feature
      Parameters:
      styles - styles to add
      Returns:
      current instance
    • withProperties

      public MultiPolygonFeature withProperties(Map<String,Object> properties)
      Description copied from class: Feature
      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);
       });
       
      Overrides:
      withProperties in class Feature
      Parameters:
      properties - properties to set
      Returns:
      current instance
    • withProperty

      public MultiPolygonFeature withProperty(String name, Object value)
      Description copied from class: Feature
      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);
       });
       
      Overrides:
      withProperty in class Feature
      Parameters:
      name - property name
      value - value
      Returns:
      current instance
    • addClickListener

      public com.vaadin.flow.shared.Registration addClickListener(Consumer<FeatureClickNotifier.FeatureClickEvent<MultiPolygonFeature>> listener)
      Description copied from interface: FeatureClickNotifier
      Adds feature click listener. Note, if the user makes double click on a feature, the FeatureClickNotifier.FeatureClickEvent will be fired twice.
      Specified by:
      addClickListener in interface FeatureClickNotifier<MultiPolygonFeature>
      Parameters:
      listener - listener to add
      Returns:
      a registration object for removing an event listener
    • addSingleClickListener

      public com.vaadin.flow.shared.Registration addSingleClickListener(Consumer<FeatureClickNotifier.FeatureSingleClickEvent<MultiPolygonFeature>> listener)
      Description copied from interface: FeatureClickNotifier
      Adds feature single click listener. Single click means that an event won't be fired if the user makes double click.
      Specified by:
      addSingleClickListener in interface FeatureClickNotifier<MultiPolygonFeature>
      Parameters:
      listener - listener to add
      Returns:
      a registration object for removing an event listener
    • addDoubleClickListener

      public com.vaadin.flow.shared.Registration addDoubleClickListener(Consumer<FeatureClickNotifier.FeatureDoubleClickEvent<MultiPolygonFeature>> listener)
      Description copied from interface: FeatureClickNotifier
      Adds feature double click listener.
      Specified by:
      addDoubleClickListener in interface FeatureClickNotifier<MultiPolygonFeature>
      Parameters:
      listener - listener to add
      Returns:
      a registration object for removing an event listener