diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js
index 8f6e6803d3b..76ae00f14dc 100644
--- a/src/plot_api/plot_api.js
+++ b/src/plot_api/plot_api.js
@@ -2762,11 +2762,6 @@ function makePlotFramework(gd) {
fullLayout._glcontainer.enter().append('div')
.classed('gl-container', true);
- fullLayout._geocontainer = fullLayout._paperdiv.selectAll('.geo-container')
- .data([0]);
- fullLayout._geocontainer.enter().append('div')
- .classed('geo-container', true);
-
fullLayout._paperdiv.selectAll('.main-svg').remove();
fullLayout._paper = fullLayout._paperdiv.insert('svg', ':first-child')
@@ -2810,6 +2805,9 @@ function makePlotFramework(gd) {
// single ternary layer for the whole plot
fullLayout._ternarylayer = fullLayout._paper.append('g').classed('ternarylayer', true);
+ // single geo layer for the whole plot
+ fullLayout._geolayer = fullLayout._paper.append('g').classed('geolayer', true);
+
// upper shape layer
// (only for shapes to be drawn above the whole plot, including subplots)
var layerAbove = fullLayout._paper.append('g')
@@ -2824,7 +2822,6 @@ function makePlotFramework(gd) {
// fill in image server scrape-svg
fullLayout._glimages = fullLayout._paper.append('g').classed('glimages', true);
- fullLayout._geoimages = fullLayout._paper.append('g').classed('geoimages', true);
// lastly info (legend, annotations) and hover layers go on top
// these are in a different svg element normally, but get collapsed into a single
diff --git a/src/plot_api/subroutines.js b/src/plot_api/subroutines.js
index ceb2a4dbf64..c66c7e77216 100644
--- a/src/plot_api/subroutines.js
+++ b/src/plot_api/subroutines.js
@@ -306,12 +306,6 @@ exports.doModeBar = function(gd) {
// no need to do this for gl2d subplots,
// Plots.linkSubplots takes care of it all.
- subplotIds = Plots.getSubplotIds(fullLayout, 'geo');
- for(i = 0; i < subplotIds.length; i++) {
- var geo = fullLayout[subplotIds[i]]._subplot;
- geo.updateFx(fullLayout.hovermode);
- }
-
return Plots.previousPromises(gd);
};
diff --git a/src/plots/cartesian/graph_interact.js b/src/plots/cartesian/graph_interact.js
index 835873e5e39..a1a26928d28 100644
--- a/src/plots/cartesian/graph_interact.js
+++ b/src/plots/cartesian/graph_interact.js
@@ -974,6 +974,8 @@ function createHoverText(hoverData, opts) {
contrastColor = tinycolor(traceColor).getBrightness() > 128 ?
'#000' : Color.background;
+ // to get custom 'name' labels pass cleanPoint
+ if(d.nameOverride !== undefined) d.name = d.nameOverride;
if(d.name && d.zLabelVal === undefined) {
// strip out our pseudo-html elements from d.name (if it exists at all)
diff --git a/src/plots/geo/geo.js b/src/plots/geo/geo.js
index 75bd8e37261..4d9549da7f2 100644
--- a/src/plots/geo/geo.js
+++ b/src/plots/geo/geo.js
@@ -25,7 +25,6 @@ var createGeoZoom = require('./zoom');
var createGeoZoomReset = require('./zoom_reset');
var constants = require('./constants');
-var xmlnsNamespaces = require('../../constants/xmlns_namespaces');
var topojsonUtils = require('../../lib/topojson_utils');
var topojsonFeature = require('topojson-client').feature;
@@ -33,14 +32,12 @@ var topojsonFeature = require('topojson-client').feature;
addProjectionsToD3(d3);
-function Geo(options, fullLayout) {
+function Geo(options) {
this.id = options.id;
this.graphDiv = options.graphDiv;
this.container = options.container;
this.topojsonURL = options.topojsonURL;
- this.hoverContainer = null;
-
this.topojsonName = null;
this.topojson = null;
@@ -54,11 +51,7 @@ function Geo(options, fullLayout) {
this.zoom = null;
this.zoomReset = null;
- this.xaxis = null;
- this.yaxis = null;
-
this.makeFramework();
- this.updateFx(fullLayout.hovermode);
this.traceHash = {};
}
@@ -178,15 +171,6 @@ proto.onceTopojsonIsLoaded = function(geoCalcData, geoLayout) {
this.render();
};
-proto.updateFx = function(hovermode) {
- this.showHover = (hovermode !== false);
-
- // TODO should more strict, any layout.hovermode other
- // then false will make all geo subplot display hover text.
- // Instead each geo should have its own geo.hovermode
- // to control hover visibility independently of other subplots.
-};
-
proto.makeProjection = function(geoLayout) {
var projLayout = geoLayout.projection,
projType = projLayout.type,
@@ -232,38 +216,30 @@ proto.makePath = function() {
this.path = d3.geo.path().projection(this.projection);
};
-/*
- *
- *
- *