public void AddLinear(Polyline alignment)
        {
            LinearEntity linear = new LinearEntity();

            linear.Alignment   = alignment;
            linear.BufferSize  = 600.0;
            linear.Coefficient = 1200.0;

            _cityModel.CityLinears.Add(linear);
            _cityModel.Factors.Add(linear);
        }
 public static FactorFormula LinearEntity(LinearEntity linear)
 {
     return(p =>
     {
         if (linear.BufferSize == 0)
         {
             return 0;
         }
         double d = linear.Alignment.DistToPoint(p);
         return (d > linear.BufferSize) ? 0 : linear.Coefficient *(1 - d / linear.BufferSize);
     });
 }