Use iterators for DouglasPeucker
Allow empty ranges in DP
Choose DP values based on distance to the next via-point