window.map_marker = (map, options = {}) -> pos = new google.maps.LatLng(options.lat, options.lng) if options.radius > 0 marker = new google.maps.Circle map: map strokeColor: '#FF0000' strokeOpacity: 0.8 strokeWeight: 2 fillColor: '#FF0000' fillOpacity: 0.35 center: pos radius: options.radius return marker else marker = new google.maps.Marker map: map position: pos title: 'Recorded Location' return marker if options.course p1 = new LatLon(pos.lat(), pos.lng()) speed = options.speed ? 1 p2 = p1.destinationPoint(options.course, Math.max(0.2, speed) * 0.1) lineCoordinates = [ pos new google.maps.LatLng(p2.lat(), p2.lon()) ] lineSymbol = path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW arrow = new google.maps.Polyline map: map path: lineCoordinates icons: [ { icon: lineSymbol offset: '100%' } ] return arrow