How would you design and implement a spatial index, such as a quadtree or k-d tree, to optimize nearest-neighbor queries for point cloud data?