I use Google’s SMS service a lot, especially for directory assistance. It works great most of the time, but it could be even better by turning this into a location aware service. You can do this with two pieces of information and a simple rule.

First, you already know the sender’s mobile phone number. My cell phone is in area code 415 (San Francisco and Marin county). You can use the sender’s area code to guess their default or home location.

Second, the SMS gateway should be able to tell you the cell tower ID that the user is on. Map the cell tower ID to the antenna’s location, and you have a crude position fix, accurate to within a few miles or less. In most cases, you should know what town the sender is in (you might have to implement an opt in SMS script to get user permission to share location data).

The SMS service will then use the following simple rule:

* if sender does not include a city, state phrase in the query, assume this is a local search
* compare cell tower ID against database of cell tower sites to get lat/long fix
* if cell tower ID not available, use sender area code to guess location
* if search result is short, reply via SMS
* if search result is long, reply with SMS that includes http://x.y.z/abc pointer to temporary web page with search results

Then it’d be simple to do local search. For example, I could send a text message “laundromat”. If the service knows which cell tower I was on, it’ll know where I am within a mile or so. I get a test message back like:

“Laundromat : Near San Francisco. CA/Sunset : 3 Matches : http://sms.google.com/ae617210 for results”

I follow that temporary URL and get a mobile friendly web page with the search results and a map. To fine tune the way search results are sent back, you recognize a few commands like “set phone nokia n80″ or “set format html” so frequent users can get the most of the service.

That’s it, but with these relatively straightforward changes, Google SMS would be an excellent tool.