在d3

时间:2018-01-11 03:25:20

标签: javascript d3.js

我无法使用函数path.area()

计算D3中多边形的面积

我试过给它一个坐标列表如下:

var d = [
      [-1, 415.44],
      [146.93, 304.47],
      [195.45, 152.13],
      [-1, 134.64]
    ]

path.area(d)

我也尝试过它(我认为是)一个TopoJSON对象,如下所示:

path.area({        
        "type": "Feature",
        "geometry": {
            "type": "Polygon", 
            "coordinates": d},            
        });

第一次尝试为您提供值0。第二个给你'NaN'。你们知道我做错了吗?作为一个FYI,我需要计算我引用的多边形的面积如下:

d3.select("#IDofpolygon");

1 个答案:

答案 0 :(得分:4)

您必须使用d3.polygonArea,其中:

  

返回指定多边形的有符号区域。如果多边形的顶点是逆时针顺序(假设原点⟨0,0⟩在左上角的坐标系),则返回的区域为正;否则它是负数,或者为零。

以下是演示:



var d = [
  [-1, 415.44],
  [146.93, 304.47],
  [195.45, 152.13],
  [-1, 134.64]
];

var area = d3.polygonArea(d);

console.log(area)

<script src="https://d3js.org/d3.v4.min.js"></script>
&#13;
&#13;
&#13;