【百度 Map】 一點方圓 500 米的西南點和東北點坐標 .


 /**
        * 得到圓的內接正方形bounds
        * @param {Point} centerPoi 圓形范圍的圓心
        * @param {Number} r 圓形范圍的半徑
        * @return 
        */
        function getSquareBounds(centerPoi, r) {
            var a = Math.sqrt(2) * r; //正方形邊長
            //轉成平面坐標
            mPoi = getMecator(centerPoi);
            var x0 = mPoi.x, y0 = mPoi.y;
            var x1 = x0 + a / 2, y1 = y0 + a / 2; //東北點
            var x2 = x0 - a / 2, y2 = y0 - a / 2; //西南點
            //轉成球面坐標 ne:東北點  sw:西南點
            var ne = getPoi(new BMap.Pixel(x1, y1)), sw = getPoi(new BMap.Pixel(x2, y2));

            return {minx:sw.lat,miny:sw.lng, maxx:ne.lat,maxy:ne.lng};
        }
        //根據球面坐標獲得平面坐標。
        function getMecator(poi) {
            return gmap.getMapType().getProjection().lngLatToPoint(poi);
        }
        //根據平面坐標獲得球面坐標。
        function getPoi(mecator) {
            return gmap.getMapType().getProjection().pointToLngLat(mecator);
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM