mapboxGL自适应显示内容

    //获取边界    
    getCenter(maxLonlat, minLonlat) {

            let maxLng, maxLat, minLng, minLat, pointArr;

            if (arguments.length == 2) {

                maxLonlat = maxLonlat.split(',');

                minLonlat = minLonlat.split(',');

                maxLng = maxLonlat[0], maxLat = maxLonlat[1], minLng = minLonlat[0], minLat = minLonlat[1];

            }

            if (arguments.length == 1) {

                pointArr = [...maxLonlat];

                maxLonlat = pointArr[0];

                minLonlat = pointArr[0];

                maxLng = maxLonlat[0], maxLat = maxLonlat[1], minLng = minLonlat[0], minLat = minLonlat[1];

                pointArr.forEach(item => {

                    let arr = item;

                    if (Number(arr[0]) > Number(maxLng)) maxLng = arr[0];

                    if (Number(arr[0]) < Number(minLng)) minLng = arr[0];

                    if (Number(arr[1]) > Number(maxLat)) maxLat = arr[1];

                    if (Number(arr[1]) < Number(minLat)) minLat = arr[1];

                })

            }



            var cenLng = (parseFloat(maxLng) + parseFloat(minLng)) / 2;

            var cenLat = (parseFloat(maxLat) + parseFloat(minLat)) / 2;

            return {

                center: [cenLng, cenLat],

                maxLonlat: maxLng + ',' + maxLat,

                minLonlat: minLng + ',' + minLat

            };

        },

        /**

         * 根据地图上添加的覆盖物坐标分布情况,自动缩放地图到合适的视野级别。

         * @param { Array } path  路线数组 [[lon,lat],[lon,lat],xxx]  

         */

        setFitView(path, padding) {

            if (!path) return

            let defaultPadding = { top: 100, bottom: 100, left: 100, right: 100 }

            var parsePath = this.getCenter(path);

            mapObj.fitBounds([parsePath.maxLonlat.split(','), parsePath.minLonlat.split(',')], {

                padding: padding ? Object.assign(defaultPadding, ...padding) : defaultPadding

            })

        }

 

你可能感兴趣的:(mapboxGL自适应显示内容)