Какой самый элегантный способ нарисовать спроецированный прямоугольник на карте с помощью d3.js?
Это решение хорошо для кругов
var circ = d3.geo.circle();
var circle = g.selectAll("path1")
.data(dataset)
circle.enter()
.append("path")
.attr("class", "point")
.datum(function(d) {
return circ
.origin([d.x, d.y])
.angle(3)()
})
.attr("d", path)
также объясняется в разделе "Круговой клип и проекция с орфографическим D3"
Во всяком случае, очевидно, что d3.geo.rect()
нет, и я действительно не могу понять, какой правильный вход, который хочет использовать d3.geo.path()
.
Возьмем, к примеру, этот набор координат:
var route = {
type: "LineString",
coordinates: [
[0,0],
[0,60],
[60,60],
[60,0],
]
}
svg.append("path")
.datum(route)
.attr("class", "route")
.attr("d", path);
в результате получается этот спроецированный прямоугольник:
Вы можете видеть, что верхняя линия изогнута и не следует за проекцией. Это звучит правильно, поскольку следует геодезической (параллели определяются не так, как меридианы), но тогда как я могу определить линию, следующую за параллелью?
Большое спасибо за Вашу помощь!