34 lines
1007 B
JavaScript
Executable File
34 lines
1007 B
JavaScript
Executable File
/**
|
|
* @ngdoc service
|
|
* @name GeoCoder
|
|
* @description
|
|
* Provides [defered/promise API](https://docs.angularjs.org/api/ng/service/$q) service for Google Geocoder service
|
|
*/
|
|
ngMap.service('GeoCoder', ['$q', function($q) {
|
|
return {
|
|
/**
|
|
* @memberof GeoCoder
|
|
* @param {Hash} options https://developers.google.com/maps/documentation/geocoding/#geocoding
|
|
* @example
|
|
* ```
|
|
* GeoCoder.geocode({address: 'the cn tower'}).then(function(result) {
|
|
* //... do something with result
|
|
* });
|
|
* ```
|
|
* @returns {HttpPromise} Future object
|
|
*/
|
|
geocode : function(options) {
|
|
var deferred = $q.defer();
|
|
var geocoder = new google.maps.Geocoder();
|
|
geocoder.geocode(options, function (results, status) {
|
|
if (status == google.maps.GeocoderStatus.OK) {
|
|
deferred.resolve(results);
|
|
} else {
|
|
deferred.reject('Geocoder failed due to: '+ status);
|
|
}
|
|
});
|
|
return deferred.promise;
|
|
}
|
|
}
|
|
}]);
|