Para quem estava acostumado a usar o OpenLayers 2 e migrou para a versão 3.0 deve ter percebido que a nova versão não dá suporte as camadas do Google Maps e segundo Andreas Hocevar não dará a menos que o Google mude sua política e permita o acesso direto aos tiles do seu mapa.

Devido a esse problema a mapGears resolveu criar uma biblioteca que realiza essa integração das camadas do Google Maps com o OpenLayers 3.

OL3-Google-Maps é uma biblioteca de código aberto que permite aos usuários adicionar camadas do Google Maps a um mapa que utiliza a biblioteca OpenLayers 3. Ela funciona através da replicação e sincronização dos objetos do OL3 com o Google Maps, utilizando o seu próprio mapeamento da API. Todas as solicitações feitas do lado do usuário são escritas como chamadas do OL3, portanto, não há nova sintaxe para se aprender.

dicas-google-maps

Para usar a biblioteca, você precisa incluir o script OL3-Google-Maps, bem como a API do Google Maps:

<script src="https://maps.googleapis.com/maps/api/js?v=3&key=mykey"></script>
<script src="ol3gm.js"></script>

No exemplo abaixo, mykey é a sua chave da API do Google Maps, e ol3gm.js é o script OL3-Google-Maps compilado. Você não precisa carregar a biblioteca do OL3 uma vez que ela já está incluída com a OL3-Google-Maps.

// Create a Google Maps layer
var googleLayer = new olgm.layer.Google();
// Create a regular OL3 map, containing our Google layer
var map = new ol.Map({
  // use OL3-Google-Maps recommended default interactions
  interactions: olgm.interaction.defaults(),
  layers: [
    googleLayer
  ],
  target: 'map',
  view: new ol.View({
    center: [-48,-27],
    zoom: 12
  })
});
// Activate the library
var olGM = new olgm.OLGoogleMaps({map: map});
olGM.activate();

No site do projeto você pode conferir mais exemplos e também a lista de limitações do projeto.