map.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* global console:false, google:false */
  2. /*jshint unused:false */
  3. 'use strict';
  4. app.controller('MapCtrl', ['$scope', function ($scope) {
  5. $scope.myMarkers = [];
  6. $scope.mapOptions = {
  7. center: new google.maps.LatLng(35.784, -78.670),
  8. zoom: 15,
  9. mapTypeId: google.maps.MapTypeId.ROADMAP
  10. };
  11. $scope.addMarker = function ($event, $params) {
  12. $scope.myMarkers.push(new google.maps.Marker({
  13. map: $scope.myMap,
  14. position: $params[0].latLng
  15. }));
  16. };
  17. $scope.setZoomMessage = function (zoom) {
  18. $scope.zoomMessage = 'You just zoomed to ' + zoom + '!';
  19. console.log(zoom, 'zoomed');
  20. };
  21. $scope.openMarkerInfo = function (marker) {
  22. $scope.currentMarker = marker;
  23. $scope.currentMarkerLat = marker.getPosition().lat();
  24. $scope.currentMarkerLng = marker.getPosition().lng();
  25. $scope.myInfoWindow.open($scope.myMap, marker);
  26. };
  27. $scope.setMarkerPosition = function (marker, lat, lng) {
  28. marker.setPosition(new google.maps.LatLng(lat, lng));
  29. };
  30. }])
  31. ;
  32. app.directive('uiEvent', ['$parse',
  33. function ($parse) {
  34. return function ($scope, elm, attrs) {
  35. var events = $scope.$eval(attrs.uiEvent);
  36. angular.forEach(events, function (uiEvent, eventName) {
  37. var fn = $parse(uiEvent);
  38. elm.bind(eventName, function (evt) {
  39. var params = Array.prototype.slice.call(arguments);
  40. //Take out first paramater (event object);
  41. params = params.splice(1);
  42. fn($scope, {$event: evt, $params: params});
  43. if (!$scope.$$phase) {
  44. $scope.$apply();
  45. }
  46. });
  47. });
  48. };
  49. }]);