我想以与 Google Charts 类似的方式使用 Datamaps.js 来选择世界各地的一些地区。
首先,我想访问默认的“ 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 投影,因为我目前正在使用墨卡托。