@@ -456,7 +456,7 @@ proto.initFx = function(calcData, fullLayout) {
456456 optsNow . _input . bearing = optsNow . bearing = viewNow . bearing ;
457457 optsNow . _input . pitch = optsNow . pitch = viewNow . pitch ;
458458
459- gd . emit ( 'plotly_relayout' , self . getViewEdits ( viewNow ) ) ;
459+ gd . emit ( 'plotly_relayout' , self . getViewEditsWithDerived ( viewNow ) ) ;
460460 }
461461 wheeling = false ;
462462
@@ -504,7 +504,7 @@ proto.initFx = function(calcData, fullLayout) {
504504
505505 function emitUpdate ( ) {
506506 var viewNow = self . getView ( ) ;
507- gd . emit ( 'plotly_relayouting' , self . getViewEdits ( viewNow ) ) ;
507+ gd . emit ( 'plotly_relayouting' , self . getViewEditsWithDerived ( viewNow ) ) ;
508508 }
509509
510510 map . on ( 'drag' , emitUpdate ) ;
@@ -527,7 +527,7 @@ proto.initFx = function(calcData, fullLayout) {
527527 optsNow . _input . pitch = optsNow . pitch = viewNow . pitch ;
528528
529529 gd . emit ( 'plotly_doubleclick' , null ) ;
530- gd . emit ( 'plotly_relayout' , self . getViewEdits ( viewNow ) ) ;
530+ gd . emit ( 'plotly_relayout' , self . getViewEditsWithDerived ( viewNow ) ) ;
531531 } ) ;
532532
533533 // define event handlers on map creation, to keep one ref per map,
@@ -747,11 +747,22 @@ proto.getView = function() {
747747 var mapCenter = map . getCenter ( ) ;
748748 var center = { lon : mapCenter . lng , lat : mapCenter . lat } ;
749749
750+ var canvas = map . getCanvas ( ) ;
751+ var w = canvas . width ;
752+ var h = canvas . height ;
750753 return {
751754 center : center ,
752755 zoom : map . getZoom ( ) ,
753756 bearing : map . getBearing ( ) ,
754- pitch : map . getPitch ( )
757+ pitch : map . getPitch ( ) ,
758+ _derived : {
759+ coordinates : [
760+ map . unproject ( [ 0 , 0 ] ) . toArray ( ) ,
761+ map . unproject ( [ w , 0 ] ) . toArray ( ) ,
762+ map . unproject ( [ w , h ] ) . toArray ( ) ,
763+ map . unproject ( [ 0 , h ] ) . toArray ( )
764+ ]
765+ }
755766 } ;
756767} ;
757768
@@ -768,6 +779,13 @@ proto.getViewEdits = function(cont) {
768779 return obj ;
769780} ;
770781
782+ proto . getViewEditsWithDerived = function ( cont ) {
783+ var id = this . id ;
784+ var obj = this . getViewEdits ( cont ) ;
785+ obj [ id + '._derived' ] = cont . _derived ;
786+ return obj ;
787+ } ;
788+
771789function getStyleObj ( val ) {
772790 var styleObj = { } ;
773791
0 commit comments