public void matchWaypointsToNodes(final List<MatchedWaypoint> unmatchedWaypoints, final double maxDistance, final OsmNodePairSet islandNodePairs) {
        waypointMatcher = new WaypointMatcherImpl(unmatchedWaypoints, maxDistance, islandNodePairs);
        for (MatchedWaypoint mwp : unmatchedWaypoints) {
            int cellsize = 12500;
            preloadPosition(mwp.waypoint, cellsize);
            // get a second chance
            if (mwp.crosspoint == null) {
                cellsize = 1000000 / 32;
                preloadPosition(mwp.waypoint, cellsize);
            }
        }

        if (firstFileAccessFailed) {
            throw new IllegalArgumentException("datafile " + firstFileAccessName + " not found");
        }
        final int len = unmatchedWaypoints.size();
        for (int i = 0; i < len; i++) {
            final MatchedWaypoint mwp = unmatchedWaypoints.get(i);
            if (mwp.crosspoint == null) {
                if (unmatchedWaypoints.size() > 1 && i == unmatchedWaypoints.size() - 1 && unmatchedWaypoints.get(i - 1).direct) {
                    mwp.crosspoint = new OsmNode(mwp.waypoint.ilon, mwp.waypoint.ilat);
                    mwp.direct = true;
                } else {
                    throw new IllegalArgumentException(mwp.name + "-position not mapped in existing datafile");
                }
            }
            if (unmatchedWaypoints.size() > 1 && i == unmatchedWaypoints.size() - 1 && unmatchedWaypoints.get(i - 1).direct) {
                mwp.crosspoint = new OsmNode(mwp.waypoint.ilon, mwp.waypoint.ilat);
                mwp.direct = true;
            }
        }
    }
get a node for the given id with all link-targets also non-hollow
<p>
It is required that an instance of the start-node does not yet
exist, not even a hollow instance, so getStartNode should only
be called once right after resetting the cache

@param id the id of the node to load
@return the fully expanded node for id, or null if it was not found
main/src/main/java/cgeo/geocaching/brouter/mapaccess/NodesCache.java