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>