Я хотел бы выполнить вращение полигона страны против часовой стрелки вокруг начала координат в d3.geo.
Например, повернем Италию на -7,2 градуса вокруг точки с λ=0,5, φ=49,9. Во-первых, нам нужно преобразовать эти углы Эйлера в параметры аффинного преобразования. В нашем случае параметры будут такими:
affine(0.5, 49.9, -7.2)
scaleX rotY transX rotX scaleY transY
0.9921147 0.1253332 -6.250186 -0.1253332 0.9921147 0.456143
Когда я использую плагин QGIS Affine Transform с такими параметрами, результирующая карта имеет вид .
Когда я применяю те же параметры к projection.stream
в d3.js, результат сильно отличается (и неверен): https://bl.ocks.org/memoryfull/946a8172d074a865c4ff
Я правильно обрабатываю поток проекции в своем коде, потому что (1, 0, 0, 0, 1, 0) аффинное преобразование дает ожидаемый результат отсутствия преобразования.
Спасибо заранее за вашу помощь.
.attr("d", d3.geo.path().projection(d3.geo.transform({ point: function(x, y) { this.stream.point(0.992 * x + 0.125 * y - 6.25, -0.125 * x + 0.992 * y + 0.456); } }) ));
- person Dmitriy Skougarevskiy   schedule 12.10.2015