> This question has been converted to Community Wiki and wiki locked
> because it is an example of a question that seeks a list of answers
> and appears to be popular enough to protect it from closure.  It
> should be treated as a special case and should not be viewed as the
> type of question that is encouraged on this, or any Stack Exchange
> site, but if you wish to contribute more content to it then feel free
> to do so by editing this answer.


----------


After doing a bit of reading on Map-matching algorithms, I have understood the following:

 - To Match the gps Location to road, you need the actual road data in vector format
 - It will help if you have different weights for different roads. So the chances of a point matching with a highway will be higher, then with matching a side line.
 - You need to take the history, and speed of the gps reading. For example if the the gps point has been matching the  side lane for a long time, you should take that into account, and not match it directly to highway.
 -The actual matching is done using a variety of statistical techniques.

For Further reading, I suggest the following:  

 - [Map-Matching for Low-Sampling-Rate GPS Trajectories][1]
 - [Some map matching algorithms for personal navigation
assistants][2]
 - [A Three-step General Map Matching Method in the GIS
Environment: Travel/Transportation Study Perspective][3]


  [1]: http://research.microsoft.com/apps/pubs/default.aspx?id=105051
  [2]: http://cens.ucla.edu/~mhr/cs219/maps/white00.pdf
  [3]: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.367.2686