Datamaps.js получает доступ к проекции по умолчанию и изменяет ее

Я хотел бы использовать Datamaps.js таким же образом, как Google Charts, чтобы выбрать некоторые регионы по всему миру.

Во-первых, я хотел бы получить доступ к функцииsetProjection по умолчанию, но я не знаю, как это сделать.

Затем я хотел бы создать прогнозы в нескольких регионах мира. Тем не менее, я видел только пример Африки в сети Datamaps

Любая помощь будет оценена.

РЕДАКТИРОВАТЬ:

То, что я сейчас тестирую, это этот код. Конечно, это можно улучшить, но это работает:

    function getProjection() {
  //Projection por defecto
  var currentProjection;
  var region = $("#mapRegions")[0].value;

  if (region === 0) {
    // Zoom in on World
    currentProjection = function(element) {
      var projection = d3.geo.mercator()
        .center([0, 20])
        .rotate([-10, 0])
        .scale(65)
        .translate([element.offsetWidth / 2, element.offsetHeight / 2]);
      var path = d3.geo.path()
        .projection(projection);

      return {
        path: path,
        projection: projection
      };
    }
  } else if (region == 1) {
    // Zoom in on Africa
    currentProjection = function(element) {
      var projection = d3.geo.mercator()
        .center([23, 5])
        .rotate([4.4, 0])
        .scale(150)
        .translate([element.offsetWidth / 2, element.offsetHeight / 2]);
      var path = d3.geo.path()
        .projection(projection);

      return {
        path: path,
        projection: projection
      };
    }
  } else if (region == 2) {
    // Zoom in on Europa
    currentProjection = function(element) {
      var projection = d3.geo.mercator()
        .center([45, 60])
        .rotate([0, 0])
        .scale(150)
        .translate([element.offsetWidth / 2, element.offsetHeight / 2]);
      var path = d3.geo.path()
        .projection(projection);

      return {
        path: path,
        projection: projection
      };
    }
  }
  return currentProjection;
}

Ключ был в том, чтобы изменить проекцию d3.geo, так как я сейчас работаю с Mercator.

0 ответов

Другие вопросы по тегам