You can use the Javascript API as Google has made available through this link https://developers.google.com/maps/documentation/javascript/styling
Have a look at Digital Globe's map API. We partnered with them recently and I learned about their mapping disaster recovery assistance in Nepal after the quake. I think the maps they offer will meet your needs: http://developer.digitalglobe.com/maps-api/
That's a huge question - but in my view it really boils down to four things: 1) A clear sense of the problem they were trying to solve; 2) Crystal clear focus on only the most high-impact things; 3) Relentless pursuit of excellence in execution. 4) Luck. That fourth one mightn't be a popular one...