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 相关文章推荐
一个符号插入器 中用到的js代码
Sep 04 Javascript
DOM_window对象属性之--clipboardData对象操作代码
Feb 03 Javascript
JavaScript对象创建及继承原理实例解剖
Feb 28 Javascript
JS小功能(onmouseover实现选择月份)实例代码
Nov 28 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
Jan 05 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
Jun 24 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
Jun 26 jQuery
详解微信小程序Page中data数据操作和函数调用
Sep 27 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
Sep 19 Javascript
vscode中eslint插件的配置(prettier配置无效)
Sep 10 Javascript
十分钟教你上手ES2020新特性
Feb 12 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
Oct 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
德生PL330的评价与改造
2021/03/02 无线电
PHP+javascript模拟Matrix画面
2006/10/09 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
PHP 实现重载
2021/03/09 PHP
javascript中window.event事件用法详解
2012/12/11 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
Python代码太长换行的实现
2019/07/05 Python
使用django实现一个代码发布系统
2019/07/18 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
全球工业:Global Industrial
2020/02/01 全球购物
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
心理健康心得体会
2014/01/02 职场文书
大型活动策划方案
2014/01/12 职场文书
安全生产先进个人材料
2014/02/06 职场文书
推荐信怎么写
2014/05/09 职场文书
松材线虫病防治方案
2014/06/15 职场文书
档案工作个人总结
2015/03/03 职场文书
开工典礼致辞
2015/07/29 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
Python基础之函数嵌套知识总结
2021/05/23 Python