Acercando SVG con Hammer.js

Estoy escribiendo una aplicación web multiplataforma que muestra información usando SVG. Necesito tener una interfaz multitáctil para desplazar y acercar el gráfico SVG. De mi investigación, parece que Hammer.js es mi mejor enfoque, y estoy usando la versión de la biblioteca jQuery.

Puedo desplazar y hacer zoom en la imagen usando la propiedad viewBox del SVG. El problema que tengo es usar la información del punto central durante el zoom de pellizco (frente a la escala desde la esquina superior izquierda). Ese punto central, donde sea que esté en mi imagen, debe permanecer en el centro del pellizco. Claramente, la solución es modificar las dos primeras partes del viewBox, pero tengo problemas para determinar los valores correctos. El punto central (event.gesture.center) parece estar en las coordenadas de la página del navegador, por lo que necesito averiguar cómo escalar esto de manera confiable y luego calcular las coordenadas x y y del viewBox. Busqué ejemplos, pero no pude encontrar nada que estuviera muy relacionado.

¿Es el atributo viewBox la mejor manera de escalar imágenes SVG? ¿Hay mejores alternativas? ¿Alguien tiene código de muestra para hacer zoom en una imagen SVG desde el centro de pellizco?

Además, estoy notando que a pesar de que estoy vinculando el manejo del evento al elemento SVG, el gesto de pellizco parece funcionar desde cualquier lugar de la página. No es el manejo predeterminado del pinchazo del navegador porque solo está enfocando la imagen SVG usando mi código. Aquí está el código que estoy usando para vincular el evento pinch:

$(window.demoData.svgElement).hammer().on("pinch", function (event) {
    event.preventDefault();
    ...
});

Gracias por cualquier ayuda en estos dos temas.