js已知多边形坐标点,求多边形的中心点坐标
2024-10-21 11:33:21
你需要传入的数据类型如下:
// 取面对象 中心点
var calculateCenter = function (lnglatarr) {
var total = lnglatarr.length;
var X = 0, Y = 0, Z = 0;
lnglatarr.forEach(function (lnglat) {
var lng = lnglat.lon * Math.PI / 180;
var lat = lnglat.lat * Math.PI / 180;
var x, y, z;
x = Math.cos(lat) * Math.cos(lng);
y = Math.cos(lat) * Math.sin(lng);
z = Math.sin(lat);
X += x;
Y += y;
Z += z;
});
X = X / total;
Y = Y / total;
Z = Z / total; var Lng = Math.atan2(Y, X);
var Hyp = Math.sqrt(X * X + Y * Y);
var Lat = Math.atan2(Z, Hyp);
console.log(Lng, Lat, Hyp);
return { lng: Lng * 180 / Math.PI, lat: Lat * 180 / Math.PI };
};
// console.log(calculateCenter(list), '1111');
最后拿到的坐标点,就是这个多边形的“重心”,赶紧试试吧~~~
作者:微微一笑绝绝子
出处:https://www.cnblogs.com/wwyxjjz/p/16397169.html
本博客文章均为作者原创,转载请注明作者和原文链接。
最新文章
- Linux rsync网站目录同步功能的实现
- 51nod1057(python2计算n!)
- GridView1事件
- 今天学习到的关于mysql数据库的linux命令
- 【POJ】2954 Triangle(pick定理)
- linq简介
- Modifiers
- PHP如何返回json格式的数据
- width() innerwidth() outerwidth() css('width')
- react 资源汇总
- windows下部署免费ssl证书(letsencrypt)
- dynamic-load-apk 插件与宿主方法互调
- CentOS 7 - 更新JDK,删除旧JDK,安装新JDK
- ZOJ Problem Set - 3708 Density of Power Network
- LeetCode算法题-Remove Linked List Elements(Java实现)
- 安装mysql警告 warning: mysql-community-server-5.7.19-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
- linux安装tomcat9
- jQuery Validate验证方法及教程
- 使用Navicat连接Mysql报错:can not get hostname for your address
- [乱搞]hdu 6406 Taotao picks apples 笛卡尔树+倍增
热门文章
- Qt5.6使用Qt自带虚拟键盘
- 一个比较全的C++农历算法(转)
- java后台接收参数为枚举,postman的json如何传入
- [iOS]遇到了一个问题:“XXXX”中无法使用Apple Pay ,检查此应用的设置并确定其设计可使用Apple Pay”
- Linux学习 --- 网络基础知识
- C#常见的数据结构
- 快速排序(QuiteSort)
- 如何用premiere添加配乐?pr视频添加音乐
- dockerfile配置远程ssh登录
- python_test_0001_base_string_swap