Combine $http and $cordovaGeolocation results

I have nex workflow: when user open some view, his location should be found, and then http request should be sent and afterwards response parsed into view. I have resolved this by nesting callbacks in controller,

var posOptions = {timeout: 10000, enableHighAccuracy: false};

template: ‘Loading Location’
.then(function (position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
Explore.explore(lat, long).then(function (result) {

        function (err){

}, function (err) {
    Explore.explore().then(function (result) {

    function exploreCallback(result) {
        $scope.serviceTypes = ServiceTypes;
        $scope.explore =;

I’m sure that there’s a better way to achive this. When I have only http service I’ve used a resolve directive in state declaration, but I’m unable to achieve same with 2 services.

Any suggestions?