Como posso evitar a conversão do d3.zoom no primeiro zoom ou panorâmica?

Tento fazer um organograma com zoom e panorâmica. Para fazer isso, preciso chamar .nodeSize, que traduz minha "raiz" para (0,0). Então eu o traduzi novamente por width / 2 e está tudo bem. Mas quando eu implemento o d3.zoom, minha "raiz" volta para (0,0) ... Como posso evitar esse comportament

Aqui está o código em questão:

var svg = d3.select("#svg1").append("svg")
  .attr("width", width)
  .attr("height", height)
  .call(d3.zoom().on("zoom", function () {
  svg.attr("transform", d3.event.transform);
  }))
  .append('g').attr("transform","translate(" + width / 2 + "," + 0 + ")");

Obrigado pela leitura.

EDIT: Eu fiz um JSFiddle para que você possa tentar o meu código atual. Não preste atenção a grandes traingles (eu não os tenho no meu projeto real) =>https: //jsfiddle.net/rhz1n8m4/12

questionAnswers(1)

yourAnswerToTheQuestion