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 @ 2022-06-21 16:05  微微一笑绝绝子  阅读(1052)  评论(0编辑  收藏  举报