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修改图片src的方法
Jan 27 Javascript
js代码实现随机颜色的小方块
Jul 30 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
Sep 30 Javascript
使用three.js 画渐变的直线
Jun 05 Javascript
JS实现title标题栏文字不间断滚动显示效果
Sep 07 Javascript
JS输出空格的简单实现方法
Sep 08 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
May 24 Javascript
浅谈vue2 单页面如何设置网页title
Nov 08 Javascript
elementui的默认样式修改方法
Feb 23 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
Mar 21 Javascript
百度小程序自定义通用toast组件
Jul 17 Javascript
教你搭建按需加载的Vue组件库(小结)
Jul 29 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
php调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
php使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
JS简单实现数组去重的方法分析
2017/10/14 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
2019/08/11 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
批处理与python代码混合编程的方法
2016/05/19 Python
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
python中的set实现不重复的排序原理
2018/01/24 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
简历自荐信
2013/12/02 职场文书
财务部出纳岗位职责
2013/12/22 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
2014年学习部工作总结
2014/11/12 职场文书