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.
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.