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中的eval函数
Nov 02 Javascript
firefox下对ajax的onreadystatechange的支持情况分析
Dec 14 Javascript
js文本框输入点回车触发确定兼容IE、FF等
Nov 19 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
Jan 05 Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 Javascript
JavaScript交换两个变量值的七种解决方案
Dec 01 Javascript
Bootstrap表单控件学习使用
Mar 07 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
Apr 19 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
May 18 Javascript
JavaScript实现三级联动效果
Jul 15 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
May 31 Javascript
解决vue的过渡动画无法正常实现问题
Oct 31 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
JS 判断代码全收集
2009/04/28 Javascript
JQuery从头学起第一讲
2010/07/04 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
使用python Django做网页
2013/11/04 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
20招让你的Python飞起来!
2016/09/27 Python
python构建深度神经网络(续)
2018/03/10 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
python实现批量文件重命名
2019/10/31 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
2020/03/05 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
师范教师毕业鉴定
2014/01/13 职场文书
入学申请自荐信范文
2014/02/26 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
小学生期末评语
2014/04/21 职场文书
2014年师德承诺书
2014/05/23 职场文书
学校志愿者活动总结
2014/06/27 职场文书
大学生在校表现评语
2014/12/31 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
《比的意义》教学反思
2016/02/18 职场文书
MySQL之DML语言
2021/04/05 MySQL
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python