Ters coğrafi kodlama yapmam ve enlem/boylam bilgisinden şehrin adını almam gerekiyor.
Google harita api'ye $ http yoluyla çağrı yapan bir Açısal hizmet oluşturdum. İade edilen verilerden sadece şehrin ismine ihtiyacım var. Açısal hizmet içinde $ http'un async doğasıyla uğraşıyordum. Çalıştırmak için tek yol, hizmette q $ ile kendi sözümü oluşturmaktı.
Çalışıyor ancak bunu yapmanın doğru yolu olup olmadığından emin değilim. Herhangi bir geri bildirim daha fazladır! İade etmek zorunda kalmamak
var app = angular.module('devApp', []);
app.factory('reverseGeoCoder', function($http, $q) {
var service = {
getAddress: function(lat, lng) {
var url = 'https://maps.googleapis.com/maps/api/geocode/json?latlng=' + lat + ',' +lng;
var deferred = $q.defer();
$http.get(url).then(function(data) {
// extract the address and return it to the caller
deferred.resolve(data.data.results[0].formatted_address);
}, function(reason) {
deferred.reject(reason);
});
return deferred.promise;
}
};
return service;
});
app.controller('mainController', function(reverseGeoCoder) {
var vm = this;
reverseGeoCoder.getAddress(47.353166, 8.558387).then(function(data) {
vm.address = data;
}, function(reason) {
console.log('reverse geocoding failed, reason: ' + reason);
});
});