基础构成 🌎

命名空间

SzMap

CDN 模式下使用 SzMap 为框架默认命名空间,使用该框架开发时都需要统以 SzMap. 开始

DANGER

开发时尽量不要使用 SzMap 为变量名或者命名空间,避免框架无法正常使用。

全局Api

ready()

框架主入口函数,使用框架时必须以其开始,否则无法使用框架

SzMap.ready({}).then(()=>{})
  • 参数
    • {Object} config:配置参数
  • 返回值 Promise
//属性参数(可选)
{
  "Cesium": '<自定义的Cesium库,如果未设置,将使用框架内部默认Cesium框架>',
  "echarts": '<echarts库,设置后将加载echarts图层>',
  "baseUrl": '<Cesium 静态资源路径,默认值为:“./libs/szmap/resources/” >'
}

registerLib()

框架中注册第三放框架包,

SzMap.registerLib("turf",turf)
console.log(SzMap.__namspace.turf)
  • 参数
    • {String} name:名称
    • {Object} lib: 库模块

getLib()

获取框架中注册的第三方框架包,

let turf =  SzMap.getLib("turf")
  • 参数
    • {String} name:名称
  • 返回值 Object

常量

框架内部默认常量

WARNING

开发时请使用默认常量进行开发

MouseEventType

SzMap.MouseEventType.LEFT_DOWN: (场景、图层、覆盖物)鼠标左键按下事件

SzMap.MouseEventType.LEFT_UP: (场景、图层、覆盖物)鼠标左键抬升事件

SzMap.MouseEventType.CLICK: (场景、图层、覆盖物)鼠标点击事件

SzMap.MouseEventType.RIGHT_DOWN: (场景、图层、覆盖物)鼠标右键按下事件

SzMap.MouseEventType.RIGHT_UP: (场景、图层、覆盖物)鼠标右键按下事件

SzMap.MouseEventType.RIGHT_CLICK: (场景、图层、覆盖物)鼠标右击事件

SzMap.MouseEventType.DB_CLICK: (场景、图层、覆盖物)鼠标双击事件

SzMap.MouseEventType.MOUSE_MOVE: 场景鼠标移动事件

SzMap.MouseEventType.WHEEL: 场景鼠标滚轮事件

SzMap.MouseEventType.MOUSE_OVER: 覆盖物鼠标移入事件

SzMap.MouseEventType.MOUSE_OUT: 覆盖物鼠标移出事件

SceneEventType

SzMap.SceneEventType.CAMERA_MOVE_END: 相机移动完成

SzMap.SceneEventType.CAMERA_CHANGED: 相机位置完成

SzMap.SceneEventType.PRE_UPDATE: 场景更新前

SzMap.SceneEventType.POST_UPDATE: 场景更新后

SzMap.SceneEventType.PRE_RENDER: 场景渲染前

SzMap.SceneEventType.POST_RENDER: 场景渲染后

SzMap.SceneEventType.MORPH_COMPLETE: 场景模式变换完成

SzMap.SceneEventType.CLOCK_TICK: 时钟跳动

SzMap.SceneEventType.RENDER_ERROR: 渲染错误

MouseMode

SzMap.MouseMode.LEFT_MIDDLE: 左键拖动,中键翻转(默认)

SzMap.MouseMode.LEFT_RIGHT: 左键拖动,右键翻转

ImageryType

SzMap.ImageryType.ARCGIS: arcgis 地图

SzMap.ImageryType.SINGLE_TILE: 单图片地图

SzMap.ImageryType.WMS: WMS 地图

SzMap.ImageryType.WMTS: WMTS 地图

SzMap.ImageryType.XYZ: xyz 格式地图

SzMap.ImageryType.COORD: 瓦片坐标地图

SzMap.ImageryType.AMAP: 高德地图

SzMap.ImageryType.BAIDU: 百度地图

SzMap.ImageryType.GOOGLE: 谷歌地图

SzMap.ImageryType.TDT: 天地图

SzMap.ImageryType.TENCENT: 腾讯地图

SzMap.ImageryType.GEO_VIS: 星图地图

TerrainType

SzMap.TerrainType.NONE: 无地形

SzMap.TerrainType.XYZ: xyz 格式地形

SzMap.TerrainType.GOOGLE: 谷歌地形

SzMap.TerrainType.ARCGIS: arcgis 地形

SzMap.TerrainType.VR: VR 地形

LayerType

SzMap.LayerType.VECTOR: 矢量图层

SzMap.LayerType.PRIMITIVE: 图元图层

SzMap.LayerType.TILESET: 3dtiles 图层

SzMap.LayerType.HTML: html 图层

SzMap.LayerType.GEOJSON: GeoJson 图层

SzMap.LayerType.CLUSTER: 聚合图层

SzMap.LayerType.KML: kml 图层

SzMap.LayerType.CZML: czml 图层

SzMap.LayerType.HEAT: 热区图层

SzMap.LayerType.CHART: echarts 图层

OverlayType

SzMap.OverlayType.POINT: 点 可标绘

SzMap.OverlayType.POLYLINE: 线 可标绘

SzMap.OverlayType.POLYGON: 面 可标绘

SzMap.OverlayType.MODEL: 模型

SzMap.OverlayType.BILLBOARD: 图标点 可标绘

SzMap.OverlayType.RECTANGLE: 矩形 可标绘

SzMap.OverlayType.CIRCLE: 圆 可标绘

SzMap.OverlayType.LABEL: 标签

SzMap.OverlayType.TILESET: 3DTiles

SzMap.OverlayType.BOX: 盒

SzMap.OverlayType.CORRIDOR: 走廊

SzMap.OverlayType.CYLINDER: 圆柱

SzMap.OverlayType.ELLIPSE: 椭圆

SzMap.OverlayType.ELLIPSOID: 球体

SzMap.OverlayType.PLANE: 面板

SzMap.OverlayType.POLYLINE_VOLUME: 管道

SzMap.OverlayType.WALL: 墙体

SzMap.OverlayType.DYNAMIC_BILLBOARD: 动态图标点

SzMap.OverlayType.DYNAMIC_MODEL: 动态模型点

SzMap.OverlayType.CUSTOM_BILLBOARD: 自定义图标

SzMap.OverlayType.CUSTOM_LABEL: 自定义标签

SzMap.OverlayType.ATTACK_ARROW: 攻击箭头 可标绘

SzMap.OverlayType.DOUBLE_ARROW: 双箭头 可标绘

SzMap.OverlayType.FINE_ARROW: 直箭头 可标绘

SzMap.OverlayType.GATHERING_PLACE: 聚集地 可标绘

SzMap.OverlayType.TAILED_ATTACK_ARROW: 燕尾攻击箭头 可标绘

SzMap.OverlayType.BILLBOARD_PRIMITIVE: 图标图元

SzMap.OverlayType.DIFFUSE_WALL_PRIMITIVE: 扩散墙图元

SzMap.OverlayType.ELEC_ELLIPSOID_PRIMITIVE: 电弧球图元

SzMap.OverlayType.FLOW_LINE_PRIMITIVE: 流动线图元

SzMap.OverlayType.LABEL_PRIMITIVE: 文本图元

SzMap.OverlayType.MODEL_PRIMITIVE: 模型图元

SzMap.OverlayType.POINT_PRIMITIVE: 点图元

SzMap.OverlayType.POLYLINE_PRIMITIVE: 线图元

SzMap.OverlayType.SCAN_CIRCLE_PRIMITIVE: 扫描圆图元

SzMap.OverlayType.TRAIL_LINE_PRIMITIVE: 轨迹线图元

SzMap.OverlayType.WATER_PRIMITIVE: 水面图元

SzMap.OverlayType.VIDEO_PRIMITIVE: 视频图元

TrackViewMode

SzMap.TrackViewMode.FP: 第一人称视角

SzMap.TrackViewMode.TP: 第三人称视角

SzMap.TrackViewMode.TRACKED: 跟随视角

SzMap.TrackViewMode.FREE: 自由视角

SzMap.Viewer

3D 场景主要接口,在给定的 DivId 中构建三维场景

example

<div id="viewer-container"></div>
let viewer = SzMap.Viewer('viewer-container')
global.viewer = viewer // 添加到全局变量

WARNING

如果开发使用的是 Vue 这样的 MVVM 框架,不要将 viewer、layer、overlay 添加到数据模型中。由于 3D 场景中会不停的刷新每一帧,如果将数据添加到数据模型中,长时间的话会导致浏览器的压力增大而奔溃。

creation

  • constructor(id,[options])

    构造函数

    • 参数
      • {String | Element } id:容器 ID
      • {Object} options:属性
    • 返回值 viewer
//属性参数(可选)
{
  "contextOptions": {
    "webgl": {
      "alpha": false, //背景
      "depth": true,
      "stencil": false,
      "antialias": true,
      "powerPreference": "high-performance",
      "premultipliedAlpha": true,
      "preserveDrawingBuffer": false,
      "failIfMajorPerformanceCaveat": false
    },
    "allowTextureFilterAnisotropic": true
  },
  "sceneMode": 3 //1: 2.5D,2: 2D,3: 3D
}

properties

methods

  • setOptions(options)

    设置属性

    • 参数
      • {Object} options:属性对象
        • 返回值 this
// 属性参数(可选)
{
  "shadows": false, // 是否开启阴影
  "resolutionScale": 1, // 设置渲染分辨率的缩放比例
  "showAtmosphere": true, //是否显示大气层
  "showSun": true, //是否显示太阳
  "showMoon": true, //是否显示月亮
  "enableFxaa": true, //是否开启抗锯齿
  "msaaSamples": 1, //msaa抗拒出取样度
  "cameraController": {
    // 相机控制
    "enableRotate": true, // 是否可以旋转
    "enableTilt": true, // 是否可以翻转
    "enableTranslate": true, // 是否可以平移
    "enableZoom": true, // 是否可以缩放
    "enableCollisionDetection": true, // 是否支持碰撞检测
    "minimumZoomDistance": 1.0, // 最小缩放距离
    "maximumZoomDistance": 40489014.0 // 最大缩放距离
  },
  "globe": {
    "show": true, // 是否显示地球
    "showGroundAtmosphere": true, // 显示地面大气
    "enableLighting": false, //是否开启灯光,开启后地球会根据当前时间启用灯光
    "depthTestAgainstTerrain": false, //是否开启深度检测
    "tileCacheSize": 100, // 默认瓦片缓存大小
    "preloadSiblings": false, //是否应预加载渲染同级图块
    "terrainExaggeration": 1, //地形夸张系数
    "terrainExaggerationRelativeHeight": 1, //地形相对高度夸张系数
    "baseColor": new SzMap.Color(0, 0, 0.5, 1), //地球默认底色
    "filterColor": new SzMap.Color(0, 0, 0, 0), //瓦片过滤色,设置后不可逆
    "translucency": {
      //地表透明
      "enabled": false, // 是否开启地表透明
      "backFaceAlpha": 1, // 地球背面透明度
      "backFaceAlphaByDistance": null, //根据距离设置地球背面透明度: {near:400,nearValue:0.2,far:800,farValue:1}
      "frontFaceAlpha": 1, // 地球正面透明度
      "frontFaceAlphaByDistance": null //根据距离设置地球正面透明度: {near:400,nearValue:0.2,far:800,farValue:1}
    }
  },
  "skyBox": {
    "sources": {}, // 六个面的贴图
    "show": true, //是否显示
    "offsetAngle": 0 //旋转角度
  }
}
  • setPitchRange(min,max)

    设置翻转角度

    • 参数
      • {Number} min:最小角度
      • {Number} max:最大角度
    • 返回值 this
  • changeSceneMode(sceneMode, duration)

    改变场景模式

    • 参数
      • {Number} sceneMode:场景模式 ,2:2D,3:3D,2.5:2.5D
      • {Number} duration:间隔时间
    • 返回值 this
  • changeMouseMode(mouseMode)

    改变鼠标使用模式

    • 参数
      • {Number} mouseMode:鼠标模式,详情参考:SzMap.MouseMode
    • 返回值 this
  • addBaseLayer(baseLayers,options)

    添加地图

    • 参数
      • {baseLayer|Array<baseLayer>} baseLayers:地图
      • {Object} options:属性
    • 返回值 this
//属性参数 (可选)
{
  "name": "电子地图", //名称
  "iconUrl": "../preview.png" //缩略图
  "alpha" : 1.0,
  "nightAlpha" : 1.0,
  "dayAlpha" : 1.0,
  "brightness" : 1.0,
  "contrast" : 1.0,
  "hue" : 1.0,
  "saturation : 1.0,
  "gamma : 1.0,
}
  • changeBaseLayer(index)

    更改地图

    • 参数
      • {Number} index:地图索引
    • 返回值 this
  • getImageryLayerInfo(windowPosition)

    获取瓦片信息

    • 参数
      • {Object} windowPosition:窗口坐标
    • 返回值 promise
  • setTerrain(terrain)

    设置地形

    • 参数
      • {Terrain} terrain:地形
    • 返回值 this
  • addLayerGroup(layerGroup)

    添加图层组

    • 参数
      • {LayerGroup} layerGroup:图层组
    • 返回值 this
  • removeLayerGroup(layerGroup)

    移除图层组

    • 参数
      • {LayerGroup} layerGroup:图层组
    • 返回值 this
  • getLayerGroup(id)

    获取图层组

    • 参数
      • {String} id:图层组 ID
    • 返回值 layerGroup
  • addLayer(layer)

    添加图层

    • 参数
      • {Layer} layer:图层
    • 返回值 this
  • removeLayer(layer)

    删除图层

    • 参数
      • {Layer} layer:图层
    • 返回值 this
  • getLayer(id)

    获取图层

    • 参数
      • {String} id:图层 ID
    • 返回值 layer
  • getLayers()

    获取所有图层,不包括地图

    • 返回值 layer
  • eachLayer(method, context)

    遍历所有图层

    • 参数
      • {Function} method:回调函数
      • {Object} context:上下文,默认为 this
    • 返回值 this
    viewer.eachLayer((layer) => {})
    
  • flyTo(target,duration)

    飞向目标

    • 参数
      • {VectorLayer|Overlay} target :目标
      • {Number} duration:飞到位置时间,单位:秒
    • 返回值 this
  • zoomTo(target)

    缩放到目标

    • 参数
      • {VectorLayer|Overlay} target :目标
    • 返回值 this
  • flyToPosition(position, completeCallback, duration)

    飞到具体位置

    • 参数
      • {Position} position:位置
      • {Function} completeCallback:飞完之后触发的回调
      • {Number} duration:飞到位置时间,单位:秒
    • 返回值 this
  • zoomToPosition(position, completeCallback)

    缩放到具体位置

    • 参数
      • {SzMap.Position} position:位置
      • {Function} completeCallback:缩放完成后触发的回调
    • 返回值 this
  • flyToBounds(bounds,{heading,pitch,roll}, completeCallback, duration)

    飞到指定的范围

    • 参数
      • {String|Array} bounds:范围,格式:[minX,minY,maxX,maxY]
      • {Object} hpr:方位角
      • {Function} completeCallback:飞完之后触发的回调
      • {Number} duration:飞到位置时间,单位:秒
    • 返回值 this
  • zoomToBounds(bounds,{heading,pitch,roll}, completeCallback)

    缩放到指定的范围

    • 参数
      • {String|Array} bounds:范围,格式:[minX,minY,maxX,maxY]
      • {Object} hpr:方位角
      • {Function} completeCallback:缩放完之后触发的回调
    • 返回值 this
  • on(type, callback, context)

    事件订阅

    • 参数
      • {Object} type :订阅类型
      • {Function} callback :订阅回调
      • {Object} context :上下文
    • 返回值 this
  • once(type, callback, context)

    事件订阅(一次)

    • 参数
      • {Object} type :订阅类型
      • {Function} callback :订阅回调
      • {Object} context :上下文
    • 返回值 this
  • off(type, callback, context)

    取消事件订阅

    • 参数
      • {Object} type :订阅类型
      • {Function} callback :订阅回调
      • {Object} context :上下文
    • 返回值 this
  • destroy()

    销毁三维场景

    • 返回值 this
  • exportScene(name)

    导出场景

    • 参数
      • {String} name :名称,默认为 scene
    • 返回值 this

气泡窗口

example

let popup = viewer.popup
popup.setContent('<div></div>')

properties

  • {String} state:状态 readonly
  • {Object} config:配置 writeOnly
// 配置(可选)
// 配置后会影响全局的popup的显示样式,请慎重。
{
  "position": "center", // popup的位于鼠标的点击位置的方向,有:center,left ,right
  "customClass": "custom" // 添加自定义的Css 类名到popup中,多个用空格隔开
}

methods

  • setPosition(position)

    设置位置

    • 参数
      • {Cartesian3} position:世界坐标
    • 返回值 this
  • setContent(content)

    设置内容

    • 参数
      • {String|Element} content:内容
    • 返回值 this
  • setWrapper(wrapper)

    设置容器

    • 参数
      • {Element} wrapper:容器 (一般用于 MVVM 框架的模板)
    • 返回值 this
  • showAt(position, content)

    设置内容

    • 参数
      • {Cartesian3} position:世界坐标
      • {String|Element} content:内容
    • 返回值 this
  • hide()

    隐藏气泡窗口

    • 返回值 this

ContextMenu

右击菜单

example

let contextMenu = viewer.contextMenu
contextMenu.enable = true
contextMenu.DEFAULT_MENU = [
  {
    label: '测试',
    callback: (e) => {}, // e是一个对象主要包括 windowPosition,position,surfacePosition,overlay
    context: this,
  },
] // 设置默认的右击菜单,会影响全局右击菜单(慎用)。

properties

  • {Boolean} enable:是否启用
  • {String} state:状态 readonly
  • {Array} DEFAULT_MENU:默认菜单,菜单的回调函数参数为一个对象 writeOnly

Tooltip

提示框

example

let tooltip = viewer.tooltip
tooltip.enable = true
tooltip.showAt({ x: 100, y: 100 }, '测试')

properties

  • {Boolean} enable:是否启用
  • {String} state:状态 readonly

methods

  • showAt(position,content)

    设置位置

    • 参数
      • {Cartesian2} position:屏幕坐标
      • {String|Element} content:内容
    • 返回值 this

MapSplit

地图分割

examples

let baseLayer_elc = SzMap.ImageryLayerFactory.createGoogleImageryLayer()
viewer.mapSplit.enable = true
viewer.mapSplit.addBaseLayer(baseLayer_elc, -1)

properties

  • {Boolean} enable:是否启用
  • {String} state:状态 readonly

methods

  • addBaseLayer(baseLayer,[splitDirection])

    添加地图

    • 参数
      • {BaseLayer} baseLayer:地图
      • {Number} splitDirection:分割方向,-1:左,0:无,1:右
    • 返回值 this

TilesetSplit

模型分割

examples

let tileset = new SzMap.Tileset('**/tileset.json')
tileset.setSplitDirection(1)
viewer.tilesetSplit.enable = true
viewer.tilesetSplit.addTileset(tileset)

properties

  • {Boolean} enable:是否启用
  • {String} state:状态 readonly

methods

  • addTileset(tileset)

    添加地图

    • 参数
      • {Tileset} tileset:模型
    • 返回值 this

SceneSplit

场景分割

examples

let tileset = new SzMap.Tileset('**/tileset.json')
tileset.setSplitDirection(1)
viewer.sceneSplit.enable = true
viewer.sceneSplit.addTileset(tileset)

properties

  • {Boolean} enable:是否启用
  • {String} state:状态 readonly

methods

  • addBaseLayer(baseLayer)

    添加地图

    • 参数
      • {BaseLayer} baseLayer:地图
    • 返回值 this
  • addTileset(tileset)

    添加地图

    • 参数
      • {Tileset} tileset:模型
    • 返回值 this

Compass

罗盘

examples

viewer.compass.enable = true

properties

  • {Boolean} enable:是否启用
  • {String} state:状态 readonly

ZoomController

缩放控制

examples

viewer.zoomController.enable = true

properties

  • {Boolean} enable:是否启用
  • {String} state:状态 readonly

LocationBar

坐标信息

examples

viewer.locationBar.enable = true

properties

  • {Boolean} enable:是否启用
  • {String} state:状态 readonly

DistanceLegend

比例尺

examples

viewer.distanceLegend.enable = true

properties

  • {Boolean} enable:是否启用
  • {String} state:状态 readonly

LoadingMask

加载蒙层

examples

viewer.loadingMask.enable = true

properties

  • {Boolean} enable:是否启用
  • {String} state:状态 readonly

SzMap.SkyBox

天空盒,详情参考open in new window

example

scene.skyBox = new SzMap.SkyBox({
  sources: {
    positiveX: 'skybox_px.png',
    negativeX: 'skybox_nx.png',
    positiveY: 'skybox_py.png',
    negativeY: 'skybox_ny.png',
    positiveZ: 'skybox_pz.png',
    negativeZ: 'skybox_nz.png',
  },
})

creation

  • constructor(id)

    构造函数

    • 参数
      • {Object} options:配置
    • 返回值 skyBox
//options(可选)
{
  "sources": {}, // 六个面的贴图
  "show": true //显示
}

properties

  • {Object} sources:六个面的贴图
  • {Boolean} show:显示

SzMap.GroundSkyBox

近地天空盒,详情参考open in new window

example

scene.skyBox = new SzMap.GroundSkyBox({
  sources: {
    positiveX: 'skybox_px.png',
    negativeX: 'skybox_nx.png',
    positiveY: 'skybox_py.png',
    negativeY: 'skybox_ny.png',
    positiveZ: 'skybox_pz.png',
    negativeZ: 'skybox_nz.png',
  },
})

creation

  • constructor(id)

    构造函数

    • 参数
      • {Object} options:配置
    • 返回值 skyBox
//options(可选)
{
  "sources": {}, // 六个面的贴图
  "show": true, //显示
  "offsetAngle": 0 //旋转角度
}

properties

  • {Object} sources:六个面的贴图
  • {Boolean} show:显示
  • {Number} offsetAngle:旋转角度

SzMap.Position

坐标类,用于描述物体在场景中的具体位置,采用右手标准

example

let position = new SzMap.Position(120, 22, 102)

let position1 = SzMap.Position.fromString('120,22,102')

let position2 = SzMap.Position.fromArray([120, 22, 102])

let position3 = SzMap.Position.fromObject({ lng: 120, lat: 22, height: 102 })

creation

  • constructor(lng,lat,alt,heading,pitch,roll)

    构造函数

    • 参数
      • {Number} lng:经度
      • {Number} lat:纬度
      • {Number} alt:高度,单位:米,默认:0
      • {Number} heading:偏航角度,可能其他框架作 yaw,表示绕 Z 轴旋转。默认:0
      • {Number} pitch:俯仰角度,表示绕 Y 轴旋转。默认:0
      • {Number} roll:翻转角度,表示绕 X 轴旋转。默认:0
    • 返回值 position

properties

  • {Number} lng:经度
  • {Number} lat:纬度
  • {Number} alt:高度,单位:米,默认:0
  • {Number} heading:偏航角度,可能其他框架作 yaw,表示绕 Z 轴旋转。默认:0
  • {Number} pitch:俯仰角度,表示绕 Y 轴旋转。默认:0
  • {Number} roll:翻转角度,表示绕 X 轴旋转。默认:0

methods

  • serialize()

    序列化

    • 返回值 string
  • copy()

    复制一个新的位置

    • 返回值 position
  • toString()

    将坐标字符化

    • 返回值 string
  • toArray()

    将坐标数组化

    • 返回值 array
  • toObject()

    将坐标对象化

    • 返回值 Object

static methods

  • fromString(str)

    将字符化坐标转换为坐标对象

    • 参数
      • {String} str:字符化坐标
    • 返回值 position
  • fromArray(array)

    将数组化坐标转换为坐标对象

    • 参数
      • {Array} array:数组化坐标
    • 返回值 position
  • fromObject(obj)

    将 Json 对象坐标转换为坐标对象

    • 参数
      • {Object} obj:Json 对象坐标
    • 返回值 position
  • fromCoordString(str) deprecated

    字符坐标串转换为坐标对象

    • 参数
      • {String} str:字符坐标串
    • 返回值 position
  • fromCoordArray(array) deprecated

    坐标数组转换为坐标对象

    • 参数
      • {Array<String|Number>} array:坐标数组
    • 返回值 position
  • deserialize(valStr)

    反序列化

    • 参数
      • {String} valStr:序列化的对象
    • 返回值 position

SzMap.Color

颜色类

example

let red = SzMap.Color.RED

properties

  • {Color} RED:红色
  • {Color} YELLOW:黄色
  • {Color} WHITE:白色
  • {Color} GREEN:绿色

其他颜色open in new window

SzMap.TilesetStyle

tileset 样式,用于设置 3dtiles 的颜色设置

example

let style = new SzMap.TilesetStyle()
style.color = {
  conditions: [
    ['${floor} >= 5', 'rgb(198, 106, 11)'],
    ['true', 'rgb(127, 59, 8)'],
  ],
}

详情参考open in new window

SzMap.JulianDate

朱莉安日历

let date = SzMap.JulianDate.now()

static methods

  • now()

    当前朱莉安时间

    • 返回值 date
  • fromDate(date)

    通过 Js 时间创建朱莉安时间

    • 参数
      • {Date} date:Js 时间
    • 返回值 date

JulianDateopen in new window

SzMap.Rectangle

矩形相关函数

example

let r = SzMap.Rectangle.fromDegrees(10, 20, 12, 31)

详情参考open in new window

SzMap.CallbackProperty

回调属性,用户通过自定义回调函数来返回需要的值。回调函数中,用户可以使用 time 给定 value,也可以自定设置。

let position = new SzMap.Position(120, 20)
let point = new SzMap.Point(position)
let size = 0
point.setStyle({
  pixelSize: new SzMap.CallbackProperty((time) => {
    size += 1
    if (size == 10) {
      size = 0
    }
    return size
  }),
})

SzMap.Parse

坐标解析工具类,可简写为 SzMap.P

let position = SzMap.P.parsePosition('123,32,0')

static methods

  • parsePosition(position)

    解析坐标为 SzMap.Position

    • 参数
      • {String|Array|Position} position:坐标
    • 返回值 position
  • parsePositions(positions)

    解析坐标为 Array<SzMap.Position>

    • 参数
      • {String|Array} positions: 坐标
    • 返回值 array
  • parsePointCoordToArray(position)

    解析点位坐标为数组

    • 参数
      • {String|Position} position:点位坐标
    • 返回值 array
  • parsePolylineCoordToArray(positions)

    解析线坐标为二维数组

    • 参数
      • {String|Array} positions:线坐标
    • 返回值 array
  • parsePolygonCoordToArray(positions,loop)

    解析面坐标为三维数组

    • 参数
      • {String|Array} positions:面坐标
      • {Boolean} loop:闭合
    • 返回值 array

SzMap.Transform

坐标转换工具类 ,可简写为 SzMap.T

let cartesian3 = SzMap.T.transformWGS84ToCartesian(new SzMap.Position(120, 20))

static methods

  • transformCartesianToWGS84(cartesian)

    世界坐标转换为 84 坐标

    • 参数
      • {Cartesian3} cartesian:世界坐标
    • 返回值 position
  • transformWGS84ToCartesian(position)

    84 坐标转换为世界坐标

    • 参数
      • {Position} position:84 坐标
    • 返回值 cartesian
  • transformWGS84ToCartographic(position)

    84 坐标转换为制图坐标

    • 参数
      • {Position} position:84 坐标
    • 返回值 cartographic
  • transformCartesianArrayToWGS84Array(cartesianArr)

    世界坐标数组转 84 坐标数组

    • 参数
      • {Array<cartesian3>} cartesianArr:世界坐标数组
    • 返回值 array
  • transformWGS84ArrayToCartesianArray(WGS84Arr)

    84 坐标数组转世界坐标数组

    • 参数
      • {Array<cartesian3>} WGS84Arr:84 坐标数组
    • 返回值 array
  • transformWGS84ToMercator(position)

    84 坐标转 Mercator

    • 参数
      • {Position} position:84 坐标
    • 返回值 position
  • transformMercatorToWGS84(position)

    Mercator 坐标转 84

    • 参数
      • {Position} position:Mercator 坐标
    • 返回值 position
  • transformWindowToWGS84(position,viewer)

    屏幕坐标转 84

    • 参数
      • {Object} position: 屏幕坐标,格式{x:1,y:1}
      • {Viewer} viewer:3D 场景
    • 返回值 position
  • transformWGS84ToWindow(position,viewer)

    84 转屏幕坐标

    • 参数
      • {Position} position: 84 坐标
      • {Viewer} viewer:3D 场景
    • 返回值 Object

SzMap.CoordTransform

国内坐标转换工具

let point = SzMap.CoordTransform.BD09ToGCJ02(120, 20)

static methods

  • BD09ToGCJ02(lng, lat)

    百度坐标系 (BD-09) 的转换 火星坐标系 (GCJ-02)

    • 参数
      • {Number} lng:经度
      • {Number} lat:纬度
    • 返回值 []
  • GCJ02ToBD09(lng, lat)

    火星坐标系 (GCJ-02) 转换为 百度坐标系 (BD-09)

    • 参数
      • {Number} lng:经度
      • {Number} lat:纬度
    • 返回值 []
  • WGS84ToGCJ02(lng, lat)

    WGS-84 转换为 火星坐标系 (GCJ-02)

    • 参数
      • {Number} lng:经度
      • {Number} lat:纬度
    • 返回值 []
  • GCJ02ToWGS84(lng, lat)

    火星坐标系 (GCJ-02) 转换为 WGS-84

    • 参数
      • {Number} lng:经度
      • {Number} lat:纬度
    • 返回值 []

SzMap.Math

基本函数类

static methods

  • area(positions)

    面积,单位:平方米

    • 参数
      • {Array<Position>} positions: 点位数据
    • 返回值 number
  • bounds(positions , expand)

    边界

    • 参数
      • {Array<Position>} positions: 点位数据
      • {Number}} expand: 扩展比例:0~1
    • 返回值 object
  • mid(start , end)

    两点之间的中心点

    • 参数
      • start: 开始位置
      • end: 结束位置
    • 返回值 position
  • center(positions)

    中心点

    • 参数
      • {Array<Position>} positions: 点位数据
    • 返回值 position
  • distance(positions)

    距离,单位:米

    • 参数
      • {Array<Position>} positions: 点位数据
    • 返回值 number
  • heading(start,end)

    偏转角度,单位:度

    • 参数
      • start: 开始位置
      • end: 结束位置
    • 返回值 number
  • parabola(start, end,height,count)

    抛物线

    • 参数
      • start: 开始位置
      • end: 结束位置
      • {Number} height: 最高点高度
      • {Number} count: 点位数量
    • 返回值 Array

moreopen in new window

SzMap.Util

工具类

static methods

  • uuid(prefix)

    生成 uuid

    • 参数
      • {String} prefix:前缀,默认为 D
    • 返回值 string
  • merge(dest, ...sources)

    属性合并

    • 参数
      • {Object} dest:目标对象
      • {Object|Array} sources:需要合并的属性
    • 返回值 object
  • emptyImageUrl()

    空图片

  • debounce(fn,delay)

    防抖

  • throttle(fn,delay)

    节流

SzMap.DomUtil

Dom 工具类

static methods

  • get(id)

    创建 dom

    • 参数
      • {String} id: 要素 ID
    • 返回值 Element
  • create(tagName, className, [container])

    创建 dom

    • 参数
      • {String} tagName: 标签名
      • {String} className: 样式名,多个用空格隔开
      • {Element} [container]: 父容器
    • 返回值 Element
  • addClass(el, name)

    添加类名

    • 参数
      • {Element} el: 要素
      • {String} className: 样式名,多个用空格隔开
  • removeClass(el, name)

    删除类名

    • 参数
      • {Element} el: 要素
      • {String} className: 样式名,多个用空格隔开
  • addClass(el, name)

    添加类名

    • 参数
      • {Element} el: 要素
      • {String} className: 样式名,多个用空格隔开
  • createSvg(width, height, path, [container])

    添加类名

    • 参数
      • {Number} width: 宽度
      • {Number} height: 高度
      • {String} path: 路径
      • {Element} [container]: 父容器
    • 返回值 svg
  • parseDom(domStr, [withWrapper], [className])

    字符串转 Dom

    • 参数
      • {String} domStr: dom 字符串
      • {Boolean} withWrapper:返回是否含有父容器
      • {String} className: 类样式名称
    • 返回值 Element | Nodes
  • enterFullscreen(el)

    进入全屏

    • 参数
      • {Element} el: 要素
  • exitFullscreen()

    退出全屏

  • createVideo(url, className, [container])

    创建视频节点

    • 参数
      • {String} url: 视频地址
      • {String} className: 样式名,多个用空格隔开
      • {Element} [container]: 父容器
    • 返回值 Element | Nodes
Last Updated:
Contributors: zzc7400