D3 zoom manualmente, cómo configurar la traducción para zoom

Necesito hacer una transición manualmente, ya que sé sobre el zoom d3, el zoom no escuchará mi zoom manual, por lo que después del zoom manual, cuando uso el mouse para arrastrar o la rueda del mouse para desplazarme, el zoom d3 comenzará el evento del anterior posición (traducir) y valor de escala que almacenó el zoom d3, es tan terrible para mi mapa. Por lo tanto, necesito establecer la traducción y la escala del zoom después de mi zoom manual, y puedo configurar la escala del zoom, pero no sé el valor para establecer la traducción del zoom.

       g.transition()
        .duration(1000)
        .attr("transform", "translate(" + (window_width / 2 + translateX) + "," + (window_height / 2 ) + ")scale(" + zoomLevel + ")translate(" + (-x + 10) + "," + -y + ")")
        .each("end", function () {
            if (zoomLevel > 1) {
                $("#zoom_control").show();
                showCenteredTextInCircle();
                // zoom.scale(zoomLevel);
                // zoom.translate([x*zoomLevel, y*zoomLevel]);
            }
        });

Este código es referencia ded3-zoom-example

¿Alguien sabe el valor de traducción de zoom correcto después de mi transición manualmente? ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta