Нарисуйте спроецированный прямоугольник на карте с помощью d3.js

Какой самый элегантный способ нарисовать спроецированный прямоугольник на карте с помощью 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);

в результате получается этот спроецированный прямоугольник: введите здесь описание изображения

Вы можете видеть, что верхняя линия изогнута и не следует за проекцией. Это звучит правильно, поскольку следует геодезической (параллели определяются не так, как меридианы), но тогда как я могу определить линию, следующую за параллелью?

Большое спасибо за Вашу помощь!


person leonard vertighel    schedule 11.11.2013    source источник
comment
Если вы хотите использовать прямоугольник, чтобы выделить что-то, а не показать географический объект, может быть проще нарисовать его без проекции.   -  person Lars Kotthoff    schedule 12.11.2013