in reply to Re^2: CSV Cross Referencing
in thread CSV Cross Referencing

Still cheaper (which Tux did in his code), just compare the Lat and Lon separately. Only need to calculate the distance (or square of distance) when there are multiple matches.

Replies are listed 'Best First'.
Re^4: CSV Cross Referencing
by SuicideJunkie (Vicar) on Dec 03, 2014 at 18:43 UTC

    That's essentially what the 2d hash does.

    $buckets->{latitude}{longitude}. You're only checking things with a similar latitude, and among those, only the things with a similar longitude. The upside is you don't need to loop. Instead of doing a latitude compare against everything, you immediately O(1) have the short list of things of the same latitude. Then instead of doing a compare against the longitudes of everything remaining, you immediately have the short list of things that match both.