JavaScript實現計算多邊形質心的方法樣本,javascript質心

來源:互聯網
上載者:User

JavaScript實現計算多邊形質心的方法樣本,javascript質心

本文執行個體講述了JavaScript實現計算多邊形質心的方法。分享給大家供大家參考,具體如下:

最近要基於百度地圖顯示多邊形的標註,所以就研究了下計算Polygon的質心,代碼如下:

function Area(p0,p1,p2){  var area = 0.0 ;  area = p0.lng * p1.lat + p1.lng * p2.lat + p2.lng * p0.lat - p1.lng * p0.lat - p2.lng * p1.lat - p0.lng * p2.lat;  return area / 2 ;}//line 249 計算polygon的質心function getPolygonAreaCenter(points) {  var sum_x = 0;  var sum_y = 0;  var sum_area = 0;  var p1 = points[1];  debugger;  for (var i = 2; i < points.length; i++) {    p2=points[i];    area = Area(points[0],p1,p2) ;    sum_area += area ;    sum_x += (points[0].lng + p1.lng + p2.lng) * area;    sum_y += (points[0].lat + p1.lat + p2.lat) * area;    p1 = p2 ;  }  var xx = sum_x / sum_area / 3;  var yy = sum_y / sum_area / 3;  return new BMap.Point(xx, yy);}

標註文字的效果如下:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.