var app = angular.module('plunker', ['angularLoad']);

app.controller('MainCtrl', function($scope, angularLoad) {
  $scope.name = 'World';
  
  angularLoad.loadScript('https://maps.googleapis.com/maps/api/js?sensor=false')
  .then(function() {
    return angularLoad.loadScript('https://cdnjs.cloudflare.com/ajax/libs/marker-animate-unobtrusive/0.2.8/vendor/markerAnimate.js')
  })
  .then(function() {
    return angularLoad.loadScript('https://cdnjs.cloudflare.com/ajax/libs/marker-animate-unobtrusive/0.2.8/SlidingMarker.min.js')
  })
  .then(function() {
    initialize();
    run();
  });
  
});

var marker, map;
function initialize() {
    var myLatlng = new google.maps.LatLng(32.520204, 34.937258);
    var mapOptions = {
        zoom: 4,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

    marker = new SlidingMarker({
        position: myLatlng,
        map: map,
        title: 'I\m sliding marker'
    });

    var $log = $("#log");
    
    $log.html(
        "<b>left click</b> to call setPosition<br/>" + 
        "<b>right click</b> to call setPositionNotAnimated<br/>");
    
    google.maps.event.addListener(marker, 'position_changed', function () {
        $log.html($log.html() + "marker.position_changed<br/>");
    });
}

function run() {
  google.maps.event.addListener(marker, 'animationposition_changed', function() {
      map.panTo(marker.getAnimationPosition());
  });

  var clickHandler = function (event, clickType) {
      var duration = parseInt($('#durationOption').val());

      if (duration < 0) {
          duration = 1;
          $('#durationOption').val(duration);
      }

      marker.setDuration(duration);
      marker.setEasing($('#easingOption').val());

      if (clickType === "left") {
          marker.setPosition(event.latLng);
      } else {
          marker.setPositionNotAnimated(event.latLng);
      }
  };
  
  var leftClickHandler = function(event) { clickHandler(event, "left") };
  var rightClickHandler = function(event) { clickHandler(event, "right") };

  google.maps.event.addListener(map, 'click', leftClickHandler);
  google.maps.event.addListener(map, 'rightclick', rightClickHandler);

  var printEvent = function (instance, eventName) {
      google.maps.event.addListener(instance, eventName, function () {
          console.log("Event: " + eventName);
      });
  };

  printEvent(marker, "click");
  printEvent(marker, "map_changed");
  printEvent(marker, "position_changed");
  printEvent(marker, "animationposition_changed");

  if (window.location.hash == "#iframe") {
      $('#backLink').hide();
      $('#controls').css('height', '55px');
  }  
}
<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"></script>
    <script data-require="angular-load@*" data-semver="0.2.0" src="https://rawgit.com/urish/angular-load/0.2.0/angular-load.min.js"></script>
    <script data-require="jquery@*" data-semver="2.2.0" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <script data-require="jquery-easing@*" data-semver="0.1.3" src="//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <p>Hello {{name}}!</p>
    <div id="map_canvas"></div>
    <div id="controls" class="control">
      <div class="row">
        <label for="easingOption">Easing:</label>
        <select id="easingOption">
          <option value="linear">linear</option>
          <option value="swing">swing</option>
          <option value="easeInQuad">easeInQuad</option>
          <option value="easeOutQuad">easeOutQuad</option>
          <option value="easeInOutQuad">easeInOutQuad</option>
          <option value="easeInCubic">easeInCubic</option>
          <option value="easeOutCubic">easeOutCubic</option>
          <option value="easeInOutCubic">easeInOutCubic</option>
          <option value="easeInQuart">easeInQuart</option>
          <option value="easeOutQuart">easeOutQuart</option>
          <option value="easeInOutQuart">easeInOutQuart</option>
          <option value="easeInQuint">easeInQuint</option>
          <option value="easeOutQuint">easeOutQuint</option>
          <option value="easeInOutQuint" selected="">easeInOutQuint</option>
          <option value="easeInSine">easeInSine</option>
          <option value="easeOutSine">easeOutSine</option>
          <option value="easeInOutSine">easeInOutSine</option>
          <option value="easeInExpo">easeInExpo</option>
          <option value="easeOutExpo">easeOutExpo</option>
          <option value="easeInOutExpo">easeInOutExpo</option>
          <option value="easeInCirc">easeInCirc</option>
          <option value="easeOutCirc">easeOutCirc</option>
          <option value="easeInOutCirc">easeInOutCirc</option>
          <option value="easeInElastic">easeInElastic</option>
          <option value="easeOutElastic">easeOutElastic</option>
          <option value="easeInOutElastic">easeInOutElastic</option>
          <option value="easeInBack">easeInBack</option>
          <option value="easeOutBack">easeOutBack</option>
          <option value="easeInOutBack">easeInOutBack</option>
          <option value="easeInBounce">easeInBounce</option>
          <option value="easeOutBounce">easeOutBounce</option>
          <option value="easeInOutBounce">easeInOutBounce</option>
        </select>
      </div>
      <div class="row">
        <label for="durationOption">Duration:</label>
        <input type="number" id="durationOption" value="1000" />
      </div>
      <div class="row" id="backLink">
        <a href="https://github.com/terikon/marker-animate-unobtrusive">More on github →</a>
      </div>
    </div>
    <div id="log" class="control"></div>
  </body>

</html>
html, body, #map_canvas {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    font-family: "Lucida Grande", Helvetica, Arial, sans-serif;
    font-size: 12px;
}

.control {
    position: absolute;
    bottom: 28px;
    right: 6px;
    width: 200px;
    height: 78px;
    background: rgba(0,0,0,0.85);
    box-shadow: rgba(0,0,0,0.5) 0 3px 5px;
    -moz-box-shadow: rgba(0,0,0,0.5) 0 3px 5px;
    -webkit-box-shadow: rgba(0,0,0,0.5) 0 3px 5px;
    color: #fff;
    padding: 10px;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;
}

#controls {
    bottom: 28px;
    right: 6px;
    width: 200px;
    height: 78px;
}

#log {
    bottom: 28px;
    left: 6px;
    width: 300px;
    height: 78px;
    overflow-y: scroll;
}

#controls .row {
    overflow: hidden;
    margin-bottom: 10px;
}

#controls .row label {
    width: 60px;
    float: left;
    font-weight: bold;
    margin-right: 10px;
    line-height: 23px;
}

#controls .row select,
#controls .row input {
    width: 120px;
    float: left;
}

#controls .row input#durationOption {
    width: 113px;
}

#controls .row a {
    display: block;
    color: #7EB1FF;
    text-decoration: none;
    font-size: 10px;
}