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
本博客文章均为作者原创,转载请注明作者和原文链接。