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 参数中的数组展开 [译]
Sep 21 Javascript
jQuery取id有.的值的方法
May 21 Javascript
贴近用户体验的Jquery日期、时间选择插件
Aug 19 Javascript
分享纯手写漂亮的表单验证
Nov 19 Javascript
限制复选框最多选择项的实现代码
May 30 Javascript
Bootstrap和Java分页实例第二篇
Dec 23 Javascript
Mongoose学习全面理解(推荐)
Jan 21 Javascript
JS实现简单的天数计算器完整实例
Apr 28 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
May 26 Javascript
JavaScript基础心法 数据类型
Mar 05 Javascript
JQuery选中select组件被选中的值方法
Mar 08 jQuery
vue的全局变量和全局拦截请求器的示例代码
Sep 13 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抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
浅析Javascript使用include/require
2013/11/13 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
python编写暴力破解FTP密码小工具
2014/11/19 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
python数据结构之链表的实例讲解
2017/07/25 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
python 实现在Excel末尾增加新行
2018/05/02 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
python tkinter控件布局项目实例
2019/11/04 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
应届生财务会计求职信
2013/11/05 职场文书
个人查摆剖析材料
2014/10/16 职场文书
高三英语教学计划
2015/01/23 职场文书
研究生个人学年总结
2015/02/14 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
工作证明书
2015/06/15 职场文书
公司安全管理制度范本
2015/08/05 职场文书
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android
MySQL主从切换的超详细步骤
2022/06/28 MySQL