source : dynamic-maps-engine-layer.js

  1. /**
  2. * @ngdoc directive
  3. * @name dynamic-maps-engine-layer
  4. * @description
  5. * Requires: map directive
  6. * Restrict To: Element
  7. *
  8. * @example
  9. * Example:
  10. * <map zoom="14" center="[59.322506, 18.010025]">
  11. * <dynamic-maps-engine-layer
  12. * layer-id="06673056454046135537-08896501997766553811">
  13. * </dynamic-maps-engine-layer>
  14. * </map>
  15. */
  16. (function() {
  17. 'use strict';
  18. angular.module('ngMap').directive('dynamicMapsEngineLayer', [
  19. 'Attr2MapOptions', function(Attr2MapOptions) {
  20. var parser = Attr2MapOptions;
  21. var getDynamicMapsEngineLayer = function(options, events) {
  22. var layer = new google.maps.visualization.DynamicMapsEngineLayer(options);
  23. for (var eventName in events) {
  24. google.maps.event.addListener(layer, eventName, events[eventName]);
  25. }
  26. return layer;
  27. };
  28. return {
  29. restrict: 'E',
  30. require: ['?^map','?^ngMap'],
  31. link: function(scope, element, attrs, mapController) {
  32. mapController = mapController[0]||mapController[1];
  33. var filtered = parser.filter(attrs);
  34. var options = parser.getOptions(filtered, {scope: scope});
  35. var events = parser.getEvents(scope, filtered, events);
  36. var layer = getDynamicMapsEngineLayer(options, events);
  37. mapController.addObject('mapsEngineLayers', layer);
  38. }
  39. }; // return
  40. }]);
  41. })();