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 相关文章推荐
破除一些网站复制、右键限制
Nov 04 Javascript
基于jquery的页面划词搜索JS
Sep 14 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
Aug 08 Javascript
实现高性能JavaScript之执行与加载
Jan 30 Javascript
jquery模拟多级复选框效果的简单实例
Jun 08 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
Oct 28 Javascript
JavaScript通过filereader接口读取文件
May 10 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
Jul 24 Javascript
Vue 表单控件绑定的实现示例
Aug 11 Javascript
JS加密插件CryptoJS实现AES加密操作示例
Aug 16 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
Oct 09 Javascript
vue日历/日程提醒/html5本地缓存功能
Sep 02 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 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
PHP中session变量的销毁
2014/02/27 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
javascript引导程序
2008/10/26 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
wxPython窗口的继承机制实例分析
2014/09/28 Python
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
Python用threading实现多线程详解
2017/02/03 Python
基于Python os模块常用命令介绍
2017/11/03 Python
详解Python中的四种队列
2018/05/21 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
PyTorch的torch.cat用法
2020/06/28 Python
详解Python中如何将数据存储为json格式的文件
2020/11/18 Python
2013英文求职信模板范文
2013/11/15 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
社团活动总结书
2014/06/27 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
房屋授权委托书范本
2014/10/07 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
房产公证书样本
2015/01/23 职场文书
法定授权委托证明书
2015/06/18 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers