code: function getPropFunction(params) {
      var func;
  
      if(!params.exclude && !params.include) {
        func = function(properties) {
          for(var attr in this) {
            if(this.hasOwnProperty(attr) && (geomAttrs.indexOf(attr) === -1)) {
              properties[attr] = this[attr];
            }
          }
        };
      } else if(params.include) {
        func = function(properties) {
          params.include.forEach(function(attr){
            properties[attr] = this[attr];
          }, this);
        };
      } else if(params.exclude) {
        func = function(properties) {
          for(var attr in this) {
            if(this.hasOwnProperty(attr) && (geomAttrs.indexOf(attr) === -1) && (params.exclude.indexOf(attr) === -1)) {
              properties[attr] = this[attr];
            }
          }
        };
      }
  
      return function() {
        var properties = {};
  
        func.call(this, properties);
  
        if(params.extra) { addExtra(properties, params.extra); }
        return properties;
      };
    }
docs: Returns the function to be used to build the properties object for each feature