@@ -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