Я хотел бы воспользоваться функциональностью DIF для изменения масштаба изображения, но мне нужно сделать все переводы/масштабирование моего SVG с использованием свойства viewBox вместо метода преобразования, как показано в пример D3: http://bl.ocks.org/mbostock/3680999Как использовать поведение масштабирования D3 с помощью ViewBox вместо преобразования
Как достичь такого же масштаба/перевода, используя только viewBox? Вот мой код до сих пор, который не работает хорошо, как метод преобразования.
function zoomed(d) {
if (!scope.drawLine) {
var scale = d3.event.scale;
var translation = d3.event.translate;
//This works, but I can't use it for reason's I won't go into now
//mapSVG_G.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
var newViewBox = [
initialViewBox[0] - translation[0],
initialViewBox[1] - translation[1],
initialViewBox[2]/scale,
initialViewBox[3]/scale
];
mapSVG.attr('viewBox', newViewBox);
}
}
К сожалению, функции перевода этого решения неверны. – Doughy