この例のように、私が構築しているミニアプリで alber/orthographic の間をスムーズに移行したいと思います:
http://mbostock.github.io/d3/talk/20111018/#27
ただし、このスムーズな遷移は v3 では壊れているように見えますが、マップ パスの遷移がかなり途切れ途切れになっています。
コードは非常に簡単です。マップを albers として初期化し、ortho() を実行して更新します。
function ortho() {
var self = this,
h = 1000,
w = document.width;
this.projection = d3.geo.orthographic()
.scale(500)
.translate([ (w - 300) / 2, h / 2])
.clipAngle(90)
.rotate([90, 0, 0])
.precision(.1);
this.path = d3.geo.path()
.projection(this.projection);
//update path WITH transition
d3.selectAll('path')
.transition()
.duration(900)
.attr('d', app.path);
}
マップはアルバースから正射図に変わりますが、移行はスムーズではありません。どんな考えでも素晴らしいでしょう。