code: func (f Feature) MarshalJSON() ([]byte, error) {
  	type feature Feature
  
  	fea := &feature{
  		ID:       f.ID,
  		Type:     "Feature",
  		Geometry: f.Geometry,
  	}
  
  	if f.BoundingBox != nil && len(f.BoundingBox) != 0 {
  		fea.BoundingBox = f.BoundingBox
  	}
  	if f.Properties != nil && len(f.Properties) != 0 {
  		fea.Properties = f.Properties
  	}
  	if f.CRS != nil && len(f.CRS) != 0 {
  		fea.CRS = f.CRS
  	}
  
  	return json.Marshal(fea)
  }
docs: // MarshalJSON converts the feature object into the proper JSON.
  // It will handle the encoding of all the child geometries.
  // Alternately one can call json.Marshal(f) directly for the same result.