Skip to content

Commit e268cda

Browse files
committed
plotly_relayouting for mapbox plots
1 parent 6852981 commit e268cda

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/plots/mapbox/mapbox.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,14 @@ proto.createMap = function(calcData, fullLayout, resolve, reject) {
182182
map.on('dragstart', unhover);
183183
map.on('zoomstart', unhover);
184184

185+
function emitUpdate() {
186+
var viewNow = self.getView();
187+
gd.emit('plotly_relayouting', self.getViewEdits(viewNow));
188+
}
189+
190+
map.on('drag', emitUpdate);
191+
map.on('zoom', emitUpdate);
192+
185193
map.on('dblclick', function() {
186194
var optsNow = gd._fullLayout[self.id];
187195
Registry.call('_storeDirectGUIEdit', gd.layout, gd._fullLayout._preGUI, self.getViewEdits(optsNow));

test/jasmine/tests/mapbox_test.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,13 +887,18 @@ describe('@noCI, mapbox plots', function() {
887887
it('should respond drag / scroll / double-click interactions', function(done) {
888888
var relayoutCnt = 0;
889889
var doubleClickCnt = 0;
890+
var relayoutingCnt = 0;
890891
var evtData;
891892

892893
gd.on('plotly_relayout', function(d) {
893894
relayoutCnt++;
894895
evtData = d;
895896
});
896897

898+
gd.on('plotly_relayouting', function() {
899+
relayoutingCnt++;
900+
});
901+
897902
gd.on('plotly_doubleclick', function() {
898903
doubleClickCnt++;
899904
});
@@ -930,20 +935,23 @@ describe('@noCI, mapbox plots', function() {
930935

931936
_drag(pointPos, p1, function() {
932937
expect(relayoutCnt).toBe(1, 'relayout cnt');
938+
expect(relayoutingCnt).toBe(2, 'relayouting cnt');
933939
expect(doubleClickCnt).toBe(0, 'double click cnt');
934940
_assert([-19.651, 13.751], 1.234);
935941

936942
return _doubleClick(p1);
937943
})
938944
.then(function() {
939945
expect(relayoutCnt).toBe(2, 'relayout cnt');
946+
expect(relayoutingCnt).toBe(2, 'relayouting cnt');
940947
expect(doubleClickCnt).toBe(1, 'double click cnt');
941948
_assert([-4.710, 19.475], 1.234);
942949

943950
return _scroll(pointPos);
944951
})
945952
.then(function() {
946953
expect(relayoutCnt).toBe(3, 'relayout cnt');
954+
expect(relayoutingCnt).toBeCloseTo(10, -1, 'relayouting cnt');
947955
expect(doubleClickCnt).toBe(1, 'double click cnt');
948956
expect(getMapInfo(gd).zoom).toBeGreaterThan(1.234);
949957
})

0 commit comments

Comments
 (0)