This paper addresses the problem of B-spline curve approximating to a set of dense and ordered points. We choose local curvature maximum points based on the curvature information. The points and the two end points are viewed as initial feature points, constructing a B-spline curve approximating to the feature points by the least-squares method, refining the feature points according to the shape information of the curve, and updating the curve. This process is repeated until the maximum error is less than the given error bound. The approach adaptively placed fewer knots at flat regions but more at complex regions. Under the same error bound, experimental results showed that our approach can reduce more control points than Parks approach,Piegls approach and Lis approach. The numbers of control points of the curve is equal to that of the feature points after refinement.