Dirección de conducción pulsable en Google Maps v3

Estoy haciendo un proyecto de google maps y necesito crear una ruta haciendo clic en él.

Mi proyecto tiene 2 puntos que tienen un tiempo y un tiempo predefinidos, y quiero dibujar por mi cuenta el inicio y el final del punto A y B, y no perder la funcionalidad.

Hice otro proyecto en el que puedes hacer clic para dibujar la ruta pero no tiene marcadores, y no se puede arrastrar,este es mi proyecto actual Con el código completo publicaré aquí un código corto solo con mis instrucciones.

Quiero que mi primer clic en el punto A y el segundo mi punto B, y la posibilidad de arrastrarlos, como el proyecto vinculado.

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);    
    })      

}   

Aquí estoy actualizando mi código, solo he hecho el camino A, ese es el primer punto intermedio, el segundo es un tiempo predeterminado predefinido, en el que se hace clic, se obtiene el tiempo y se coloca dentro del "origen".

    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);    
    })      

Esta es mi prueba con el código completo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta