Agregar Google Maps a Ionic

Se crear un proyecto de ionic.

ionic start ionic-maps blank
ionic setup sass
ionic platform add ios
ionic platform add android

Se agregar el plugin de geolocalización

ionic cordova plugin add cordova-plugin-geolocation

Aunque ngCordova no es obligatorio facilita el uso del plugin

bower install ngCordova
<script src="lib/ngCordova/dist/ng-cordova.js"></script>
<script src="cordova.js"></script>
angular.module('starter', ['ionic', 'ngCordova'])

Ahora se incluye el SDK de Google Maps; este debe venir con una llave que te de acceso al API de mapas la cual se obtiene desde Google Developers Console

<script src="js/app.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=true"></script>

Se crea una nueva vista, plantilla o pagina en la cual se va a ver el mapa, por ejemplo map.html. El mapa se cargará en el elemento #map.

<ion-view>
    <ion-content scroll="false">
        <div id="map" data-tap-disabled="true"></div>
    </ion-content>
</ion-view>
<body ng-app="starter">
  <ion-pane>
    <ion-header-bar class="bar-stable">
      <h1 class="title">Ionic Maps</h1>
    </ion-header-bar>
    <ion-nav-view></ion-nav-view>
  </ion-pane>
</body>
.config(function($stateProvider, $urlRouterProvider) {

  $stateProvider
  .state('map', {
    url: '/',
    templateUrl: 'templates/map.html',
    controller: 'MapCtrl'
  });

  $urlRouterProvider.otherwise("/");

})

En el controlador de la vista se escribe el código para manipular el mapa.

.controller('MapCtrl', function($scope, $state, $cordovaGeolocation) {

  var options = {timeout: 10000, enableHighAccuracy: true};

  $cordovaGeolocation.getCurrentPosition(options)
    .then(
      function(position) {

        var latLng = new google.maps.LatLng(
            position.coords.latitude,
            position.coords.longitude
          );

        var mapOptions = {
          center: latLng,
          zoom: 15,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };

    $scope.map = new google.maps.Map(
        document.getElementById("map"),
        mapOptions
      );

  },
  function(error) {
    console.log("Could not get location");
  });

});

Al cargar la aplicación el mapa aún no se ve, es necesario darle dimensiones al mapa. Nota los estilos de .scroll solo son necesarios si la vista tiene scroll.

.scroll {
    height: 100%;
}

#map {
    width: 100%;
    height: 100%;
}

En ionic al colocar un mapa en una vista y se quiere que el mapa ocupe toda la pantalla, se debe colocar el atributo scroll igual a false al contenedor.

<ion-content scroll="false">
  <div
    id="map"
    class="mymap"
    data-tap-disabled="true"></div>
</ion-content>