You can greatly enhance your location-based app by using zip-codes.
So building a location based application is an interesting ordeal. It involves creating a few basic networks that people can start with, and expands from there. Facebook, for example, started with Harvard as its only network and expended from there to allow more college networks, and then the rest of the world.
Craigslist does the same. Your content is based on the URL; so if you go to washingtondc.craigslist.org, you get content tailored for Washington, DC. Equally, if you use charlottesville.craigslist.org, you get content for Charlottesville, VA.
When scaling a site like this, creating on networks is a very daunting tasks. You have to come up with huge lists of cities and scale up. Here’s my solution.
All US locales have zip codes. Zip-codes are unique and most can be traversed within a 5-minute drive. There are software packages available, like GeoDjango that let you search based on zip code.
Let’s focus on the Craigslist model. Instead of having charlottesville.craigslist.org, you could have craigslist.org/22903 (0r 22903.craigslist.org). The URL isn’t quite as pretty, but it contains much more information than only having the city name.
Then, you coud replace your search logic. Instead of filtering your query based on network (ie - network = “charlottesville”), you could order based on distance from your target zip-code.
The upsides are countless. Now, say I’m searching for a 1965 Shelby Mustang GT on Craigslist, I could simply expand my search radius instead of going from network-to-network. This decreases the time for me to find what I’m looking for an enhances the user experience. I can find something that’s hard to find, much faster.
There are a couple of down-sides, though.
1. Installing a geographically-aware package can be hard. I installed GeoDjango for dusoto a few months ago and had a pretty tough time, even with the nicely-written manual.
2. This won’t work as well internationally. Not all countries have a zip-code system that one can use. Great Britain, Canada, and Australia have good postal code systems, countries like Lebanon do not.
3. It’s a bit more computationally complex on the database to do a location-based search. It might take .01 seconds to do the search instead of the .001 it would take to do the keyword-based search.
These things aside, I could see a zip-code based approach overcoming the network approach in the next couple of years, especially as things go closer to location-aware devices.