Fixed NearestNeighbor, to use the actual point

Refactored some things, and added a method to use the x/y actual point
if available, and otherwise the grid node.