Appearance
BaseFn
空间距离计算函数 getSpaceDistance
- @param
| 参数名 | type | 描述 | 默认值 |
|---|---|---|---|
| positions | Array | 点位的三维坐标数组 | - |
- @returns
| 返回值 | type | 描述 |
|---|---|---|
| distance | Object | 距离;单位米 |
js
let distance = CM.BaseFn.getSpaceDistance(positions);计算多边形面积 getArea
- @param
| 参数名 | type | 描述 | 默认值 |
|---|---|---|---|
| points | Array | 多边形点位的三维坐标数组 | - |
- @returns
| 返回值 | type | 描述 |
|---|---|---|
| area | Object | 面积;单位平方米。 |
js
let area = CM.BaseFn.getArea(points);根据多个坐标点,计算中心点坐标 getPointsCenter
- @param
| 参数名 | type | 描述 | 默认值 |
|---|---|---|---|
| points | Array | 点位的坐标数组 | - |
- @returns
| 返回值 | type | 描述 |
|---|---|---|
| pointCenter | Object | 中心点。 |
js
let pointCenter = CM.BaseFn.getPointsCenter(points);使用 canvas 根据图片和文字绘制图片 canvasToImage
- @param
| 参数名 | type | 描述 | 默认值 |
|---|---|---|---|
| icon | String | 图片地址,可以是 url 及 base64 或者 require 引入的图片 | - |
| text | String | 图文本内容 | - |
| imgConfig | Object | 其它配置;参考下表 | - |
imgConfig 属性
| 属性名 | type | 描述 | 默认值 |
|---|---|---|---|
| iconWidth | Number | icon 宽度 | 152 |
| iconHeight | Number | icon 高度 | 152 |
| txtColor | String | 文本颜色 | #fff |
| txtFontSize | String | 文本大小 | 16px |
| txtLeft | Number | 文本距离左边的位置 | |
| txtTop | Number | 文本距离顶部的位置 |
- @returns
| 返回值 | type | 描述 |
|---|---|---|
| Promise | Promise | 返回绘制的图片。 |
js
let icon = require("../**/test.png");
let imgConfig = {
iconWidth: 112,
iconHeight: 112,
txtColor: "#212121",
txtFontSize: "16px",
};
let pointCenter = CM.BaseFn.canvasToImage(icon, "测试文字", imgConfig);计算 WGS_84 数组的最大和最小经纬度生成 rectangle 范围 computedRectangle
- @param
| 参数名 | type | 描述 | 默认值 |
|---|---|---|---|
| wgs84Arr | Array | 84 坐标数组 | - |
| callback | Function | 回调函数,返回最大经纬度和最小经纬度 和 Cesium.Rectangle 对象 | - |
| extended | Function | Rectangle 对象需要扩大的值。值越大显示的 Rectangle 范围越大 | 0.0005 |
js
let wgs84Arr = [
{ lng: "", lat: "" },
{ lng: "", lat: "" },
{ lng: "", lat: "" },
];
CM.BaseFn.computedRectangle(wgs84Arr, (positionArr, rectangle) => {
console.log(positionArr);
//跳转到此范围
viewer.camera.flyTo({
destination: rectangle,
duration: 1,
orientation: {
heading: Cesium.Math.toRadians(0),
pitch: Cesium.Math.toRadians(-90.0),
roll: Cesium.Math.toRadians(0),
},
});
});坐标插值函数(多点位) coordinateInterpolation
注意
- 对给定的坐标序列进行插值处理,可以在地形高度上平滑插值或直接进行坐标转换!
- 支持拐角点检测,在拐角处进行更密集的插值。
- @param
| 参数名 | type | 描述 | 默认值 |
|---|---|---|---|
| wgs84Arr | Array | 84 坐标数组 | - |
| targetDistance | Number | 目标插值间距(米),控制插值点的密度 ;值越小性能消耗越高 | 100 |
| isGetTerrainHeight | Boolean | 是否获取地形高度,true 时从地形服务获取高程 | false |
| heightOffset | Number | 高度偏移量,在地形高度基础上增加的偏移值 | 0.5 |
| defaultHeight | Number | 默认高度值,当 isGetTerrainHeight 为 false 时生效,可设置管道高度 | 0 |
| 返回值 | type | 描述 |
|---|---|---|
| cartesian | Promise<Array> | 返回包含所有插值点笛卡尔坐标的 Promise 数组 |
js
let wgs_84Arr = [
{
lng: 111.17831238175873,
lat: 24.49778743,
height: 0,
},
{
lng: 111.1784,
lat: 24.4988,
height: 0,
},
{
lng: 111.2018438418352,
lat: 24.5036940694,
height: 0,
},
{
lng: 111.20228120412749,
lat: 24.5049655488217,
height: 0,
},
];
let cartesian = await CM.BaseFn.coordinateInterpolation(wgs_84Arr, 200, true, 2);计算抛物线轨迹点(2 点位) parabolaCalculate
- @param
| 参数名 | type | 描述 | 默认值 |
|---|---|---|---|
| startPosition | Array | 起始位置的经纬度坐标 | - |
| endPosition | Array | 结束位置的经纬度坐标 | - |
| height | Number | 抛物线的最大高度,最小为 100 | 0 |
| count | Number | 轨迹点的数量,最小为 50 | 50 |
| 返回值 | type | 描述 |
|---|---|---|
| Array | Array | 包含抛物线轨迹点的 Cartesian 数组 |
js
let positionWgs84 = [
[-79, 35],
[-80, 35],
];
let cartesianArr = CM.BaseFn.parabolaCalculate(positionWgs84[0], positionWgs84[1], 10000, 1000);
let wgs84Arr = CM.Position.transformCartesianArrayToWGS84Array(cartesianArr);
console.log(wgs84Arr);