We consider the approximate nearest neighbor (ANN) problem where the input set consists of n k-flats in the Euclidean Rd, for any fixed parameters 0 ≤ k < d, and where, for each query point q, we want to return an input flat whose distance from q is at most (1 + ϵ) times the shortest such distance, where ϵ > 0 is another prespecified parameter. We present an algorithm that achieves this task with nk+1(log(n)/ ϵ)O(1) storage and preprocessing (where the constant of proportionality in the big-O notation depends on d), and can answer a query in O(polylog(n)) time (where the power of the logarithm depends on d and k). In particular, we need only nearquadratic storage to answer ANN queries amid a set of n lines in any fixed-dimensional Euclidean space. As a by-product, our approach also yields an algorithm, with similar performance bounds, for answering exact nearest neighbor queries amid k-flats with respect to any polyhedral distance function. Our results are more general, in that they also provide a tradeoff between storage and query time.