I'm sort of 'recreating' google street view with MIT right now.
We have a car with a camera on top and we're driving at 10mph down a road. As we drive we're shooting pictures at 30fps and each photo is tagged with a timestamp. I can interpolate between images and GPS route so I can tell you the "estimated" position at which every image was taken.
However, we have some GPS errors, especially in downtown areas with multipath, etc. To take a first stab at this, we bought a better GPS unit from Trimble the Aardvark GPS + DR which is a decent GPS unit as well as a Gyro. We also tied in the wheel speed pulse to the unit so it can estimate the position of the car even if GPS drops out for a second or two. Over time though, drift occurs and it can tell us that we're 10-15 meters off the road until we get a decent GPS fix again.
We've done some basic metrics for the position, filtering out positions that have a faster than expected speed, given the previous points, and that can give me a decent guess at what parts of the route are bad.
That said, is there any way I can improve things further? I was going to do some map matching but I wonder if I should only do that in areas I decide are "bad" or if map matching is good for everything.
The real purpose of this is to be able to type in an address and pull up all images of that address. Right now we're close, but not close enough.
P.S.: Our current stack is Python, Google Maps and OSM mostly.