js已知多边形坐标点,求多边形的中心点坐标

 

你需要传入的数据类型如下:

 

 

复制代码
                    // 取面对象 中心点
                    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
本博客文章均为作者原创,转载请注明作者和原文链接。

 

posted @   微微一笑绝绝子  阅读(1110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示