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 相关文章推荐
DWR Ext 加载数据
Mar 22 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
Aug 23 Javascript
js 函数的副作用分析
Aug 23 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
Aug 24 Javascript
jQuery数据类型小结(14个)
Jan 08 Javascript
javascript入门之window对象【新手必看】
Nov 22 Javascript
EasyUI学习之Combobox级联下拉列表(2)
Dec 29 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
Jul 08 Javascript
JS实现的合并两个有序链表算法示例
Feb 25 Javascript
JS实现li标签的删除
Apr 12 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
Apr 23 Javascript
如何在postman测试用例中实现断言过程解析
Jul 09 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
打造计数器DIY三步曲(下)
2006/10/09 PHP
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
PHP类的特性实例分析
2016/09/28 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
代码生成器 document.write()
2007/04/15 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
jQuery.each使用详解
2015/07/07 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
Vue封装全局过滤器Filters的步骤
2020/09/16 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
Python logging模块学习笔记
2014/05/24 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
施华洛世奇天猫官方旗舰店:SWAROVSKI
2017/04/17 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
大学四年的个人自我评价
2014/01/14 职场文书
大学生自荐信怎么写
2015/03/26 职场文书