How close are the points and what are the acceptable errors at turns?
If they're close and/or acceptable errors are reasonable, then you could do a simple decimation of the data - ie. only keep every other point / every third point / etc.
Snapping lines to data points is possible, but you still have to be aware of errors and tolerances. I wrote something to do this in 1d a while ago for reducing finely sampled geophysical data into "segments", based on the "method of least squares".
2d would be more complicated but do-able, and there are some nifty speedups possible if you know what you're doing.
Contact me off list (see contact form on website), if you're interested in us writing a program to do this for you.
Richard