Class: Util

CMAP.Util()

new Util()

地图相关的工具类

Methods

(static) _isClassifyItem()

是否是分类的样式

(static) convertLonlatToWebMercator(lonLat) → {Array}

经纬度坐标转Web墨卡托投影坐标
Parameters:
Name Type Description
lonLat Array [经度,纬度]
Returns:
Web墨卡托投影坐标 [x,y]
Type
Array
Example
CMAP.Util.convertWebMercatorToLonlat([119.5,36.5]); //返回web墨卡托坐标 [12968720.675611112, 4793547.458437541]

(static) convertLonlatToWorld(lonLat, h) → {Array}

经纬度转世界坐标
Parameters:
Name Type Description
lonLat Array [经度,纬度]
h Number 离地高度 默认0
Returns:
世界坐标 [x,y,z]
Type
Array

(static) convertWebMercatorToLonlat(mercator) → {Array}

墨卡托投影转经纬度坐标
Parameters:
Name Type Description
mercator Array Web墨卡托坐标 [x,y]
Returns:
经纬度坐标 [经度,纬度]
Type
Array
Example
var coords = CMAP.Util.convertWebMercatorToLonlat([12968720.675611112, 4793547.458437541]); //返回经纬度坐标 [119.5,36.5]

(static) convertWgs84ToGcj02(wgs84经纬度坐标) → {Array}

wgs84坐标转为gcj02坐标
Parameters:
Name Type Description
wgs84经纬度坐标 Array [经度,纬度]
Returns:
gcj02经纬度坐标 [经度,纬度]
Type
Array
Example
var gcj02Coords = CMAP.Util.convertWgs84ToGcj02([116.5,39.5]); //返回gcj02坐标 [116.5059564261526, 39.501157091519175]

(static) convertWindowToWorld(windowPosition) → {Array}

屏幕坐标转世界坐标
Parameters:
Name Type Description
windowPosition Array 屏幕坐标
Returns:
世界坐标 [x,y,z]
Type
Array

(static) convertWorldToLonlat(pos) → {Array}

世界坐标转经纬度
Parameters:
Name Type Description
pos Array 世界坐标[x,y,z]
Author:
  • huyang<huyang@uinnova.com>
Returns:
经纬度坐标(带高度) [经度,纬度,高度]
Type
Array

(static) correctSkyBox()

根据当前相机位置校正天空盒

(static) createSkyAndSun()

创建天空和太阳,默认会替代之前设置的光源

(static) getAnglesFromLonlat(lonlat, angle) → {Array}

根据经纬度和方位角得到可以使物体贴地的欧拉角
Parameters:
Name Type Description
lonlat Array 经纬度坐标
angle Number 方位角 默认0
Returns:
旋转角度 [angleX, angleY, angleZ]
Type
Array

(static) getAzimuth(lonlat1, lonlat2) → {number}

计算两点间的方位角
Parameters:
Name Type Description
lonlat1 Array 起点经纬度
lonlat2 Array 终点经纬度
Returns:
方位角
Type
number

(static) getCenterCoordinates(coordinates) → {Array}

获取多边形中心点
Parameters:
Name Type Description
coordinates Array 多边形经纬度坐标数组 [[x,y],[x,y],[x,y]......] (注:仅支持二维的经纬度数组)
Returns:
[x,y] 中心点坐标
Type
Array
Example
// 返回多边形的重心的经纬度坐标 [116.47585956650495, 39.98538569844471]
var center = CMAP.Util.getCenter([[116.4757, 39.9851],
[116.4755, 39.9852],
[116.4761, 39.9857],
[116.4762, 39.9856],
[116.4757, 39.9851]]);

(static) getCenterOfGravityPoint(coordinates) → {Array}

获取多边形重心
Parameters:
Name Type Description
coordinates Array 多边形经纬度坐标数组 [[x,y],[x,y],[x,y]......] (注:仅支持二维的经纬度数组)
Returns:
[x,y] 重心点坐标
Type
Array
Example
// 返回多边形的重心的经纬度坐标 [116.47585956650495, 39.98538569844471]
var center = CMAP.Util.getCenterOfGravityPoint([[116.4757, 39.9851],
[116.4755, 39.9852],
[116.4761, 39.9857],
[116.4762, 39.9856],
[116.4757, 39.9851]]);

(static) getFeatureCollectionExtent(featureCollection) → {Object}

获取geojson的范围
Parameters:
Name Type Description
featureCollection Object geojson对象
Returns:
geojson数据的范围
Type
Object
Example
//返回geojson数据的范围 {minX: -73.99995803833008, minY: 40.71805432623303, maxX: -73.98167610168457, maxY: 40.726087955120704}
CMAP.Util.getFeatureCollectionExtent({
        "type": "FeatureCollection",
        "crs": {
            "properties": {
                "name": "urn:ogc:def:crs:OGC:1.3:CRS84"
            },
            "type": "name"
        },
        "features": [
            {
                "type": "Feature",
                "properties": {
                    "type": "rain",
                    "value": 5
                },
                "geometry": {
                    "type": "Point",
                    "coordinates": [
                        -73.99995803833008,
                        40.71805432623303
                    ]
                }
            },
            {
                "type": "Feature",
                "properties": {
                    "type": "water",
                    "value": 7
                },
                "geometry": {
                    "type": "Point",
                    "coordinates": [
                        -73.98167610168457,
                        40.726087955120704
                    ]
                }
            }
        ]
    });

(static) getLineLength(coords) → {number}

计算线的长度(球面距离) 单位:米
Parameters:
Name Type Description
coords Array 经纬度
Returns:
Type
number
Example
//根据经纬度计算折线长度 返回结果 29.952
var length = CMAP.Util.getLineLength([[116.482141, 40.068031], [116.482137, 40.06816],[116.482133, 40.06802]]);

(static) getPolygonExtent(coordinates) → {Object}

获取多边形的范围
Parameters:
Name Type Description
coordinates Array 多边形经纬度坐标数组 [[x,y],[x,y],[x,y]......] 支持Polygon和MultiPolygon
Returns:
多边形的范围
Type
Object
Example
// 返回多边形范围  {minX: 116.4755, minY: 39.9851, maxX: 116.4762, maxY: 39.9857}
var center = CMAP.Util.getPolygonExtent([[116.4757, 39.9851],
[116.4755, 39.9852],
[116.4761, 39.9857],
[116.4762, 39.9856],
[116.4757, 39.9851]]);

(static) getSphericalArea(coords) → {number}

计算多边形的球面面积
Parameters:
Name Type Description
coords Array 多边形的坐标
Returns:
球面面积 单位平方米
Type
number

(static) getSphericalDistance(lonlat1, lonlat2) → {number}

计算两点间的球面距离 单位:米
Parameters:
Name Type Description
lonlat1 Array 起点经纬度
lonlat2 Array 终点经纬度
Returns:
球面距离
Type
number

(static) positionToQuaternion(pos, angle) → {THREE.Quaternion}

根据位置和旋转角度计算贴地的四元数
Parameters:
Name Type Description
pos
angle
Returns:
Type
THREE.Quaternion