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] |
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