三维SDK # 核心类(Core) *** ### 引入 ```javascript import { initUePixelStreaming, addEventListener, removeEventListener } from '../Core/connect'; ``` <!-- ### 初始化 ```javascript const my3DCore = new Core() ``` --> #### 方法列表 - initUePixelStreaming---初始
npm install nc-uesdkjavascript
import { initUePixelStreaming, addEventListener, removeEventListener } from '../Core/connect';
`
#### 方法列表
- initUePixelStreaming---初始化三维场景
- addEventListener---增加像素流监听
- removeEventListener---移除像素流监听
- getStream---获取像素流
##### initUePixelStreaming参数列表
|name|类型|描述|
|-|-|-|
|url|string|像素流地址|
|dom|HTMLElement|渲染器场景容器|
`html
`
`javascript
const ueDom = document.getElementById('totals') as HTMLElement //获取容器
const url = 'ws://localhost:80'
initUePixelStreaming(url, ueDom) //不改变焦点移动相机
`
##### addEventListener参数列表
|name|类型|描述|
|-|-|-|
|streams|PixelStreaming|像素流|
`javascript
import initUePixelStreaming from '../Core/connect'
const streams = initUePixelStreaming('ws://localhost:80', ueDom)
addEventListener(streams).then((val) => {
})
`
##### removeEventListener参数列表
|name|类型|描述|
|-|-|-|
|streams|PixelStreaming|像素流|
`javascript
import initUePixelStreaming from '../Core/connect'
const streams = initUePixelStreaming('ws://localhost:80', ueDom)
removeEventListener(streams)
`
##### getStream参数列表
|无|
|-|
`javascript
getStream()
`
*
相机类(Camera)
$3
`javascript
import {Camera} from "../Camera/Camera";
`
$3
`javascript
const myCamera = new Camera()
`
#### 方法列表
- getCameraMatrix---获取相机参数(矩阵)
- flyToLonLat---通过地理坐标飞行定位相机位置
- flyToWorld---通过世界坐标飞行定位相机位置
- lock---相机锁定
- unlock---相机解锁
- setAutogiration---相机沿视图中心自动旋转
- setCameraBoundBox---镜头范围限制
- setUnderground---相机是否可进入地下
- setCameraType---设置相机模式
- refreshCamera---重置场景初始镜头
##### getCameraMatrix参数列表
|无|
|-|
`javascript
myCamera.getCameraMatrix() //获取相机矩阵
`
##### setCameraBoundBox参数列表
|name|类型|描述|
|-|-|-|
|positionA|Vector3|左上角坐标|
|positionB|Vector3|右下角坐标|
`javascript
const left = new Vector3(114.0, 24.0, 0.0)
const right = new Vector3(115.0, 23.0, 0.0)
myCamera.setCameraBoundBox(left,right)
`
##### flyToLonLat参数列表
|name|类型|描述|
|-|-|-|
|position|Vector3|相机坐标|
|pitch|number|相机俯仰角|
|yaw|number|相机偏向角|
`javascript
import { Vector3 } from '../Math/Vector3'
const position = new Vector3(111.588745,28.791234,491286.246862)
const pitch = -67.0
const yaw = -70.0
myCamera.flyToLonLat(position, pitch, yaw)
`
##### flyToWorld参数列表
|name|类型|描述|
|-|-|-|
|position|Vector3|相机坐标|
|pitch|number|相机俯仰角|
|yaw|number|相机偏向角|
`javascript
import { Vector3 } from '../Math/Vector3'
const position = new Vector3(-275440.0,1036160.0,-428000.0)
const pitch = -67.0
const yaw = -70.0
myCamera.flyToWorld(position, pitch, yaw)
`
##### lock参数列表
|无|
|-|
`javascript
myCamera.lock() //锁定相机,不可移动
`
##### unlock参数列表
|无|
|-|
`javascript
myCamera.unlock() //解锁相机,可移动
`
*
副相机类(DeviceCamera)
$3
`javascript
import { DeviceCamera } from '../../Base/DeviceCamera'
`
$3
`javascript
var deviceCamera: DeviceCamera
deviceCamera = new DeviceCamera(
{
name: 'name1',
vieoPosition : new Vector2(0, 0),
CameraPostion : new Vector3(6342330.0,-11466610.0,-130310.0),
CameraRotate : new Vector3(0, 0, 0),
VisualAngle:'90',
CameraType:'1',
VideoSize:new Vector2(100,100)
})
deviceCamera.getCameraMatrix().then(res=>{
console.log(res)
})
`
#### 方法列表
- getCameraMatrix---获取副相机矩阵
- setCameraPosition---设置副相机位置
- setCameraRotate---设置副相机旋转
- setVideoPosition---设置副相机画面位置
- setVideoSize---设置副相机画面尺寸
- setCameraType---设置副相机类型(正交/透视),与参数
- setCameraLookAt---设置副相机朝向
- setCameraLookActor---设置副相机朝向对象(可锁定)
- unlockCameraLookActor---解除副相机对象锁定
- setCameraFolowActor---设置副相机跟随对象
- removeCamerFolow---解除副相机对象跟随
- destroy---销毁副相机
##### getCameraMatrix参数列表
|无|
|-|
`javascript
deviceCamera.getCameraMatrix() //获取相机矩阵
`
##### setCameraPosition参数列表
|name|类型|描述|
|-|-|-|
|CameraPostion|Vector3|相机坐标|
`javascript
import { Vector3 } from '../Math/Vector3'
const position = new Vector3(111.588745,28.791234,491286.246862)
deviceCamera.setCameraPosition(position)
`
##### setCameraRotate参数列表
|name|类型|描述|
|-|-|-|
|CameraRotate|Vector3|相机旋转坐标|
`javascript
import { Vector3 } from '../Math/Vector3'
const CameraRotate = new Vector3(0,0,-90)
deviceCamera.setCameraRotate(CameraRotate)
`
##### setVideoPosition参数列表
|name|类型|描述|
|-|-|-|
|vieoPosition|Vector2|副相机画面位置|
`javascript
let vieoPosition = new Vector2(100,200)
deviceCamera.setVideoPosition(vieoPosition)
`
##### setVideoSize参数列表
|name|类型|描述|
|-|-|-|
|VideoSize|Vector2|副相机画面尺寸|
`javascript
let VideoSize = new Vector2(100,200)
deviceCamera.setVideoSize(VideoSize)
`
##### setCameraType参数列表
|name|类型|描述|
|-|-|-|
|CameraType|string|副相机类型|
|VisualAngle|string|相机参数|
`javascript
// 透视相机相关
let CameraType = 'Perspective'//透视相机
let VisualAngle = '90'//相机可视角度
deviceCamera.setCameraType(CameraType,VisualAngle)
// 正交相机相关
let CameraType = 'Orthographic'//透视相机
let VisualAngle = '5000'//相机可视角度
deviceCamera.setCameraType(CameraType,VisualAngle)
`
##### setCameraLookAt参数列表
|name|类型|描述|
|-|-|-|
|lookPos|Vector3|副相机朝向坐标|
`javascript
let lookPos = new Vector3(6341330.0,-11466610.0,-130310.0)
deviceCamera.setCameraLookAt(lookPos )
`
##### setCameraLookActor参数列表
|name|类型|描述|
|-|-|-|
|ActorName|string|副相机看向对象名|
|lockflag|boolean|副相机是否锁定对象|
`javascript
let ActorName = 'cube'
let lockflag = true
deviceCamera.setCameraLookActor('cube',true)
`
##### unlockCameraLookActor参数列表
|无|
|-|
`javascript
let ActorName = 'cube'
let lockflag = true
deviceCamera.setCameraLookActor('cube',true)
`
##### setCameraFolowActor参数列表
|name|类型|描述|
|-|-|-|
|ActorName|string|副相机跟随对象名|
`javascript
let ActorName = 'cube'
deviceCamera.setCameraFolowActor(ActorName)
`
##### removeCamerFolow参数列表
|无|
|-|
`javascript
deviceCamera.removeCamerFolow()
`
##### destroy参数列表
|无|
|-|
`javascript
deviceCamera.destroy()
`
*
Object3D类(Object3D)
$3
`javascript
import { Object3D } from "../Object3D/Object3D";
`
$3
`javascript
const myObject3D = new Object3D(
{
name: 'exampleName',
groupId: 'myObject3D1',
position: new Vector3(0, 0, 0), //坐标
rotate: new Vector3(0, 0, 0), //旋转
size: new Vector3(1, 1, 1) //大小
})
`
#### 方法列表
- setVisible---根据uuid控制指定对象显隐
- setGroupVisible---根据groupId控制一组对象显隐
- setAllVisible---控制所有对象显隐
- setGroupId---设置组ID
- setPosition---设置位置
- setRotate---设置旋转
- setSize---根据缩放
- getMatrix---获取对象矩阵
- delete---根据uuid删除指定对象
- remove---根据groupId删除指定一组对象
- clear---删除所有对象
##### setVisible参数列表
|name|类型|描述|
|-|-|-|
|visibleType|visibleType|显隐性|
`javascript
const visibleType = 1 //1为隐藏0为显示
myObject3D.visibleType(visibleType)
`
##### setGroupVisible参数列表
|name|类型|描述|
|-|-|-|
|visibleType|visibleType|显隐性|
`javascript
const visibleType = 1 //1为隐藏0为显示
myObject3D.setGroupVisible(visibleType)
`
##### setAllVisible参数列表
|name|类型|描述|
|-|-|-|
|visibleType|visibleType|显隐性|
`javascript
const visibleType = 1 //1为隐藏0为显示
myObject3D.setAllVisible(visibleType)
`
##### setGroupId参数列表
|name|类型|描述|
|-|-|-|
|id|string|组ID|
`javascript
const id = 'myObject3D1'
myObject3D.setGroupId(id)
`
##### setPosition参数列表
|name|类型|描述|
|-|-|-|
|position|Vector3|坐标向量|
`javascript
import { Vector3 } from '../Math/Vector3'
const position = new Vector3(0, 0, 0)
myObject3D.setPosition(position)
`
##### setRotate参数列表
|name|类型|描述|
|-|-|-|
|position|Vector3|旋转向量|
`javascript
import { Vector3 } from '../Math/Vector3'
const position = new Vector3(0, 0, 0)
myObject3D.setRotate(position)
`
##### setSize参数列表
|name|类型|描述|
|-|-|-|
|position|Vector3|大小向量|
`javascript
import { Vector3 } from '../Math/Vector3'
const position = new Vector3(1, 1, 1)
myObject3D.setSize(position)
`
##### getMatrix参数列表
|无|
|-|
`javascript
myObject3D.getMatrix()
`
##### delete参数列表
|无|
|-|
`javascript
myObject3D.delete()
`
##### remove参数列表
|无|
|-|
`javascript
myObject3D.remove()
`
##### clear参数列表
|无|
|-|
`javascript
myObject3D.clear()
`
*
Glb类(Glb)
$3
`javascript
import { Glb } from '../Object3D/Glb';
`
$3
`javascript
const myglb = new Glb('myglb')
`
#### 方法列表
- setUrl---通过url加载模型
- clearGlb---移除模型
- setLongLatPosition---设置模型位置
- getGlbByName---通过名字获取模型
- StopAnimation---模型动画停止
- StartAnimation---模型动画开始
- getGlbNode---获取GLB模型子树
##### setUrl参数列表
|name|类型|描述|
|-|-|-|
|url|string|模型网址|
`javascript
myglb.setUrl('http://10.0.0.153:8080/uva.glb').then((val:any) => {
})
`
##### clearGlb参数列表
|无|
|-|
`javascript
myglb.clearGlb()
`
##### setLongLatPosition参数列表
|name|类型|描述|
|-|-|-|
|position|Vector3|坐标向量|
`javascript
import { Vector3 } from '../Math/Vector3'
const position = new Vector3(0, 0, 0)
myglb.setLongLatPosition(position)
`
##### getGlbByName参数列表
|name|类型|描述|
|-|-|-|
|name|string|模型名称|
`javascript
const name = 'myglb'
myglb.getGlbByName(name)
`
##### setClick参数列表
|name|类型|描述|
|-|-|-|
|click|string|事件开关|
`javascript
const click = '1'
myglb.setClick(click)
`
##### StopAnimation参数列表
|无|
|-|
`javascript
myglb.StopAnimation()
`
##### StartAnimation参数列表
|无|
|-|
`javascript
myglb.StartAnimation()
`
*
三维瓦片类(Tileset)
$3
`javascript
import { Tileset } from '../Object3D/loadTileset';
`
$3
`javascript
const mytileset = new Tileset('dianyun','http://localhost:8090/dm/tileset.json')
`
#### 方法列表
- setLongLat---设置瓦片位置
##### setLongLat参数列表
|name|类型|描述|
|-|-|-|
|position|any|坐标向量|
`javascript
import { Vector3 } from '../Math/Vector3'
const position = new Vector3(113.8,31.25,20000.0)
mytileset.setLongLat(position)
`
*
面类(Polygon)
$3
`javascript
import { Polygon } from "../Object3D/Polygon";
`
$3
`javascript
const myPolygon = new Polygon('myPolygon', 500)
`
#### 方法列表
- setMaterial---设置材质
- build---构造几何
##### setMaterial参数列表
|name|类型|描述|
|-|-|-|
|material|material|材质|
`javascript
import { Vector3 } from '../Math/Vector3'
import { Material } from '../Material/Material'
const material = new Material(new Vector3(0.5,1,1))
myPolygon.setMaterial(material)
`
##### build参数列表
|无|
|-|
`javascript
myPolygon.build()
`
*
Spline类(Spline)
$3
`javascript
import { Spline } from '../Object3D/spline';
`
$3
`javascript
const mySpline = new Spline('mySpline1')
`
#### 方法列表
- clickAddSpline---鼠标点击构线
- addPointList---坐标数组构线
- addPipeByList---坐标数组构实体线(UE坐标)
- addPipeByCoorList---坐标数组构实体线(经纬度)
- deletePipe---删除实体线
- changeSplineWidth---修改线条宽度
- changeSplineMaterial---修改线条材质
- addPoint---指点游标添加点
- removeIndexPoint---指点游标删除点
- moveActorBySpline---指定物体沿线移动
- changeState---修改运动状态
- changeSpeed---修改运动速度
- setNewTime---指定时刻下的物体位置
##### clickAddSpline参数列表
|name|类型|描述|
|-|-|-|
|clickAddSpline|Number|线条宽度|
`javascript
const lindwidth = 10
// 用户Alt+鼠标左键点击绘线,Alt+鼠标右键结束绘线
mySpline.clickAddSpline(lindwidth)
`
##### addPointList参数列表
|name|类型|描述|
|-|-|-|
|pointList|Array|坐标数组|
`javascript
import { Vector3 } from '../Math/Vector3'
const pointPositions = [new Vector3(0.0,0.0,0.0),new Vector3(1.0,1.0,1.0),new Vector3(2.0,2.0,2.0)]
mySpline.addPointList(pointPositions)
`
##### removeIndexPoint参数列表
|name|类型|描述|
|-|-|-|
|index|string|点的index|
`javascript
const index = '0'
mySpline.removeIndexPoint(index)
`
##### addPipeByList参数列表
|name|类型|描述|
|-|-|-|
|pointList|Array|管道的向量数组|
|Material|Object|材质对象|
|materialType|string|材质类型|
|width|string|样条宽度|
|pipeType|pipeType|样条形状|
`javascript
import { Vector3 } from '../Math/Vector3'
const pointPositions = [new Vector3(0.0,0.0,0.0),new Vector3(1.0,1.0,1.0),new Vector3(2.0,2.0,2.0)]
const splineMaterial = new LightMaterial(100)
mySpline.addPipeByList(pointPositions,'1000', splineMaterial,'LightMaterial','square')
`
##### removeIndexPoint参数列表
|name|类型|描述|
|-|-|-|
|index|string|点的index|
`javascript
const index = '0'
mySpline.removeIndexPoint(index)
`
##### deletePipe参数列表
|name|类型|描述|
|无|
|-|
`javascript
const pointPositions = [new Vector3(0.0,0.0,0.0),new Vector3(1.0,1.0,1.0),new Vector3(2.0,2.0,2.0)]
const splineMaterial = new LightMaterial(100)
mySpline.addPipeByList(pointPositions,'1000', splineMaterial,'LightMaterial','square')
// 添加实体管道(addPipeByList)后使用
mySpline.deletePipe()
`
##### changeSplineWidth参数列表
|name|类型|描述|
|-|-|-|
|width|String|宽度值|
`javascript
import { Vector3 } from '../Math/Vector3'
const pointPositions = [new Vector3(0.0,0.0,0.0),new Vector3(1.0,1.0,1.0),new Vector3(2.0,2.0,2.0)]
const splineMaterial = new LightMaterial(100)
mySpline.addPipeByList(pointPositions,'1000', splineMaterial,'LightMaterial','square')
mySpline.changeSplineWidth('100')
`
##### changeSplineMaterial参数列表
|name|类型|描述|
|-|-|-|
|Material|Material|基础材质|
`javascript
import { Vector3 } from '../Math/Vector3'
const pointPositions = [new Vector3(0.0,0.0,0.0),new Vector3(1.0,1.0,1.0),new Vector3(2.0,2.0,2.0)]
const splineMaterial = new LightMaterial(100)
mySpline.addPipeByList(pointPositions,'1000', splineMaterial,'LightMaterial','square')
const waterma = new WaterMaterial(new Vector3(1,1,0),1 ,1)
mySpline.changeSplineMaterial(waterma,'WaterMaterial')
`
##### addPoint参数列表
|name|类型|描述|
|-|-|-|
|position|Vector3|坐标向量|
|index|string|点的index|
`javascript
import { Vector3 } from '../Math/Vector3'
const pointPositions = [new Vector3(0.0,0.0,0.0),new Vector3(1.0,1.0,1.0),new Vector3(2.0,2.0,2.0)]
mySpline.addPointList(pointPositions)
mySpline.addPoint(pointPositions,'0')
`
##### removeIndexPoint参数列表
|name|类型|描述|
|-|-|-|
|index|string|点的index|
`javascript
import { Vector3 } from '../Math/Vector3'
const pointPositions = [new Vector3(0.0,0.0,0.0),new Vector3(1.0,1.0,1.0),new Vector3(2.0,2.0,2.0)]
mySpline.addPointList(pointPositions)
mySpline.removeIndexPoint(pointPositions,'0')
`
##### moveActorBySpline参数列表
|name|类型|描述|
|-|-|-|
|actorId|string|移动物体的uuid|
|speed|Number|物体移动速度|
|cameraFollow|boolean|相机是否跟随|
|cameraFollowDistance|Number|跟随相机距离物体xyz距离|
`javascript
import { Vector3 } from '../Math/Vector3'
const pointPositions = [new Vector3(0.0,0.0,0.0),new Vector3(1.0,1.0,1.0),new Vector3(2.0,2.0,2.0)]
mySpline.addPointList(pointPositions)
// 加载模型(地址动态调整),相机跟随模型运动
const myglb = new Glb('cs')
myglb.setUrl('http://10.0.0.124:8081/uva.glb')
mySpline.moveActorBySpline(myglb.uuid,2,true,68000)
`
##### changeState参数列表
|name|类型|描述|
|-|-|-|
|state|actorState|运动状态|
`javascript
import { Vector3 } from '../Math/Vector3'
const pointPositions = [new Vector3(0.0,0.0,0.0),new Vector3(1.0,1.0,1.0),new Vector3(2.0,2.0,2.0)]
mySpline.addPointList(pointPositions)
// 加载模型(地址动态调整),相机跟随模型运动
const myglb = new Glb('cs')
myglb.setUrl('http://10.0.0.124:8081/uva.glb')
mySpline.moveActorBySpline(myglb.uuid,2,true,68000)
mySpline.changeState('stop')
`
##### changeSpeed参数列表
|name|类型|描述|
|-|-|-|
|newSpeed|Number|新速度值|
`javascript
import { Vector3 } from '../Math/Vector3'
const pointPositions = [new Vector3(0.0,0.0,0.0),new Vector3(1.0,1.0,1.0),new Vector3(2.0,2.0,2.0)]
mySpline.addPointList(pointPositions)
// 加载模型(地址动态调整),相机跟随模型运动
const myglb = new Glb('cs')
myglb.setUrl('http://10.0.0.124:8081/uva.glb')
mySpline.moveActorBySpline(myglb.uuid,2,true,68000)
mySpline.changeSpeed(1)
`
##### changeSpeed参数列表
|name|类型|描述|
|-|-|-|
|newTime|Number|时刻值|
`javascript
import { Vector3 } from '../Math/Vector3'
const pointPositions = [new Vector3(0.0,0.0,0.0),new Vector3(1.0,1.0,1.0),new Vector3(2.0,2.0,2.0)]
mySpline.addPointList(pointPositions)
// 加载模型(地址动态调整),相机跟随模型运动
const myglb = new Glb('cs')
myglb.setUrl('http://10.0.0.124:8081/uva.glb')
mySpline.moveActorBySpline(myglb.uuid,2,true,68000)
mySpline.setNewTime(2)
`
*
精灵图类(Sprite)
$3
`javascript
import { Sprite } from "../Object3D/Sprite";
`
$3
`javascript
const mySprite = new Sprite(Sprite1,"http://192.168.11.5:8081/zt3.png")
`
#### 方法列表
- setType---设置类型属性
- setSpriteSize---设置精灵大小
- setClick---设置点击事件
- setSpriteOffset---设置锚点偏移
##### setType参数列表
|name|类型|描述|
|-|-|-|
|spriteType|spriteType|类型属性|
`javascript
const spriteType = '2D'//2d、3d分别是相对于屏幕和场景
mySprite.setType(spriteType)
`
##### setSpriteSize参数列表
|name|类型|描述|
|-|-|-|
|size|Vector2|二维向量|
`javascript
import { Vector2 } from '../Math/Vector2'
const Vector2 = new Vector2(1, 1)
mySprite.setSpriteSize(Vector2)
`
##### setClick参数列表
|name|类型|描述|
|-|-|-|
|fun|Function|方法|
`javascript
mySprite.setClick(function(){
console.log(city.name,'clickSprite')
clickTh(city.name)
})
`
##### setSpriteOffset参数列表
|name|类型|描述|
|-|-|-|
|fun|Function|方法|
`javascript
import { Vector2 } from '../Math/Vector2'
const position = new Vector2(1,1)
mySprite.setSpriteOffset(position)
`
*
注记类(Text)
$3
`javascript
import { Text } from '../Object3D/Text';
`
$3
`javascript
const myText = new Text('mytext','mytext')
`
#### 方法列表
- setLongLat---设置位置
- setClick---设置点击事件
- setTextOffset---设置锚点偏移
##### setLongLat参数列表
|name|类型|描述|
|-|-|-|
|position|any|坐标|
`javascript
import { Vector3 } from '../Math/Vector3'
const position = new Vector3(113.8,31.25,20000.0)
myText.setLongLat(position)
`
##### setClick参数列表
|name|类型|描述|
|-|-|-|
|fun|Function|方法|
`javascript
myText.setClick(function(){
console.log(city.name,'clickText')
clickTh(city.name)
})
`
##### setTextOffset参数列表
|name|类型|描述|
|-|-|-|
|fun|Function|方法|
`javascript
import { Vector2 } from '../Math/Vector2'
const position = new Vector2(1,1)
myText.setTextOffset(position)
`
*
Wall类(Wall)
$3
`javascript
import { Wall } from '../Object3D/Wall';
`
$3
`javascript
const myWall = new Wall('武汉', 500)
`
#### 方法列表
- setMaterial---设置材质
- build---构造围墙
##### setMaterial参数列表
|name|类型|描述|
|-|-|-|
|material|Material|材质|
`javascript
import { Vector3 } from '../Math/Vector3'
import { Material } from '../Material/Material'
const material = new Material(new Vector3(0.5,1,1))
myWall.setMaterial(material)
`
##### build参数列表
|无|
|-|
`javascript
myWall.build()
`
*
坐标转换类(Coord)
$3
`javascript
import convert from '../Math/Convert';
`
#### 方法列表
- lonLatToUE---wgs84坐标转ue世界坐标
- UETolonLat---ue世界坐标转wgs84坐标
- UEToPixel---ue世界坐标转屏幕坐标
- pixelToUE---屏幕坐标转ue世界坐标
- GCJTolonLat---高德坐标转wgs84坐标
- BDTolonLat---百度坐标转wgs84坐标
##### lonLatToUE参数列表
|name|类型|描述|
|-|-|-|
|position|Array|三维坐标数组|
`javascript
// 支持以下几种格式
import { Vector3 } from '../Math/Vector3'
const list1 = new Vector3(0,0,0)
const list2 = new Vector3(0,0,0)
const list3 = new Vector3(0,0,0)
const lists = []
lists.push(list1, list2, list3)
convert.lonLatToUE(lists)
`
##### UETolonLat参数列表
|name|类型|描述|
|-|-|-|
|position|Array|三维坐标数组|
`javascript
// 支持以下几种格式
import { Vector3 } from '../Math/Vector3'
const list1 = new Vector3(0,0,0)
const list2 = new Vector3(0,0,0)
const list3 = new Vector3(0,0,0)
const lists = []
lists.push(list1, list2, list3)
convert.UETolonLat(lists)
`
##### UEToPixel参数列表
|name|类型|描述|
|-|-|-|
|position|Array|三维坐标数组|
`javascript
// 支持以下几种格式
import { Vector3 } from '../Math/Vector3'
const list1 = new Vector3(0,0,0)
const list2 = new Vector3(0,0,0)
const list3 = new Vector3(0,0,0)
const lists = []
lists.push(list1, list2, list3)
convert.BDTolonLat(lists)
`
##### GCJTolonLat参数列表
|name|类型|描述|
|-|-|-|
|position|Array|三维坐标数组|
`javascript
// 支持以下几种格式
import { Vector3 } from '../Math/Vector3'
const list1 = new Vector3(114,25,100)
const list2 = new Vector3(134,24,100)
const list3 = new Vector3(112,24,100)
const lists = []
lists.push(list1, list2, list3)
const lonLat = convert.GCJTolonLat(lists)
`
##### BDTolonLat参数列表
|name|类型|描述|
|-|-|-|
|position|Array|三维坐标数组|
`javascript
// 支持以下几种格式
import { Vector3 } from '../Math/Vector3'
const list1 = new Vector3(114,25,100)
const list2 = new Vector3(134,24,100)
const list3 = new Vector3(112,24,100)
const lists = []
lists.push(list1, list2, list3)
const lonLat = convert.BDTolonLat(lists)
`
##### pixelToUE参数列表
|name|类型|描述|
|-|-|-|
|position|Array|二维坐标数组|
`javascript
// 支持以下几种格式
import { Vector2 } from '../Math/Vector2'
const list1 = new Vector2(0,0)
const list2 = new Vector2(0,0)
const list3 = new Vector2(0,0)
const lists = []
lists.push(list1, list2, list3)
convert.pixelToUE(lists)
`
*
地图类(Map)
$3
`javascript
import { refesh, setElevationUrl, setMapUrl } from '../Map/Map';
`
#### 方法列表
- refesh---刷新
- setElevationUrl---设置高程url
- setMapUrl---设置地图url
##### refesh参数列表
|无|
|-|
`javascript
refesh()
`
##### setElevationUrl参数列表
|name|类型|描述|
|-|-|-|
|url|string|高层URL|
`javascript
const url = 'http://10.0.0.101:8080/dem/layer.json'
setElevationUrl(url)
`
##### setMapUrl参数列表
|name|类型|描述|
|-|-|-|
|url|string|地图URL|
`javascript
const url = 'http://10.0.0.101:8080/satelite/{z}/{x}/{y}.png'
setMapUrl(url)
`
*
服务类(GisServer)
$3
`javascript
import { WMSServer } from '../GisServer/WMSServer';
`
$3
`javascript
const myWMSServer = new WMSServer(
{
url: 'http://10.0.0.25:8080/geoserver/hubei/wms',
name: 'hubei:500and1000', // wms服务名称
index: 1
})
`
#### 方法列表
- setLayerIndex---设置图层层级
- setLayerName---设置图层名称
- removeLayer---移除图层
##### setLayerIndex参数列表
|name|类型|描述|
|-|-|-|
|index|number|层级|
`javascript
const index = 1
myWMSServer.setLayerIndex(index)
`
##### setLayerName参数列表
|name|类型|描述|
|-|-|-|
|name|string|图层名称|
`javascript
const name = 'wmsserver1'
myWMSServer.setLayerName(name)
`
##### removeLayer参数列表
|无|
|-|
`javascript
myWMSServer.removeLayer()
`
*
高亮描边类(OutLine)
$3
`javascript
import OutLine from '../Pass/OutLine'
`
#### 方法列表
- setOutLine---设置高亮描边
- removeOutLine---删除高亮描边
##### setOutLine参数列表
|name|类型|描述|
|-|-|-|
|id|string|模型ID|
`javascript
const id = 'XXXXXX'
OutLine.setOutLine(id)
`
##### removeOutLine参数列表
|name|类型|描述|
|-|-|-|
|id|string|模型ID|
`javascript
const id = 'XXXXXX'
OutLine.removeOutLine(id)
`
*
天际线(skyLine)
$3
`javascript
import skyLine from '../Pass/skyLine'
`
#### 方法列表
- openSkyLine---开启天际线
- removeSkyLine---关闭天际线
##### setOutLine参数列表
|name|类型|描述|
|-|-|-|
|width|Number|天际线宽度|
|color|Vector3|天际线rgb颜色|
`javascript
import { Vector3 } from '../Math/Vector3'
skyLine.openSkyLine(5,new Vector3(1,0,0))
`
##### removeSkyLine参数列表
|无|
|-|
`javascript
import { Vector3 } from '../Math/Vector3'
skyLine.openSkyLine(5,new Vector3(1,0,0))
OutLine.removeSkyLine()
`
*
DataSmith模型类(DataSmith)
$3
`javascript
import { DataSmith } from '../Object3D/DataSmith'
`
#### 方法列表
- setUrl---开启对象平移方法
- setLonLatPosition---开启对象缩放方法
- getModelByName---开启对象旋转方法
- setModelVisible---设置模型显示隐藏
- setModelAlpha---设置模型透明度
- setModelRotate---设置模型旋转
- modelDestroy---设置模型旋转
- getNode---获取模型结构树
- copyMode---模型复制
- modelHighLight---模型高亮
##### transformlContral参数列表
|name|类型|描述|
|-|-|-|
|uuid|string|对象uuid|
|tag|string|对象标签|
`javascript
const modelA = new DataSmith('newModel')
modelA.setUrl('巷冲35kV变电站').then(data => {
editModel.startEditModel(modelA.uuid)
})
`
*
模型编辑类(TransformlContral)
$3
`javascript
import editModel from '../transformlContral/transformlContral'
import { DataSmith } from '../Object3D/DataSmith'
`
#### 方法列表
- startEditModel---开启对象平移方法
- startScaleModel---开启对象缩放方法
- startRotateModel---开启对象旋转方法
- stopEditModel---结束对象编辑方法
- fallGround---对象落地方法
##### startEditModel参数列表
|name|类型|描述|必填|
|-|-|-|-|
|uuid|string|对象uuid|true|
`javascript
const modelA = new DataSmith('newModel')
modelA.setUrl('E:/uepack/newmain/Windows/UESDK/Content/dataSmithModel/model/巷冲35kV变电站.udatasmith').then(data => {
editModel.startEditModel({uuid:modelA.uuid})
})
`
##### startScaleModel参数列表
|name|类型|描述|必填|
|-|-|-|-|
|uuid|string|对象uuid|true|
`javascript
const modelA = new DataSmith('newModel')
modelA.setUrl('E:/uepack/newmain/Windows/UESDK/Content/dataSmithModel/model/巷冲35kV变电站.udatasmith').then(data => {
editModel.startScaleModel({uuid:modelA.uuid})
})
`
##### stopEditModel参数列表
|无|
|-|
`javascript
editModel.stopEditModel()
`
##### startRotateModel参数列表
|name|类型|描述|必填|
|-|-|-|-|
|uuid|string|对象uuid|true|
`javascript
const modelA = new DataSmith('newModel')
modelA.setUrl('E:/uepack/newmain/Windows/UESDK/Content/dataSmithModel/model/巷冲35kV变电站.udatasmith').then(data => {
editModel.startRotateModel({uuid:modelA.uuid})
})
`
##### fallGround参数列表
|name|类型|描述|必填|
|-|-|-|-|
|uuid|string|对象uuid|true|
|targetTag|string|目标地面标签|true|
`javascript
const modelA = new DataSmith('newModel')
modelA.setUrl('E:/uepack/newmain/Windows/UESDK/Content/dataSmithModel/model/巷冲35kV变电站.udatasmith').then(data => {
editModel.fallGround('terrain',{uuid:modelA.uuid}).then(val => {
console.log(val,'地面位置')
})
})
`
*
面绘制(aspects)
$3
`javascript
import aspects from '../event/aspects'
`
#### 方法列表
- TwoAspects---开启两点构面
- stopTwoAspects---结束两点编辑
- multipoint---开启多点绘制面
- removeAspects---移除所有面
##### TwoAspects参数列表
|name|类型|描述|
|-|-|-|
|makeArea|boolean|是否构面|
`javascript
aspects.TwoAspects()
`
##### stopTwoAspects参数列表
|无|
|-|
`javascript
aspects.stopTwoAspects()
`
##### multipoint参数列表
|name|类型|描述|
|-|-|-|
|makeArea|boolean|是否构面|
`javascript
aspects.multipoint()
`
##### removeAspects参数列表
|无|
|-|
`javascript
aspects.removeAspects()
`
*
绘制水(drawWater)
$3
`javascript
import {drawWater} from '../event/drawWater'
`
#### 方法列表
- draw---开始绘制
- stopWater---停止绘制
- newWaterMaterial---更新水材质
- removeWater---移除所有水面
##### draw参数列表
|无|
|-|
`javascript
const mywater = new drawWater()
mywater.draw()
`
##### stopWater参数列表
|无|
|-|
`javascript
mywater.stopWater()
`
##### newWaterMaterial参数列表
|name|类型|描述|
|-|-|-|
|material|Material|材质颜色|
|WaveStrength|number|波浪大小|
|FlowSpeed|number|水面流速|
`javascript
import { Vector3 } from '../Math/Vector3'
import { Material } from '../Material/Material'
const material = new Material(new Vector3(1,1,0))
mywater.newWaterMaterial(material,1,1)
`
##### removeWater参数列表
|无|
|-|
`javascript
mywater.removeWater()
`
天气组件(setWeather)
$3
`javascript
import {setWeather, setCloudNum, setCloudHeight, setCloudSpeed, setFogNum, removeWeather} from '../weather/setWeather'
`
#### 方法列表
- setWeather---设置天气
- setCloudNum---设置云密度
- setCloudHeight---设置大气高度
- setCloudSpeed---设置云速度
- setFogNum---设置雾密度
- removeWeather---移除天气
##### setWeather参数列表
|name|类型|描述|
|-|-|-|
|weatherType|weather|天气类型|
`javascript
setWeather('rain')
`
##### setCloudNum参数列表
|name|类型|描述|
|-|-|-|
|cloudNum|number|云密度|
`javascript
setWeather('rain')
setCloudNum(8)
`
##### setCloudHeight参数列表
|name|类型|描述|
|-|-|-|
|cloudHeight|number|大气高度|
`javascript
setWeather('rain')
cloudHeight(8)
`
##### setCloudSpeed参数列表
|name|类型|描述|
|-|-|-|
|setCloudSpeed|number|云速度|
`javascript
setWeather('rain')
setCloudSpeed(8)
`
##### setFogNum参数列表
|name|类型|描述|
|-|-|-|
|fogNum|number|雾密度|
`javascript
setWeather('rain')
setFogNum(8)
`
#####
removeWeather参数列表
|无|
|-|
`javascript
setWeather('rain')
removeWeather()
`
*
围栏绘制(drawWall)
$3
`javascript
import {drawWall} from '../../event/drawWall'
`
#### 方法列表
- draw---开始绘制
- stopWall---停止绘制
- removeWall---移除围栏
- newWallMaterial---更换材质
##### draw参数列表
|无|
|-|
`javascript
const myWall = new drawWall() // 初始化,默认高度10,默认纹理蓝色渐变条纹
const WallMaterial = new WallMaterial(new Vector3(0.169083,0.149388,0),0 ,1 ,0)
const myWall = new drawWall(100,WallMaterial) //初始化设置墙面高度,墙面纹理
myWall.draw() //开始绘制
`
##### stopWall参数列表
|无|
|-|
`javascript
myWall.stopWall()
`
##### removeWall参数列表
|无|
|-|
`javascript
myWall.removeWall()
`
##### newWallMaterial参数列表
|name|类型|描述|
|-|-|-|
|material|WallMaterial|围墙材质|
`javascript
import {WallMaterial} from '../../Material/WallMaterial'
const tiao2 = new WallMaterial(new Vector3(0,1,1),0 ,0 ,1) //第一个参数是颜色需要归一化,第二个是渐变取值为0-100,第三个是条纹流动纹理取值0或者1,第四个是斜纹纹理取值0或者1
myWall.newWallMaterial(tiao2)
`
*
求两点距离(Distance)
$3
`javascript
import {Distance} from '../../Math/Distance'
`
#### 方法列表
- linearDistance---计算直线距离
- sphericalDistance---计算球面距离
##### linearDistance参数列表
|name|类型|描述|
|-|-|-|
|pointA|Vector3|第一个点坐标|
|pointB|Vector3|第二个点坐标|
`javascript
const po1 = new Vector3(114.316106446445,30.5646010980166,15)
const po2 = new Vector3(114.324529738406,30.5560350383956,30)
const juli = Distance.linearDistance(po1, po2)
`
##### sphericalDistance参数列表
|name|类型|描述|
|-|-|-|
|pointA|Vector3|第一个点坐标|
|pointB|Vector3|第二个点坐标|
`javascript
const po1 = new Vector3(114.316106446445,30.5646010980166,15)
const po2 = new Vector3(114.324529738406,30.5560350383956,30)
const juli = Distance.sphericalDistance(po1, po2)
`
*
求中心点(CalculateCenter)
$3
`javascript
import {CalculateCenter} from '../../Math/CalculateCenter'
`
#### 方法列表
- lonLatCenterPoint---计算地球球体坐标系下点集中心点
- mathCenterPoint---计算空间直角坐标系下点集中心点
##### lonLatCenterPoint参数列表
|name|类型|描述|
|-|-|-|
|position|Array|三维向量集|
`javascript
const list =[new Vector3(114.316106446445,30.5646010980166,15),new Vector3(114.324529738406,30.5560350383956,30),new Vector3(114.323429778477,30.5693306012377,15),new Vector3(114.318118821512,30.5525411243805,30)]
const center = CalculateCenter.lonLatCenterPoint(list)
`
##### mathCenterPoint参数列表
|name|类型|描述|
|-|-|-|
|position|Array|三维向量集|
`javascript
const list =[new Vector3(114.316106446445,30.5646010980166,15),new Vector3(114.324529738406,30.5560350383956,30),new Vector3(114.323429778477,30.5693306012377,15),new Vector3(114.318118821512,30.5525411243805,30)]
const center = CalculateCenter.mathCenterPoint(list)
`
*
图层类(layer)
$3
`javascript
import {layer} from '../../layer'
`
#### 方法列表
- setLayerMaterial---设置图层材质
- setLayerMetalness---设置图层金属光泽
- setLayerColor---分层设色
##### setLayerMaterial参数列表
|name|类型|描述|
|-|-|-|
|material|Material|材质类|
`javascript
const layer = new Layer()
const material =new Material(1.0,0.0,0.0)
layer.setLayerMaterial(material)
`
##### setLayerMetalness参数列表
|name|类型|描述|
|-|-|-|
|metalness|Number|数值|
`javascript
const layer = new Layer()
layer.setLayerMetalness(1.0)
`
*
球类(sphere)
$3
`javascript
import {Sphere} from '../../sphere'
`
#### 方法列表
- setPosition---设置球体位置
- setSize---设置球体大小
- setColor---设置球体颜色
##### setPosition参数列表
|name|类型|描述|
|-|-|-|
|position|vector3|向量|
`javascript
const sphere = new Sphere()
sphere.setPosition(new Vector3(0,0,0))
`
##### setSize参数列表
|name|类型|描述|
|-|-|-|
|size|Number|数值|
`javascript
const sphere = new Sphere()
sphere.setSize(10.0)
`
*
点类(point)
$3
`javascript
import {Point} from '../../point'
`
#### 方法列表
- setPosition---设置点的位置
- setSize---设置点的大小
- setColor---设置点的颜色
##### setPosition参数列表
|name|类型|描述|
|-|-|-|
|position|vector3|向量|
`javascript
const point = new Point()
point.setPosition(new Vector3(0,0,0))
`
##### setSize参数列表
|name|类型|描述|
|-|-|-|
|size|Number|数值|
`javascript
const point = new Point()
point.setSize(10.0)
`
*
线类(line)
$3
`javascript
import {Line} from '../../line'
`
#### 方法列表
- setByPositionList---设置线的位置
- setWidth---设置线的宽度
- setColor---设置线的颜色
##### setByPositionList参数列表
|name|类型|描述|
|-|-|-|
|positionList|Array|三维向量集|
`javascript
const line = new Line()
line.setByPositionList([new Vector3(0,0,0),new Vector3(1000,0,0)])
`
##### setWidth参数列表
|name|类型|描述|
|-|-|-|
|width|Number|数值|
`javascript
const line = new Line()
line.setWidth(10.0)
`
*
广告牌文字类(billboardText)
$3
`javascript
import {BillboardText} from '../../billboardText'
`
#### 方法列表
- setPosition---设置文字的位置
- setText---设置文字
- setColor---设置文字颜色
##### setPosition参数列表
|name|类型|描述|
|-|-|-|
|position|Vector3|三维向量|
`javascript
const billboardText = new BillboardText()
billboardText.setPosition(new Vector3(0,0,0))
`
##### setText参数列表
|name|类型|描述|
|-|-|-|
|text|String|文字|
`javascript
const billboardText = new BillboardText()
billboardText.setText('HELLO')
`
*
标牌类(markLabel)
$3
`javascript
import {MarkLabel} from '../../markLabel'
`
#### 方法列表
- setPosition---设置文字的位置
- setText---设置文字
- setColor---设置文字颜色
##### setPosition参数列表
|name|类型|描述|
|-|-|-|
|position|Vector3|三维向量|
`javascript
const markLabel = new MarkLabel()
markLabel.setPosition(new Vector3(0,0,0))
`
##### setText参数列表
|name|类型|描述|
|-|-|-|
|text|String|文字|
`javascript
const markLabel = new MarkLabel()
markLabel.setText('HELLO')
`
*
画线工具类(drawLineTools)
$3
`javascript
import {DrawLineTools} from '../../drawLineTools'
`
#### 方法列表
- startDraw---开始绘制
- endDraw---结束绘制
- clear---清除绘制的线
- getLength---获取绘制长度
`javascript
const draw = new DrawLineTools()
draw.startDraw()
`
*
光源特效类(light)
$3
`javascript
import {Light} from '../../light'
`
#### 方法列表
- setPower---设置光源强度
- setColor---设置光源颜色
- setPosition---设置光源位置
`javascript
const light = new Light()
light.setPower(100)
`
*
绘制动态线类(drawDynamicLine)
$3
`javascript
import {DrawDynamicLine} from '../../drawDynamicLine'
`
#### 方法列表
- startDraw---开始绘制
- endDraw---结束绘制
- clear---清除绘制的线
- getLength---获取绘制长度
`javascript
const draw = new DrawDynamicLine()
draw.startDraw()
`
*
画多边形工具类(drawPolygon)
$3
`javascript
import {DrawPolygon} from '../../drawPolygon'
`
#### 方法列表
- startDraw---开始绘制
- endDraw---结束绘制
- clear---清除绘制的多边形
- getArea---获取绘制面积
`javascript
const draw = new DrawPolygon()
draw.startDraw()
`
*
网格类(grid)
$3
`javascript
import {Grid} from '../../grid'
`
#### 方法列表
- getGrid---获取网格对象
- setGridPosition---设置平面网格
- setGridSize---设置网格大小
`javascript
const grid = new Grid()
grid.setGridPosition(new Vector3(0,0,0))
grid.setGridSize(10)
``