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 圆角div的实现代码
Oct 15 Javascript
为jQuery.Treeview添加右键菜单的实现代码
Oct 22 Javascript
jQuery中 delegate使用的问题
Jul 03 Javascript
基于Javascript实现弹出页面效果
Jan 01 Javascript
学习JavaScript设计模式之观察者模式
Apr 22 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
Dec 22 Javascript
js实现textarea限制输入字数
Feb 13 Javascript
JS中Swiper的使用和轮播图效果
Aug 11 Javascript
JavaScript定义函数的三种实现方法
Sep 23 Javascript
js原生实现移动端手指滑动轮播图效果的示例
Jan 02 Javascript
angular2 组件之间通过service互相传递的实例
Sep 30 Javascript
echarts浮动显示单位的实现方法示例
Dec 04 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目录操作函数之获取目录与文件的类型
2010/12/29 PHP
php根据年月获取季度的方法
2014/03/31 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
php中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
js 小数取整的函数
2010/05/10 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
2016/01/23 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
JS防抖和节流实例解析
2019/09/24 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
Python sqlite3事务处理方法实例分析
2017/06/19 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
Python多线程thread及模块使用实例
2020/04/28 Python
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
技校毕业生自荐信
2014/06/03 职场文书
代办出身证明书
2014/10/21 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript
DSP接收机前端设想
2022/04/05 无线电