D3的投影功能如何适用于路径和点?

时间:2014-05-29 16:06:46

标签: d3.js

我对D3的投影功能的理解是它们与比例函数做同样的事情。他们将GPS坐标映射到像素坐标。这是我目前正在使用的投影。 (我不能详细了解所有变量,但我一直摆弄它们直到地图出现)

 var projection = d3.geo.albers()
                .center([-122.436269,37.798107])
                .rotate([0, 0, 0])
                .parallels([36, 38])
                .scale(300000);

这样可以很好地绘制地图:

.attr("d", d3.geo.path().projection(projection))

当我尝试绘制积分虽然数字很疯狂。

.attr("cx",function(d) {
     return projection([d._lon,d._lat])[0];
})
.attr("cy",function(d) {
     return projection([d._lon,d._lat])[1];
});

我该如何正确地做到这一点?

以下是我通过投影功能获得的一些示例:

[5175.3799972560955, 1808.5108650794136] 
[5158.315547249338, 1823.564395627589] 
[5143.958532762888, 1831.9879789081751] 

在1280x800屏幕上,这些都是关闭的。即使我将它们除以100来缩放它们,它们仍然大部分只是叠加在一起。我使用twitter bootstrap定位了700 * 700 svg。不确定如何将这些考虑在内。我只是假设如果地图好的话,那么相同的投影应该适用于这些点。

0 个答案:

没有答案