Direção de direção clicável no Google Maps v3

Estou fazendo um projeto do Google Maps e preciso criar uma rota clicando nela.

Meu projeto tem 2 pontos que tem lat e lng pré-definidos, e eu quero desenhar sozinho o início e o fim do ponto A e B e não perder a funcionalidade.

Eu fiz outro projeto que você pode clicar para desenhar a rota, mas não tem marcadores, e não é draggabble,este é o meu projeto atual com o código completo, postarei aqui um código curto apenas com minhas instruções.

Eu quero que meu primeiro clique para o ponto A e o segundo meu ponto B, e eles a possibilidade de arrastá-los, como o projeto ligado

function goma()
{   
    var mapDiv = document.getElementById('mappy');
    var mapOptions = {
    zoom: 12, 
    center: new google.maps.LatLng(-23.563594, -46.654239),
    mapTypeId : google.maps.MapTypeId.ROADMAP
    }
    pode ser ROADMAP, SATELLITE, HYBRID, TERRAIN
    map = new google.maps.Map( mapDiv, mapOptions ); 

    //Render route, etc.
    ren = new google.maps.DirectionsRenderer( {'draggable':true} );
    ren.setMap(map);
    ren.setPanel(document.getElementById("directionsPanel"));
    ser = new google.maps.DirectionsService();

    //Create the route
    ser.route({ 'origin': new google.maps.LatLng(-23.563594, -46.654129), 'destination':  new google.maps.LatLng(
-23.563672, -46.640396), 'travelMode': google.maps.DirectionsTravelMode.DRIVING},function(res,sts) {
        if(sts=='OK')ren.setDirections(res);    
    })      

}   

Estou atualizando aqui meu código, fiz apenas wayA, que é o primeiro waypoint, o segundo é um latLng pré-definido, onde você clica, pega o latLng e coloca dentro da 'origem'.

    google.maps.event.addListener(map, "click", function(event) {
            wayA = new google.maps.Marker({ 
              position: event.latLng,
              map: map                
            });
     });
    ren = new google.maps.DirectionsRenderer( {'draggable':true} );
    ren.setMap(map);
    ren.setPanel(document.getElementById("directionsPanel"));
    ser = new google.maps.DirectionsService();          
    ser.route({ 'origin': wayA, 'destination':  new google.maps.LatLng(
-23.563672, -46.640396), 'travelMode': google.maps.DirectionsTravelMode.DRIVING},function(res,sts) {
        if(sts=='OK')ren.setDirections(res);    
    })      

Este é o meu teste com o código completo

questionAnswers(1)

yourAnswerToTheQuestion