Question: assuming I have a Fingerprint DB of Cell towers.
The data (including Long. & Lat. CellID, signal strength, etc) is achieved by 'wardriving', similar to OpenCellID.org.

I would like to be able to get the location of the client mobile phone without GPS (similar to OpenCellID / Skyhook Wireless/ Google's 'MyLocation'), which sends me info on the Cell towers it "sees" at the moment: the Cell tower connected to, and another 6 neighboring cell towers (assuming GSM).

I have read and Googled it for a long time and came across several effective theories, such as using SQL 2008 Spatial capabilities, or using an euclidean algorithm, or Markov Model.

However, I am lacking a practical solution, preferably in C# or using SQL 2008 :)

The location calculation will be done on the server and not on the client mobile phone. the phone's single job is to send via HTTP/GPRS, the tower it's connected to and other neighboring cell towers.

Any input is appreciated, I have read so much and so far haven't really advanced much.

Thanx

Answer: 
Why don't you do a plain triangulation calculation, based on cell position and signal strength?
You can't do triangulation as the phone scans just the signals from two base stations and not three. Furthermore I don't know whether it is possible to somehow access the data of both stations because you would have to deal with low-level GSM/3G protocols.

By using AT commands or functions of newer phones SDKs (Java, Android, iPhone, Symbian...) you can retrieve the informations about the cell id, lac, mnc, mcc, signal strength and timing advance.

By examining timing advance you can determine how much you are away from the base station as the signal travels with the speed of light but you can't determine the exact position, just the "circle of possible positions" as you calculate the approximate radius (approximate because it is not in general true that the signal travels directly - the signal can reflect from nearby objects).

If yo are working with .NET [here](http://mypetprojects.blogspot.com/2011/05/retrieving-cell-informations-using.html) is an example for retrieving base station location from cellID and other data that are accessible on your phone. Hope it helps.