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 相关文章推荐
加速IE的Javascript document输出的方法
Dec 02 Javascript
jquery弹出框的用法示例(2)
Aug 26 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
Oct 29 Javascript
JavaScript删除数组元素的方法
Mar 20 Javascript
关于JS中prototype的理解
Sep 07 Javascript
jQuery实现简单滚动动画效果
Apr 07 Javascript
简单封装js的dom查询实例代码
Jul 08 Javascript
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
d3.js实现自定义多y轴折线图的示例代码
May 30 Javascript
详解在HTTPS 项目中使用百度地图 API
Apr 26 Javascript
如何使用Javascript中的this关键字
May 28 Javascript
HTML+JS实现在线朗读器
Feb 15 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 日期时间函数的高级应用技巧
2009/10/10 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
JavaScript使用过程中需要注意的地方和一些基本语法
2010/08/26 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
vue中过滤器filter的讲解
2019/01/21 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
js设置默认时间跨度过程详解
2019/07/17 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
python中的yield使用方法
2014/02/11 Python
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
python文本数据相似度的度量
2018/03/12 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
Python实现微信小程序支付功能
2019/07/25 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
什么是python类属性
2020/06/10 Python
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
《童年》教学反思
2014/02/18 职场文书
《满井游记》教学反思
2014/02/26 职场文书
端午节活动策划方案
2014/03/09 职场文书
代理人委托书
2014/08/01 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
MySQL优化及索引解析
2022/03/17 MySQL