Jump to content

Archived

This topic is now archived and is closed to further replies.

RogerZF

Find other users near current user

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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..

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.