Il existe des moyens de remplacer les APIs de Google map, yahoo ou autre par Openlayer avec les données d'Openstreetmap (http://wiki.openstreetmap.org/index...).

Il existe aussi une librairie javascript très pratique pour utiliser de manière uniforme tous ces APIs (libres et propriétaires) et même permettre de swicher directement de l'un à l'autre via un simple clique.
Ce dont je parle, c'est mapstraction (http://www.mapstraction.com/).