# Util
查阅Cesium API

#### Util()
util/Util.js 1

常用静态方法

### 属性值

#### static constant mars3d.Util.isMars3DCesium : boolean
util/Util.js 115

判断当前Cesium库 是否mars3d修改后的版本(mars3d-cesium库)

#### static mars3d.Util.lastId : number
util/Util.js 253

最后一个唯一ID，在stamp方法使用的

### 方法

#### static mars3d.Util.alert(msg, title) → void
util/Util.js 2364

执行alert弹窗（手动单击确定关闭窗口）

参数名称 | 类型 | 描述信息
--- | --- | ---
`msg` | string | 弹窗内的内容
`title` | string | 可选 弹窗的标题

##### 返回值:

无

#### static mars3d.Util.arcgisToGeoJSON(arcgis, idAttr) → object
util/Util.js 1112

arcgis服务的json格式 转 geojson格式

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`arcgis` | object |  | arcgis服务的json格式
`idAttr` | string | `'OBJECTID'` | 可选 id字段名称

##### 返回值:

geojson格式

#### static mars3d.Util.base64ToImage(base64, crossOrigin) → Promise.<object>
util/Util.js 2179

base64图片转Image

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`base64` | string |  | 图片url或base64
`crossOrigin` | boolean | `true` | 可选 是否允许跨域

##### 返回值:

图片对象

#### static mars3d.Util.buildUrl(url, params) → string
util/Util.js 2284

处理URL地址中参数，解析传入的 URL 和参数对象，然后将新的参数合并到 URL 中。如果 URL 中已经存在某些参数，则用新的参数覆盖它们。

参数名称 | 类型 | 描述信息
--- | --- | ---
`url` | string | 原始URL，其中可能已有参数
`params` | object | 需要新增的参数，如果url中已有进行覆盖

##### 返回值:

新的带参数的URL地址

#### static mars3d.Util.clone(obj, removeKeys, level) → object
util/Util.js 933

复制克隆对象

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`obj` | object |  | 原始对象
`removeKeys` | Array.<string> | `[]` | 可选 不复制的属性名 数组
`level` | number | `5` | 可选 拷贝的层级最大深度,避免死循环

##### 返回值:

克隆后的对象

#### static mars3d.Util.createGuid(prefix) → string
util/Util.js 285

获取随机唯一uuid字符串,包含数字、大写字母、小写字母

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`prefix` | string | `'m-'` | 可选 前缀

##### 返回值:

字符串

#### static mars3d.Util.downloadBase64Image(name, base64) → void
util/Util.js 2107

导出下载图片文件

参数名称 | 类型 | 描述信息
--- | --- | ---
`name` | string | 图片文件名称， 后缀名默认为.png
`base64` | string | 图片内容，base64格式

##### 返回值:

无

#### static mars3d.Util.downloadFile(fileName, string, mimeType) → void
util/Util.js 2124

导出下载文本文件

参数名称 | 类型 | 描述信息
--- | --- | ---
`fileName` | string | 文件完整名称，需要含后缀名
`string` | string | 文本内容
`mimeType` | string | 可选 MIME类型,如：'text/plain'、'text/html'、'application/json'

##### 返回值:

无

#### static mars3d.Util.exitFullscreen() → boolean
util/Util.js 2537

退出全屏

##### 返回值:

是否全屏

#### static mars3d.Util.featureToGraphic(feature, options) → object
util/Util.js 1230

GeoJSON格式的Feature单个对象转为 Graphic构造参数（用于创建`BaseGraphic`）

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`feature` | object |  | geojson单个Feature对象
`options` | object | `{}` | 可选 参数，包括：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`type` | GraphicType | string |  | 可选 转为指定的类型
`style` | object | `{}` | 可选 Style样式，每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。`GraphicType` // * @param {boolean} [options.style.merge] 是否合并并覆盖json中已有的style，默认不合并，仅适用style配置。
`crs` | string |  | 可选 原始数据的坐标系，如'EPSG:3857' （可以从 http://epsg.io查询）
`simplify` | object |  | 可选 是否简化坐标点位，为空时不简化
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`tolerance` | number | `0.0001` | 可选 简化的程度，传值是经纬度的小数位
`highQuality` | boolean | `true` | 可选 是否花更多的时间用不同的算法创建更高质量的简化
`mutate` | boolean | `true` | 可选 是否允许对输入进行变异（如果为true，则显著提高性能）
`hasGroup` | boolean | `false` | 可选 MultiLineString、MultiPolygon时是否使用GroupGraphic对象包一层。
`onPointTrans` | function |  | 可选 坐标转换方法，可用于对每个坐标做额外转换处理
`filter` | function | string |  | 可选 数据筛选方法，方法时，方法体内返回false时排除数据 filter:function(feature){return true}；支持字符串基于attr属性进行筛选的JS语句字符串，比如： attr.name=='安徽省' || attr.code=='340000' 。

##### 返回值:

Graphic构造参数（用于创建`BaseGraphic`），其中多面的最大一个面会有isMultiMax为true的属性

#### static mars3d.Util.fetchJson(options) → Promise.<object>
util/Util.js 2474

请求服务返回JSON结果

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 请求参数
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`url` | string |  | 服务URL地址
`queryParameters` | object |  | 可选 与请求一起发送的 URL 参数,例如 {id: 1987 }
`proxy` | string |  | 可选 加载资源时要使用的代理服务url。
`templateValues` | object |  | 可选 一个对象，用于替换Url中的模板值的键/值对
`headers` | object |  | 可选 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' }
`method` | string | `"get"` | 可选 请求类型

##### 返回值:

返回Promise异步处理结果，对象为JSON数据

#### static mars3d.Util.formatDate(date, fmt) → string
util/Util.js 2414

将 时间 转化为指定格式的字符串

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`date` | Date |  | 时间
`fmt` | string | `"yyyy-MM-dd HH:mm:ss"` | 可选 格式模版，月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符; 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字).

##### 返回值:

指定格式的字符串

##### 使用示例:

    mars3d.Util.formatDate(date,"yyyy-MM-dd HH:mm:ss") ==> 2017-08-25 08:08:00
    mars3d.Util.formatDate(date,"yyyy-MM-dd HH:mm:ss.S") ==> 2017-08-25 08:08:00.423
    mars3d.Util.formatDate(date,"yyyy-M-d HH:mm:ss") ==> 2017-8-5 08:08:00

#### static mars3d.Util.formatNum(num, digits) → number
util/Util.js 127

格式化数字，返回指定小数位的数字

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`num` | number |  | 数字
`digits` | number | `0` | 可选 小数位数

##### 返回值:

返回digits指定小数位的数字

#### static mars3d.Util.formatTime(timeNum, options) → string
util/Util.js 2446

格式化时长

参数名称 | 类型 | 描述信息
--- | --- | ---
`timeNum` | number | 时长
`options` | object | 可选 参数：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`getLangText` | function |  | 可选 获取文本的对应方法
`digits` | number | `0` | 可选 小数位数

##### 返回值:

格式化字符串，如XX小时XX分钟

#### static mars3d.Util.funDebounce(fn, delay) → function
util/Util.js 2586

事件中使用的 函数防抖， 说明：在delay毫秒内的多次调用操作，仅在最后一次调用时触发一次fn函数。

参数名称 | 类型 | 描述信息
--- | --- | ---
`fn` | function | 执行的方法
`delay` | number | 节流时间范围，毫秒数

##### 返回值:

包含一层的替代方法

##### 使用示例:

    let newFun = mars3d.Util.funDebounce(this._changeFun, 500)
    target.on("change", newFun)  // 解绑用 target.off("change", newFun)

#### static mars3d.Util.funThrottle(fn, delay) → function
util/Util.js 2554

事件中使用的 函数节流， 说明：稀释fn函数的执行频率，但不管事件触发有多频繁，都会保证在delay毫秒内一定会执行一次fn函数

参数名称 | 类型 | 描述信息
--- | --- | ---
`fn` | function | 执行的方法
`delay` | number | 节流时间范围，毫秒数

##### 返回值:

包含一层的替代方法

##### 使用示例:

    let newFun = mars3d.Util.funThrottle(this._changeFun, 500)
    target.on("change", newFun)  // 解绑用 target.off("change", newFun)

#### static mars3d.Util.geojsonToArcGIS(geojson, idAttr) → object
util/Util.js 1101

geojson格式 转 arcgis服务的json格式

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`geojson` | object |  | geojson格式
`idAttr` | string | `'OBJECTID'` | 可选 id字段名称

##### 返回值:

arcgis服务的json格式

#### static mars3d.Util.geoJsonToGraphics(geojson, options) → Array.<object>
util/Util.js 1187

GeoJSON 转为 Graphic构造参数数组（用于创建`BaseGraphic`） style有3种方式控制: 1.传type及style参数；2.传symbol参数；3.数据本身的feature.properties.style； 优先级为：1>2>3

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`geojson` | object |  | geojson对象
`options` | object | `{}` | 可选 控制参数
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`type` | GraphicType | string |  | 可选 转为指定的类型
`style` | object | `{}` | 可选 Style样式，每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。`GraphicType` // * @param {boolean} [options.style.merge] 是否合并并覆盖json中已有的style，默认不合并，仅适用style配置。
`symbol` | object |  | 可选 symbol配置，与style二选一
参数名称 | 类型 | 描述信息
--- | --- | ---
`type` | GraphicType | string | 可选 标识数据类型
`merge` | boolean | 可选 是否合并并覆盖json中已有的style，默认不合并，仅适用symbol配置。
`styleOptions` | object | 可选 Style样式，每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。`GraphicType`
`styleField` | string | 可选 按 styleField 属性设置不同样式。
`styleFieldOptions` | object | 可选 按styleField值与对应style样式的键值对象。默认与styleOptions合并，可以设置merge:false不合并
`callback` | function | 可选 自定义判断处理返回style ，示例：callback: function (attr, styleOpt){ return { color: "#ff0000" }; }
`crs` | string |  | 可选 原始数据的坐标系，如'EPSG:3857' （可以从 http://epsg.io查询）
`simplify` | object |  | 可选 是否简化坐标点位，为空时不简化
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`tolerance` | number | `0.0001` | 可选 简化的程度，传值是经纬度的小数位
`highQuality` | boolean | `true` | 可选 是否花更多的时间用不同的算法创建更高质量的简化
`mutate` | boolean | `true` | 可选 是否允许对输入进行变异（如果为true，则显著提高性能）
`hasGroup` | boolean | `false` | 可选 MultiLineString、MultiPolygon时是否使用GroupGraphic对象包一层。
`onPointTrans` | function |  | 可选 坐标转换方法，可用于对每个坐标做额外转换处理,比如坐标纠偏 onPointTrans: mars3d.PointUtil.getTransFun(mars3d.ChinaCRS.GCJ02, map.chinaCRS)
`filter` | function | string |  | 可选 数据筛选方法，方法时，方法体内返回false时排除数据 filter:function(feature){return true}；支持字符串基于attr属性进行筛选的JS语句字符串，比如： attr.name=='安徽省' || attr.code=='340000' 。

##### 返回值:

Graphic构造参数数组（用于创建`BaseGraphic`），其中多面的最大一个面会有isMultiMax为true的属性

#### static mars3d.Util.get3DTileFeatureAttr(feature) → object
util/Util.js 829

取3DTile模型瓦片的feature原有属性

参数名称 | 类型 | 描述信息
--- | --- | ---
`feature` | Cesium.Cesium3DTileFeature | * | Cesium内的属性对象

##### 返回值:

最简的键值对属性对象

#### static mars3d.Util.getArrayRandomOne(arr) → *
util/Util.js 993

随机获取数组中的一个元素

参数名称 | 类型 | 描述信息
--- | --- | ---
`arr` | Array | 数组

##### 返回值:

获取到的随机元素

#### static mars3d.Util.getAttrVal(attr, options) → object
util/Util.js 782

取属性值，简化Cesium内的属性，去掉getValue等，取最简的键值对。 方便popup、tooltip等构造方法使用

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`attr` | * |  | Cesium内的属性对象
`options` | object | `{}` | 可选 参数对象:
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`onlySimpleType` | boolean |  | 可选 是否只获取简易类型的对象
`showNull` | boolean | `false` | 可选 是否显示空值
`noArray` | boolean |  | 可选 onlySimpleType：true时，并且不取数组

##### 返回值:

最简的键值对属性对象

#### static mars3d.Util.getAvailability(availability, startTime) → Cesium.TimeIntervalCollection
util/Util.js 678

指定时间范围内显示对象所用到的TimeIntervalCollection对象 SDK内 graphic.availability 等赋值时会自动调用该方法转换为cesium本身对象。

参数名称 | 类型 | 描述信息
--- | --- | ---
`availability` | Cesium.TimeIntervalCollection | Cesium.TimeInterval | Array | object | 指定时间范围
`startTime` | Cesium.JulianDate | 可选 开始对象，如果传数字秒数时，是相当于startTime的增加秒数

##### 返回值:

JulianDate时间

#### static mars3d.Util.getAvailabilityJson(availability, toNum, startTime) → Array.<object>
util/Util.js 736

获取时间范围的简单对象数组，用于对象的编辑

参数名称 | 类型 | 描述信息
--- | --- | ---
`availability` | Cesium.TimeIntervalCollection | 指定时间范围
`toNum` | boolean | 可选 是否转为数字秒数
`startTime` | Cesium.JulianDate | 可选 如果toNum取数字秒数时，是相当于startTime的增加秒数

##### 返回值:

时间对象列表

#### static mars3d.Util.getCesiumColor(color, defval, time) → Cesium.Color
util/Util.js 566

获取Cesium颜色对象

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`color` | string | Cesium.Color | function |  | Cesium的类名，方便识别判断
`defval` | Cesium.Color |  | 可选 默认值
`time` | Cesium.JulianDate | `Cesium.JulianDate.now()` | 可选 如果具有时间属于时，取指定的时间的值

##### 返回值:

颜色值

#### static mars3d.Util.getCesiumValue(obj, ClasName, time) → *
util/Util.js 541

获取Cesium对象值的最终value值， 因为cesium经常属性或绑定一层，通过本方法可以内部去判断是否有getValue或_value进行取最终value值。

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`obj` | * |  | Cesium对象值
`ClasName` | * |  | 可选 Cesium的类名，方便识别判断
`time` | Cesium.JulianDate | `Cesium.JulianDate.now()` | 可选 如果具有时间属于时，取指定的时间的值

##### 返回值:

最终value值

#### static mars3d.Util.getCircleImage(count, options) → string
util/Util.js 2010

获取用于聚合的圆形图标对象

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`count` | number |  | 数字
`options` | object | `{}` | 可选 参数对象:
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`radius` | number | `26` | 可选 圆形图标半径。
`color` | string |  | 可选 圆形图标填充颜色。
`opacity` | number | `0.6` | 可选 圆形图标透明度。
`borderWidth` | number | `5` | 可选 圆形图标的边框宽度。
`borderColor` | string |  | 可选 圆形图标边框颜色。
`borderOpacity` | number |  | 可选 圆形图标边框透明度。
`font` | string |  | 可选 字体
`fontColor` | string |  | 可选 字体颜色

##### 返回值:

base64图片对象，包含 data URI 的DOMString。

#### static mars3d.Util.getColorByStyle(style, defval) → Cesium.Color
util/Util.js 591

根据配置信息获取Cesium颜色对象

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`style` | object |  | 配置信息
参数名称 | 类型 | 描述信息
--- | --- | ---
`color` | string | Cesium.Color | 颜色值
`opacity` | number | 可选 透明度
`randomColor` | boolean | 可选 是否随机色
`defval` | Cesium.Color | `Cesium.Color.YELLOW` | 可选 默认值

##### 返回值:

颜色值

#### static mars3d.Util.getExplorerInfo() → object
util/Util.js 2198

获取浏览器类型及版本

##### 返回值:

浏览器类型及版本,示例：{ type: 'Chrome', version: 71 }

#### static mars3d.Util.getGeoJsonFeatures(geojson) → Array.<object>
util/Util.js 1123

获取GeoJSON中的features数组集合（自动判断数据来源）

参数名称 | 类型 | 描述信息
--- | --- | ---
`geojson` | object | geojson对象

##### 返回值:

features数组集合

#### static mars3d.Util.getGlobalId() → number
util/Util.js 260

获取最新的全局唯一ID

##### 返回值:

全局唯一ID （ ++lastId ）

#### static mars3d.Util.getJulianDate(currTime, startTime) → Cesium.JulianDate
util/Util.js 645

获取JulianDate时间

参数名称 | 类型 | 描述信息
--- | --- | ---
`currTime` | Cesium.JulianDate | Date | string | 指定时间。当为String时，可以传入 '2021-01-01 12:13:00';
`startTime` | Cesium.JulianDate | 可选 开始对象，如果传数字秒数时，是相当于startTime的增加秒数

##### 返回值:

JulianDate时间

#### static mars3d.Util.getRequest() → object
util/Util.js 2304

获取当前页面的url中的?传入参数对象集合

##### 返回值:

参数名与参数值的键值对

#### static mars3d.Util.getRequestByName(name) → string
util/Util.js 2324

获取当前页面的url中的?传入的指定参数值

参数名称 | 类型 | 描述信息
--- | --- | ---
`name` | string | 指定参数名称

##### 返回值:

获取到的参数值

#### static mars3d.Util.getStrLength(str) → number
util/Util.js 182

获取字符串长度，区分中文和英文

参数名称 | 类型 | 描述信息
--- | --- | ---
`str` | string | 字符串

##### 返回值:

字符串长度

#### static mars3d.Util.getSymbolStyle(symbol, attr, callbackResult) → object
util/Util.js 1028

根据属性 和symbol配置 取style样式信息

参数名称 | 类型 | 描述信息
--- | --- | ---
`symbol` | object | symbol配置
参数名称 | 类型 | 描述信息
--- | --- | ---
`styleOptions` | object | Style样式，每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。`GraphicType`
`styleField` | string | 可选 按 styleField 属性设置不同样式。
`styleFieldOptions` | object | 可选 按styleField值与对应style样式的键值对象。键支持对attr的JS语法字符串，如 "attr.floors>10 && attr.floors<20": { color: "#ff0000" } ，默认与styleOptions合并，可以设置merge:false不合并。
`callback` | function | 可选 自定义判断处理返回style ，示例：callback: function (attr, styleOpt){ return { color: "#ff0000" }; }
`attr` | object | 可选 数据属性对象
`callbackResult` | object | 可选 callback时的第3个回调参数

##### 返回值:

style样式

#### static mars3d.Util.getTemplateHtml(options) → string
util/Util.js 330

获取Popup或Tooltip格式化Html字符串

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`options` | object | `{}` | 可选 参数对象:
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`attr` | object |  | 属性值
`template` | string | Array.<Globe.getTemplateHtml_template> | function | * |  | 模版配置，支持：'all'、数组、字符串模板
`showNull` | boolean | `false` | 可选 是否显示空值
`title` | string |  | 可选 标题
`edit` | boolean | `false` | 可选 是否返回编辑输入框
`width` | number | `190` | 可选 edit:true时的，编辑输入框宽度值
`templateEmptyStr` | boolean | `true` | 可选 template是字符串时，是否将模板中未匹配项转为空值

##### 返回值:

Html字符串

##### 使用示例:

    //template可以是'all' ，返回数据的全部属性信息
    tiles3dLayer.bindPopup(function (event) {
      var attr = event.graphic.attr
      return mars3d.Util.getTemplateHtml({ title: '桥梁', template: 'all', attr: attr })
    })

    //template可以是格式化字符串模板
    var html = mars3d.Util.getTemplateHtml({ title: '火星项目', template:  "名称：{项目名称}<br />类型：{设施类型}<br />面积：{用地面积}亩<br />位置：{具体位置}", attr: item })

    //可以是数组的template，按数组顺序构造，并转义字段名称
    //
    var html = mars3d.Util.getTemplateHtml({
      title: '塔杆',
      template: [
        { field: 'roadName', name: '所属线路' },
        { field: 'towerId', name: '杆塔编号' },
        { field: '杆塔型号', name: '杆塔型号' },
        { field: '杆塔性质', name: '杆塔性质' },
        { field: '杆塔类型', name: '杆塔类型' },
        { field: '设计单位', name: '设计单位' },
        { field: 'height', name: '海拔高度' },
      ],
      attr: item,
    })

#### static mars3d.Util.getTextImage(text, textStyle) → HTMLCanvasElement
util/Util.js 1750

文字转base64图片

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`text` | string |  | 文字内容
`textStyle` | object | `{}` | 可选 参数对象:
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`font` | string | `'10px sans-serif'` | 可选 使用的CSS字体。
`textBaseline` | string | `'bottom'` | 可选 文本的基线。
`spacing` | number |  | 可选 字间距 Row spacing
`spacingRow` | number | `2` | 可选 行间距（\n换行时）
`fill` | boolean | `true` | 可选 是否填充文本。
`fillColor` | Cesium.Color | `Cesium.Color.WHITE` | 可选 填充颜色。
`stroke` | boolean | `false` | 可选 是否描边文本。
`strokeWidth` | number | `1` | 可选 文本描边的宽度。
`strokeColor` | Cesium.Color | `Cesium.Color.BLACK` | 可选 文本描边的颜色。
`background` | boolean | `false` | 可选 是否背景色。
`backgroundColor` | Cesium.Color | `Cesium.Color.TRANSPARENT` | 可选 画布的背景色。
`padding` | number | `0` | 可选 要在文本周围添加的填充的像素大小。
`outline` | boolean | `false` | 可选 是否边框
`outlineWidth` | number | `4` | 可选 边框的宽度。
`outlineColor` | Cesium.Color | `fillColor` | 可选 矩形边框的颜色。

##### 返回值:

canvas对象

#### static mars3d.Util.getUrlResource(config, templateValues) → Cesium.Resource
util/Util.js 1686

根据图层的config的配置信息，自动加上代理等配置返回Resource对象

参数名称 | 类型 | 描述信息
--- | --- | ---
`config` | object | 图层的配置信息
参数名称 | 类型 | 描述信息
--- | --- | ---
`url` | string | url地址
`proxy` | string | 可选 加载资源时要使用的代理服务url。
`templateValues` | object | 可选 一个对象，用于替换Url中的模板值的键/值对
`queryParameters` | object | 可选 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'}
`headers` | object | 可选 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' }
`templateValues` | object | 可选 ，同config.templateValues，便于合并. PS: config.templateValues优先级高于templateValues

##### 返回值:

Resource对象

#### static mars3d.Util.heightToZoom(altitude) → number
util/Util.js 1664

根据当前高度获取地图层级

参数名称 | 类型 | 描述信息
--- | --- | ---
`altitude` | number | 高度值

##### 返回值:

地图层级,通常为 0-21

#### static mars3d.Util.isBoolean(obj) → boolean
util/Util.js 40

判断对象是否为Boolean类型

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | * | 对象

##### 返回值:

是否为Boolean类型

#### static mars3d.Util.isFunction(val) → boolean
util/Util.js 81

判断对象是否为function方法

参数名称 | 类型 | 描述信息
--- | --- | ---
`val` | * | 对象

##### 返回值:

是否为function方法

#### static mars3d.Util.isNumber(obj) → boolean
util/Util.js 22

判断对象是否为Number类型

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | * | 对象

##### 返回值:

是否为Number类型

#### static mars3d.Util.isObject(obj) → boolean
util/Util.js 49

判断对象是否为Object类型

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | * | 对象

##### 返回值:

是否为Object类型

#### static mars3d.Util.isPCBroswer() → boolean
util/Util.js 2341

当前是否是PC电脑浏览器。

##### 返回值:

是否是PC电脑浏览器。

#### static mars3d.Util.isPlainObject(obj) → boolean
util/Util.js 61

判断对象是否为纯粹的Object类型 （所谓"纯粹的对象"，就是该对象是通过"{}"或"new Object"创建的）

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | * | 对象

##### 返回值:

是否为Object类型

#### static mars3d.Util.isSimpleType(value) → boolean
util/Util.js 90

判断对象是否为简单类型（包括：String\Boolean\Number\Array）

参数名称 | 类型 | 描述信息
--- | --- | ---
`value` | * | 对象

##### 返回值:

是否为简单类型（包括：String\Boolean\Number\Array）

#### static mars3d.Util.isString(obj) → boolean
util/Util.js 31

判断对象是否为String类型

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | * | 对象

##### 返回值:

是否为String类型

#### static mars3d.Util.measureCanvasText(context, text, textStyle) → HTMLCanvasElement
util/Util.js 1877

继续期望绘制在Canvas上的文本的高宽值， 获取结果后可以执行：context.fillText(item.text, item.x, item.y, spacingWidth)

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`context` | string |  | const context = canvas.getContext("2d")
`text` | string |  | 文字内容
`textStyle` | object | `{}` | 可选 参数对象:
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`font` | string | `'10px sans-serif'` | 可选 使用的CSS字体。
`spacing` | number |  | 可选 字间距
`fill` | boolean | `true` | 可选 是否填充文本。
`stroke` | boolean | `false` | 可选 是否描边文本。
`padding` | number | `0` | 可选 要在文本周围添加的填充的像素大小。

##### 返回值:

canvas对象

#### static mars3d.Util.merge(dest, sources) → object
util/Util.js 886

合并对象，对二级子属性为Object的对象也会进行融合。

参数名称 | 类型 | 描述信息
--- | --- | ---
`dest` | object | 目标对象
`sources` | object | 需要融入合并的对象

##### 返回值:

融合后的对象

#### static mars3d.Util.msg(msg) → void
util/Util.js 2390

执行msg提示窗（自动消失）

参数名称 | 类型 | 描述信息
--- | --- | ---
`msg` | string | 弹窗内的内容

##### 返回值:

无

#### static mars3d.Util.openFile(options) → Promise.<object>
util/Util.js 2137

导入打开本地文件

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | string | 可选 控制参数
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`accept` | string |  | 可选 限定文件类型,比如 ".json,.geojson"
`readAsText` | boolean | `true` | 可选 返回文本内容，false时返回原始file

##### 返回值:

图片对象

#### static mars3d.Util.padLeft0(numStr, n) → string
util/Util.js 140

按指定长度,对数字进行补零，返回指定长度的字符串

参数名称 | 类型 | 描述信息
--- | --- | ---
`numStr` | number | string | 数字对象,示例：1234
`n` | number | 指定长度，示例：8

##### 返回值:

补零后的指定长度的字符串，示例：'00001234'

#### static mars3d.Util.removeArrayItem(arr, val) → boolean
util/Util.js 1006

移除数组中的指定对象

参数名称 | 类型 | 描述信息
--- | --- | ---
`arr` | Array | 数组
`val` | * | 需要移除的数组元素对象

##### 返回值:

对象是否移除成功

#### static mars3d.Util.requestFullscreen(container) → boolean
util/Util.js 2527

进入全屏

参数名称 | 类型 | 描述信息
--- | --- | ---
`container` | HTMLElement | 指定DOM元素，如 map.container

##### 返回值:

是否全屏

#### static mars3d.Util.sendAjax(options) → Promise.<object>
util/Util.js 2501

请求服务返回结果，方法是基于axios库精简的

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 请求参数
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`url` | string |  | 服务URL地址
`queryParameters` | object |  | 可选 与请求一起发送的 URL 参数,例如 {id: 1987 }
`method` | string | `"get"` | 可选 请求类型
`timeout` | number | `0` | 可选 是否超时
`headers` | object |  | 可选 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' }

##### 返回值:

返回Promise异步处理结果，对象为response对象

#### static mars3d.Util.sleep(ms) → Promise.<void>
util/Util.js 107

延迟承诺函数，同setTimeout

参数名称 | 类型 | 描述信息
--- | --- | ---
`ms` | number | 毫秒数

##### 返回值:

返回承诺对象

#### static mars3d.Util.splitWords(str) → Array.<string>
util/Util.js 157

根据空格分割字符串，并返回字符串数组（会自动去掉首位空格）

参数名称 | 类型 | 描述信息
--- | --- | ---
`str` | string | 字符串

##### 返回值:

分割后的字符串数组

#### static mars3d.Util.stampGlobalId(obj) → number
util/Util.js 270

标记对象，给对象赋予对象的全局唯一ID（_mars3d_id值）

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | object | 对象

##### 返回值:

全局唯一ID （ ++lastId ）

#### static mars3d.Util.template(str, data, toEmpty) → string
util/Util.js 204

根据数据和格式化字符串模板，返回字符串

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`str` | string |  | 格式化字符串模版，属性字段为大括号，如 {name}
`data` | object |  | 数据对象
`toEmpty` | boolean | `false` | 可选 是否将模板中未匹配项转为空值

##### 返回值:

返回字符串

##### 使用示例:

    var str = mars3d.Util.template("<div>名称：{name}</div>", { name:"火星科技", date:"2017-8-25"} );
     //str结果为 : "<div>名称：火星科技</div>"

#### static mars3d.Util.trim(str) → string
util/Util.js 168

除去字符串首尾的空格

参数名称 | 类型 | 描述信息
--- | --- | ---
`str` | string | 字符串

##### 返回值:

除去首尾空格的字符串

#### static mars3d.Util.webglerror() → void
util/Util.js 2258

执行检测浏览器不支持webgl后的alert错误提示弹窗

##### 返回值:

无

#### static mars3d.Util.webglreport() → boolean
util/Util.js 2227

检测当前浏览器是否支持WebGL

##### 返回值:

是否支持WebGL