Have you considered using the Douglas Peucker point reduction algorithm as a way of, well, reducing the number of points? See http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm AS