Jump to content


Photo

Find other users near current user


  • Please log in to reply
1 reply to this topic

#1 RogerZF

RogerZF
  • New Members
  • Pip
  • Newbie
  • 1 posts

Posted 15 September 2006 - 12:36 AM

I want to be able to find how close my users are to eachother.

I have a HUGE list (thousands) of IP addresses in a MySQL database. I can match IP's with longitudes/latitudes. My problem is finding other users close to the current logged in user. Do I need to match longitude/latitude for EVERY IP and calculate distance? Wouldn't that KILL the server AND the SQL server?

What's the most efficient way of doing this? I know Myspace has a "find users close to you" feature, but I can't figure out how they made theirs. Also, I don't think zip code is much of an option as not every country has a zip code. I have TONS of international visitors (USA, Europe, Australia, Canada, UAE, etc.). Do all those countries have zip codes? I can't think of an efficient way of doing this without killing the server.

#2 btherl

btherl
  • Staff Alumni
  • Advanced Member
  • 3,893 posts
  • LocationAustralia

Posted 15 September 2006 - 03:28 AM

Nearly every country has a zip code.. so that's an option.

You could use a strategy like this

- Match all longitudes and latitudes near the location of interest
- Find all IPs which match those longitude/latitude combinations
- Find all IPs from those which are in your database

Seems a bit expensive.  But you can cache the results at various stages in your algorithm, meaning only the first request will have performance hit.

Another option could be to store an 'IP block adjacency' look up table.  Then you can lookup immediately which IP blocks are adjacent to your IP block of interest.  It'll take a while to generate and it'll be big, but it'll be fast..




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users