pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

      <bdo id='apqub'></bdo><ul id='apqub'></ul>

    1. <i id='apqub'><tr id='apqub'><dt id='apqub'><q id='apqub'><span id='apqub'><b id='apqub'><form id='apqub'><ins id='apqub'></ins><ul id='apqub'></ul><sub id='apqub'></sub></form><legend id='apqub'></legend><bdo id='apqub'><pre id='apqub'><center id='apqub'></center></pre></bdo></b><th id='apqub'></th></span></q></dt></tr></i><div class="kakymke" id='apqub'><tfoot id='apqub'></tfoot><dl id='apqub'><fieldset id='apqub'></fieldset></dl></div>
    2. <small id='apqub'></small><noframes id='apqub'>

      <legend id='apqub'><style id='apqub'><dir id='apqub'><q id='apqub'></q></dir></style></legend>
    3. <tfoot id='apqub'></tfoot>

      在 JavaScript 中查找多邊形的中心點

      Find centerpoint of polygon in JavaScript(在 JavaScript 中查找多邊形的中心點)

      <small id='hN7Yh'></small><noframes id='hN7Yh'>

          • <bdo id='hN7Yh'></bdo><ul id='hN7Yh'></ul>
          • <tfoot id='hN7Yh'></tfoot>
            <i id='hN7Yh'><tr id='hN7Yh'><dt id='hN7Yh'><q id='hN7Yh'><span id='hN7Yh'><b id='hN7Yh'><form id='hN7Yh'><ins id='hN7Yh'></ins><ul id='hN7Yh'></ul><sub id='hN7Yh'></sub></form><legend id='hN7Yh'></legend><bdo id='hN7Yh'><pre id='hN7Yh'><center id='hN7Yh'></center></pre></bdo></b><th id='hN7Yh'></th></span></q></dt></tr></i><div class="0wkki2m" id='hN7Yh'><tfoot id='hN7Yh'></tfoot><dl id='hN7Yh'><fieldset id='hN7Yh'></fieldset></dl></div>
            <legend id='hN7Yh'><style id='hN7Yh'><dir id='hN7Yh'><q id='hN7Yh'></q></dir></style></legend>
              <tbody id='hN7Yh'></tbody>

              • 本文介紹了在 JavaScript 中查找多邊形的中心點的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                問題描述

                我有一個來自谷歌地圖的地點"對象,它有一組坐標,代表給定位置的邊界框,比如倫敦.每組坐標都有一個緯度和經(jīng)度.

                I have a "place" object from Google Maps which has a set of coordinates that represent a bounding box for a given location, say London. Each set of coordinates has a latitude and longitude.

                我已經(jīng)編寫了以下代碼來查找中心點,但我不確定它是否確實產(chǎn)生了中心點.如果多邊形有 5 個點而不是 4 個呢?另外,這是否可以以更有效的方式完成,操作更少?

                I have written the below code to find the centerpoint, but I am not sure if it does actually produce the centerpoint. What if the polygon has 5 points instead of 4? Also, can this be done in a more efficient way, with less operations?

                function average(array) {
                  // Add together and then divide by the length
                  return _.reduce(array, function (sum, num) {
                    return sum + num;
                  }, 0) / array.length;
                }
                
                // I have a two-dimensional array that I want to get the average of
                
                var coords = [
                  [ -1.2, 5.1 ],
                  [ -1.3, 5.2 ],
                  [ -1.8, 5.9 ],
                  [ -1.9, 5.8 ]
                ]
                
                // So I get the first column
                
                var lats = coords.map(function (coord) {
                  return coord[0];
                })
                
                // Then the second
                
                var longs = coords.map(function (coord) {
                  return coord[1];
                })
                
                // And average each column out
                
                console.log([average(lats), average(longs)])
                

                示例.

                推薦答案

                這應該得到 centroid 任何 區(qū)域wiki/多邊形" rel="noreferrer">多邊形

                This should get the centroid of the area of any polygon

                /*jslint sub: true, maxerr: 50, indent: 4, browser: true */
                /*global console */
                
                (function () {
                    "use strict";
                
                    function Point(x, y) {
                        this.x = x;
                        this.y = y;
                    }
                
                    function Region(points) {
                        this.points = points || [];
                        this.length = points.length;
                    }
                
                    Region.prototype.area = function () {
                        var area = 0,
                            i,
                            j,
                            point1,
                            point2;
                
                        for (i = 0, j = this.length - 1; i < this.length; j=i,i++) {
                            point1 = this.points[i];
                            point2 = this.points[j];
                            area += point1.x * point2.y;
                            area -= point1.y * point2.x;
                        }
                        area /= 2;
                
                        return area;
                    };
                
                    Region.prototype.centroid = function () {
                        var x = 0,
                            y = 0,
                            i,
                            j,
                            f,
                            point1,
                            point2;
                
                        for (i = 0, j = this.length - 1; i < this.length; j=i,i++) {
                            point1 = this.points[i];
                            point2 = this.points[j];
                            f = point1.x * point2.y - point2.x * point1.y;
                            x += (point1.x + point2.x) * f;
                            y += (point1.y + point2.y) * f;
                        }
                
                        f = this.area() * 6;
                
                        return new Point(x / f, y / f);
                    };
                
                    var polygon = [
                            {"x": -1.2, "y": 5.1},
                            {"x": -1.3, "y": 5.2},
                            {"x": -1.8, "y": 5.9},
                            {"x": -1.9, "y": 5.8}
                        ],
                        region = new Region(polygon);
                
                    console.log(region.centroid());
                }());
                

                關于 jsfiddle

                這篇關于在 JavaScript 中查找多邊形的中心點的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權益,請聯(lián)系我們刪除處理,感謝您的支持!

                相關文檔推薦

                Use IScroll in Angular 2 / Typescript(在 Angular 2/Typescript 中使用 IScroll)
                anime.js not working in Ionic 3 project(Anime.js 在 Ionic 3 項目中不起作用)
                Ionic 3 - Update Observable with Asynchronous Data(Ionic 3 - 使用異步數(shù)據(jù)更新 Observable)
                Angular 2: file not found on local .json file(Angular 2:在本地 .json 文件中找不到文件)
                In Ionic 2, how do I create a custom directive that uses Ionic components?(在 Ionic 2 中,如何創(chuàng)建使用 Ionic 組件的自定義指令?)
                Use ViewChild for dynamic elements - Angular 2 amp; ionic 2(將 ViewChild 用于動態(tài)元素 - Angular 2 amp;離子2)

                <small id='20RZF'></small><noframes id='20RZF'>

                  <tbody id='20RZF'></tbody>
                    <bdo id='20RZF'></bdo><ul id='20RZF'></ul>
                        <i id='20RZF'><tr id='20RZF'><dt id='20RZF'><q id='20RZF'><span id='20RZF'><b id='20RZF'><form id='20RZF'><ins id='20RZF'></ins><ul id='20RZF'></ul><sub id='20RZF'></sub></form><legend id='20RZF'></legend><bdo id='20RZF'><pre id='20RZF'><center id='20RZF'></center></pre></bdo></b><th id='20RZF'></th></span></q></dt></tr></i><div class="igeeqme" id='20RZF'><tfoot id='20RZF'></tfoot><dl id='20RZF'><fieldset id='20RZF'></fieldset></dl></div>
                        <tfoot id='20RZF'></tfoot>

                      1. <legend id='20RZF'><style id='20RZF'><dir id='20RZF'><q id='20RZF'></q></dir></style></legend>

                        1. 主站蜘蛛池模板: 合肥白癜风医院_[治疗白癜风]哪家好_合肥北大白癜风医院 | 穿线管|波纹穿线管|包塑金属软管|蛇皮管?闵彬专注弱电工程? | 智能楼宇-楼宇自控系统-楼宇智能化-楼宇自动化-三水智能化 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 高压绝缘垫-红色配电房绝缘垫-绿色高压绝缘地毯-上海苏海电气 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 芝麻黑-芝麻黑石材厂家-永峰石业| GEDORE扭力螺丝刀-GORDON防静电刷-CHEMTRONICS吸锡线-上海卓君电子有限公司 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 亮化工程,亮化设计,城市亮化工程,亮化资质合作,长沙亮化照明,杰奥思【官网】 | 福兰德PVC地板|PVC塑胶地板|PVC运动地板|PVC商用地板-中国弹性地板系统专业解决方案领先供应商! 福建成考网-福建成人高考网 | 首页|光催化反应器_平行反应仪_光化学反应仪-北京普林塞斯科技有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 卫生人才网-中国专业的医疗卫生医学人才网招聘网站! | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 双段式高压鼓风机-雕刻机用真空泵-绍兴天晨机械有限公司 | 螺钉式热电偶_便携式温度传感器_压簧式热电偶|无锡联泰仪表有限公司|首页 | CE认证_FCC认证_CCC认证_MFI认证_UN38.3认证-微测检测 CNAS实验室 | 二手注塑机回收_旧注塑机回收_二手注塑机买卖 - 大鑫二手注塑机 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 浙江宝泉阀门有限公司| 硫化罐-电加热蒸汽硫化罐生产厂家-山东鑫泰鑫智能装备有限公司 | 最新电影-好看的电视剧大全-朝夕电影网 | 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 淘气堡_室内儿童乐园_户外无动力儿童游乐设备-高乐迪(北京) | 期货软件-专业期货分析软件下载-云智赢 | 【电子厂招聘_普工招工网_工厂招聘信息平台】-工立方打工网 | 青岛侦探调查_青岛侦探事务所_青岛调查事务所_青岛婚外情取证-青岛狄仁杰国际侦探公司 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 跨境物流_美国卡派_中大件运输_尾程派送_海外仓一件代发 - 广州环至美供应链平台 | 广州番禺搬家公司_天河黄埔搬家公司_企业工厂搬迁_日式搬家_广州搬家公司_厚道搬迁搬家公司 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 | 酒糟烘干机-豆渣烘干机-薯渣烘干机-糟渣烘干设备厂家-焦作市真节能环保设备科技有限公司 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 钛板_钛管_钛棒_钛盘管-无锡市盛钛科技有限公司 | 代理记账_公司起名核名_公司注册_工商注册-睿婕实业有限公司 | 合肥制氮机_合肥空压机厂家_安徽真空泵-凯圣精机 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 建大仁科-温湿度变送器|温湿度传感器|温湿度记录仪_厂家_价格-山东仁科 |