@@ -446,23 +446,24 @@ modeBarButtons.hoverClosestGeo = {
446
446
} ;
447
447
448
448
function handleGeo ( gd , ev ) {
449
- var button = ev . currentTarget ,
450
- attr = button . getAttribute ( 'data-attr' ) ,
451
- val = button . getAttribute ( 'data-val' ) || true ,
452
- fullLayout = gd . _fullLayout ,
453
- geoIds = Plots . getSubplotIds ( fullLayout , 'geo' ) ;
449
+ var button = ev . currentTarget ;
450
+ var attr = button . getAttribute ( 'data-attr' ) ;
451
+ var val = button . getAttribute ( 'data-val' ) || true ;
452
+ var fullLayout = gd . _fullLayout ;
453
+ var geoIds = Plots . getSubplotIds ( fullLayout , 'geo' ) ;
454
454
455
455
for ( var i = 0 ; i < geoIds . length ; i ++ ) {
456
- var geo = fullLayout [ geoIds [ i ] ] . _subplot ;
456
+ var id = geoIds [ i ] ;
457
+ var geoLayout = fullLayout [ id ] ;
457
458
458
459
if ( attr === 'zoom' ) {
459
- var scale = geo . projection . scale ( ) ;
460
+ var scale = geoLayout . projection . scale ;
460
461
var newScale = ( val === 'in' ) ? 2 * scale : 0.5 * scale ;
461
- geo . projection . scale ( newScale ) ;
462
- geo . zoom . scale ( newScale ) ;
463
- geo . render ( ) ;
462
+
463
+ Plotly . relayout ( gd , id + '.projection.scale' , newScale ) ;
464
+ } else if ( attr === 'reset' ) {
465
+ resetView ( gd , 'geo' ) ;
464
466
}
465
- else if ( attr === 'reset' ) geo . zoomReset ( ) ;
466
467
}
467
468
}
468
469
@@ -535,8 +536,8 @@ modeBarButtons.resetViews = {
535
536
button . setAttribute ( 'data-attr' , 'resetLastSave' ) ;
536
537
handleCamera3d ( gd , ev ) ;
537
538
538
- // N.B handleCamera3d also triggers a replot for
539
- // geo subplots.
539
+ resetView ( gd , 'geo' ) ;
540
+ resetView ( gd , 'mapbox' ) ;
540
541
}
541
542
} ;
542
543
@@ -581,22 +582,26 @@ modeBarButtons.resetViewMapbox = {
581
582
attr : 'reset' ,
582
583
icon : Icons . home ,
583
584
click : function ( gd ) {
584
- var fullLayout = gd . _fullLayout ;
585
- var subplotIds = Plots . getSubplotIds ( fullLayout , 'mapbox' ) ;
586
- var aObj = { } ;
587
-
588
- for ( var i = 0 ; i < subplotIds . length ; i ++ ) {
589
- var id = subplotIds [ i ] ;
590
- var subplotObj = fullLayout [ id ] . _subplot ;
591
- var viewInitial = subplotObj . viewInitial ;
592
- var viewKeys = Object . keys ( viewInitial ) ;
593
-
594
- for ( var j = 0 ; j < viewKeys . length ; j ++ ) {
595
- var key = viewKeys [ j ] ;
596
- aObj [ id + '.' + key ] = viewInitial [ key ] ;
597
- }
598
- }
599
-
600
- Plotly . relayout ( gd , aObj ) ;
585
+ resetView ( gd , 'mapbox' ) ;
601
586
}
602
587
} ;
588
+
589
+ function resetView ( gd , subplotType ) {
590
+ var fullLayout = gd . _fullLayout ;
591
+ var subplotIds = Plots . getSubplotIds ( fullLayout , subplotType ) ;
592
+ var aObj = { } ;
593
+
594
+ for ( var i = 0 ; i < subplotIds . length ; i ++ ) {
595
+ var id = subplotIds [ i ] ;
596
+ var subplotObj = fullLayout [ id ] . _subplot ;
597
+ var viewInitial = subplotObj . viewInitial ;
598
+ var viewKeys = Object . keys ( viewInitial ) ;
599
+
600
+ for ( var j = 0 ; j < viewKeys . length ; j ++ ) {
601
+ var key = viewKeys [ j ] ;
602
+ aObj [ id + '.' + key ] = viewInitial [ key ] ;
603
+ }
604
+ }
605
+
606
+ Plotly . relayout ( gd , aObj ) ;
607
+ }
0 commit comments