QueryNode really is (lon, lat, osm node id).
"QueryNode" makes this more confusing than it has to be.
In addition, QueryNode stores two variables FixedLongitude, FixedLatitude. We have an abstraction for this: Coordinate which already provides functionality for comparison, conversion and so on.
QueryNode should just inherit from Coordinate and add a osm node id to the mix.