@Override
  protected void applyToNode(MapNode node) {
    if (node.getTags().containsKey("ele") && node.getRepresentations().isEmpty()) {

      boolean isInGroundSegment = false;
      for (MapSegment segment : node.getConnectedSegments()) {
        MapElement element;
        if (segment instanceof MapWaySegment) {
          element = (MapWaySegment) segment;
        } else {
          element = ((MapAreaSegment) segment).getArea();
        }
        if (element.getPrimaryRepresentation() != null
            && element.getPrimaryRepresentation().getGroundState() == GroundState.ON) {
          isInGroundSegment = true;
          break;
        }
      }

      if (node.getConnectedSegments().isEmpty() || isInGroundSegment) {
        node.addRepresentation(new InvisibleEleNode(node));
      }
    }
  }