Here I would like to try to answer questions about OpenLayers. Please ask in a comment.

  1. How to enable animated zooming as in http://www.tomtom.com/livetraffic/ (though it seems they implemented their own method)

    View http://openlayers.org/dev/examples/google-v3.html or http://dev.openlayers.org/sandbox/emanuel/animatedZooming/demo.html. The performance of those sites might not be as good as Tomtom's because they might not have as fast WMS servers or the tiles are not cached efficiently. If you need fast tile seeding/caching, have a look at MapServer and in particular MapCache on the server side. Both of which are CGI programs implementing WMS.

  2. How to restrict the map to a certain area by giving lon and lat values.

    View http://openlayers.org/dev/examples/restricted-extent.html or http://openlayers.org/dev/examples/all-overlays.html (line 18; view source). Generally, I think the maxExtent property of the Map class will do the trick.