geo_coder.js 1007 B

12345678910111213141516171819202122232425262728293031323334
  1. /**
  2. * @ngdoc service
  3. * @name GeoCoder
  4. * @description
  5. * Provides [defered/promise API](https://docs.angularjs.org/api/ng/service/$q) service for Google Geocoder service
  6. */
  7. ngMap.service('GeoCoder', ['$q', function($q) {
  8. return {
  9. /**
  10. * @memberof GeoCoder
  11. * @param {Hash} options https://developers.google.com/maps/documentation/geocoding/#geocoding
  12. * @example
  13. * ```
  14. * GeoCoder.geocode({address: 'the cn tower'}).then(function(result) {
  15. * //... do something with result
  16. * });
  17. * ```
  18. * @returns {HttpPromise} Future object
  19. */
  20. geocode : function(options) {
  21. var deferred = $q.defer();
  22. var geocoder = new google.maps.Geocoder();
  23. geocoder.geocode(options, function (results, status) {
  24. if (status == google.maps.GeocoderStatus.OK) {
  25. deferred.resolve(results);
  26. } else {
  27. deferred.reject('Geocoder failed due to: '+ status);
  28. }
  29. });
  30. return deferred.promise;
  31. }
  32. }
  33. }]);