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.