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 相关文章推荐
用Javascript数组处理多个字符串的连接问题
Aug 20 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
Feb 06 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
Sep 09 Javascript
Bootstrap被封装的弹层
Jul 20 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
jquery dataTable 后台加载数据并分页实例代码
Jun 07 jQuery
jQuery图片加载失败替换默认图片方法汇总
Nov 29 jQuery
JS实现分页导航效果
Feb 19 Javascript
vue实现移动端触屏拖拽功能
Aug 21 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
Sep 22 Javascript
详解JavaScript原型与原型链
Nov 16 Javascript
JS前端canvas交互实现拖拽旋转及缩放示例
Aug 05 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
我的论坛源代码(六)
2006/10/09 PHP
PHP初学入门
2006/11/19 PHP
php设计模式 Template (模板模式)
2011/06/26 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
深入理解Python中装饰器的用法
2016/06/28 Python
Java及python正则表达式详解
2017/12/27 Python
使用python3实现操作串口详解
2019/01/01 Python
PyQt5实现简易电子词典
2019/06/25 Python
python读写csv文件方法详细总结
2019/07/05 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
小学生自我鉴定
2013/10/12 职场文书
银行员工职业规划范文
2014/01/21 职场文书
销售经理工作职责
2014/02/03 职场文书
结婚喜宴主持词
2014/03/14 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
安全宣传标语口号
2014/06/06 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
文体活动总结
2015/02/04 职场文书
普希金的诗歌赏析(3首)
2019/08/20 职场文书
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis