JavaScript实现计算多边形质心的方法示例


Posted in Javascript onJanuary 31, 2018

本文实例讲述了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);
}

标注文字的效果如下:

JavaScript实现计算多边形质心的方法示例

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
html读出文本文件内容
Jan 22 Javascript
使用JS操作页面表格,元素的一些技巧
Feb 02 Javascript
JavaScript定义类的几种方式总结
Jan 06 Javascript
jquery实现textarea输入框限制字数的方法
Jan 15 Javascript
使用AngularJS实现表单向导的方法
Jun 19 Javascript
JavaScript中this详解
Sep 01 Javascript
javascript中checkbox使用方法简单实例演示
Nov 17 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
Jun 27 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
Feb 19 Javascript
深入学习 JavaScript中的函数调用
Mar 23 Javascript
原生javascript AJAX 三级联动的实现代码
May 04 Javascript
微信小程序实现的一键连接wifi功能示例
Apr 24 Javascript
微信小程序switch开关选择器使用详解
Jan 31 #Javascript
详解Angular调试技巧之报错404(not found)
Jan 31 #Javascript
微信小程序slider组件使用详解
Jan 31 #Javascript
vue项目实现记住密码到cookie功能示例(附源码)
Jan 31 #Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
Jan 31 #Javascript
微信小程序progress组件使用详解
Jan 31 #Javascript
微信小程序button组件使用详解
Jan 31 #Javascript
You might like
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
JavaScript基于用户照片姓名生成海报
2020/05/29 Javascript
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
基于python调用psutil模块过程解析
2019/12/20 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
火锅店创业计划书范文
2014/02/02 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
电子商务专业求职信
2014/03/08 职场文书
《锄禾》教学反思
2014/04/08 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
小学生差生评语
2014/12/29 职场文书
思想道德自我评价2015
2015/03/09 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
2015年度保密工作总结
2015/04/24 职场文书
小学入学感言
2015/08/01 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书
MySQL Router的安装部署
2021/04/24 MySQL
Mybatis是这样防止sql注入的
2021/12/06 Java/Android