Градиентный слайдер текущего региона на пользовательской карте

Как сделать такой же progress bar как progress bar у гугла, но с кастомной картой? Мне нужно, чтобы progress bar отображал черный флажок сверху при наведении на какой-то регион с каким-то значением на кастомной карте (d3js)

map

Помогите, пожалуйста, это сделать, на примере кастомной карты d3js на JSFiddle. Ссылка

// example data from server
var series = [
  ["BLR", 75],
  ["BLZ", 43],
  ["RUS", 50],
  ["RWA", 88],
  ["SRB", 21],
  ["TLS", 43],
  ["REU", 21],
  ["TKM", 19],
  ["TJK", 60],
  ["ROU", 4],
  ["TKL", 44],
  ["GNB", 38],
  ["GUM", 67],
  ["GTM", 2],
  ["SGS", 95],
  ["GRC", 60],
  ["GNQ", 57],
  ["GLP", 53],
  ["JPN", 59],
  ["GUY", 24],
  ["GGY", 4],
  ["GUF", 21],
  ["GEO", 42],
  ["GRD", 65],
  ["GBR", 14],
  ["GAB", 47],
  ["SLV", 15],
  ["GIN", 19],
  ["GMB", 63],
  ["GRL", 56],
  ["ERI", 57],
  ["MNE", 93],
  ["MDA", 39],
  ["MDG", 71],
  ["MAF", 16],
  ["MAR", 8],
  ["MCO", 25],
  ["UZB", 81],
  ["MMR", 21],
  ["MLI", 95],
  ["MAC", 33],
  ["MNG", 93],
  ["MHL", 15],
  ["MKD", 52],
  ["MUS", 19],
  ["MLT", 69],
  ["MWI", 37],
  ["MDV", 44],
  ["MTQ", 13],
  ["MNP", 21],
  ["MSR", 89],
  ["MRT", 20],
  ["IMN", 72],
  ["UGA", 59],
  ["TZA", 62],
  ["MYS", 75],
  ["MEX", 80],
  ["ISR", 77],
  ["FRA", 54],
  ["IOT", 56],
  ["SHN", 91],
  ["FIN", 51],
  ["FJI", 22],
  ["FLK", 4],
  ["FSM", 69],
  ["FRO", 70],
  ["NIC", 66],
  ["NLD", 53],
  ["NOR", 7],
  ["NAM", 63],
  ["VUT", 15],
  ["NCL", 66],
  ["NER", 34],
  ["NFK", 33],
  ["NGA", 45],
  ["NZL", 96],
  ["NPL", 21],
  ["NRU", 13],
  ["NIU", 6],
  ["COK", 19],
  ["XKX", 32],
  ["CIV", 27],
  ["CHE", 65],
  ["COL", 64],
  ["CHN", 16],
  ["CMR", 70],
  ["CHL", 15],
  ["CCK", 85],
  ["CAN", 76],
  ["COG", 20],
  ["CAF", 93],
  ["COD", 36],
  ["CZE", 77],
  ["CYP", 65],
  ["CXR", 14],
  ["CRI", 31],
  ["CUW", 67],
  ["CPV", 63],
  ["CUB", 40],
  ["SWZ", 58],
  ["SYR", 96],
  ["SXM", 31]
];


// Datamaps expect data in format:
// { "USA": { "fillColor": "#42a844", numberOfWhatever: 75},
//   "FRA": { "fillColor": "#8dc386", numberOfWhatever: 43 } }
var dataset = {};

// We need to colorize every country based on "numberOfWhatever"
// colors should be uniq for every value.
// For this purpose we create palette(using min/max series-value)
var onlyValues = series.map(function(obj) {
  return obj[1];
});
var minValue = Math.min.apply(null, onlyValues);
var maxValue = Math.max.apply(null, onlyValues);

// create color palette function
// color can be whatever you wish
var paletteScale = d3.scale.linear()
  .domain([minValue, maxValue])
  .range(["#EFEFFF", "#02386F"]); // blue color

// fill dataset in appropriate format
series.forEach(function(item) { //
  // item example value ["USA", 70]
  var iso = item[0],
    value = item[1];
  dataset[iso] = {
    numberOfThings: value,
    fillColor: paletteScale(value)
  };
});
var map = new Datamap({
  element: document.getElementById("map"),
  projection: 'mercator',
  fills: {
    defaultFill: "#F5F5F5"
  },
  data: dataset,
  geographyConfig: {
    borderColor: '#DEDEDE',
    highlightBorderWidth: 1,
    // don't change color on mouse hover
    highlightFillColor: function(geo) {
      return geo['fillColor'] || '#F5F5F5';
    },
    // only change border
    highlightBorderColor: '#B7B7B7',
    // show desired information in tooltip
    popupTemplate: function(geo, data) {
      // don't show tooltip if country don't present in dataset
      if (!data) {
        return;
      }
      // tooltip content
      return ['<div class="hoverinfo" style="background-color: #353436; color: white">',
        '<strong>', geo.properties.name, '</strong>',
        '<br><strong>', data.numberOfThings, '</strong>',
        '</div>'
      ].join('');
    }
  }
});

window.addEventListener("resize", function() {
  map.resize();
});
#map {
  width: 700px;
  height: 500px;
}

.hoverinfo {
  background-color: #353436;
}
<script src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.3/d3.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/topojson/1.6.9/topojson.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/datamaps/0.5.8/datamaps.all.js"></script>

<div id="map" style="position: relative;"></div>


Ответы (0 шт):