Javascript d3 SVG平移和缩放一组,但仅平移另一组

Javascript d3 SVG平移和缩放一组,但仅平移另一组,javascript,svg,d3.js,Javascript,Svg,D3.js,我正在用d3建立一个活动图。我展示了一张世界地图,然后是一些代表活动的点。 地图应该是可移动和可缩放的 我目前用于转换的函数如下所示: function move() { var t = d3.event.translate; var s = d3.event.scale; var h = height / 4; t[ 0 ] = Math.min( ( width / height ) * ( s - 1 ), Math.m

我正在用d3建立一个活动图。我展示了一张世界地图,然后是一些代表活动的点。 地图应该是可移动和可缩放的

我目前用于转换的函数如下所示:

function move() {

    var t = d3.event.translate;
    var s = d3.event.scale;
    var h = height / 4;


    t[ 0 ] = Math.min(
        ( width / height ) * ( s - 1 ),
        Math.max( width * ( 1 - s ), t[ 0 ] )
    );

    t[ 1 ] = Math.min(
        h * ( s - 1 ) + h * s,
        Math.max( height * ( 1 - s ) - h * s, t[ 1 ] )
    );

    zoom.translate( t );
    ctrl.g.attr( 'transform', 'translate(' + t + ')scale(' + s + ')' );
    ctrl.points.attr( 'transform', 'translate(' + t + ')' );

    //adjust the country hover stroke width based on zoom level
    d3.selectAll( '.country' ).style( 'stroke-width', 1.5 / s );

}
这会导致圆点四处移动,而不是根据纬度和经度保持其位置。任何帮助都将不胜感激

编辑:
我忘了提到点应该保持其比例,也就是说,即使我放大了世界地图,点也不应该缩放,只应该移动。

我找到了解决方案

我忘了缩小分数:/

我补充说

d3.selectAll( '.point' ).attr('r', 5/s);
使用地图的其余部分缩放点