nsc-earth v2.8.9
安装
cnpm/npm i nsc-earth
引用
nsc-earth包含封装Cesium的React组件-NSCEarthUI,包含一个Controller类-NSCEarth 通过实例化NSCEarthUI组件,返回一个NSCEarth实例,引用方式如下: NSCEarthUI组件有两个属性,一个是Cesium类,一个是onLoad回调函数,当NSCEarthUI实例化完成后,返回NSCEarth实例,后续所有的操作都基于NSCEarth实例;
import NSCEarthUI from 'nsc-earth'; ··· handleNSCEarthUILoad(NSCEarth) { this.NSCEarth = NSCEarth; }
## 功能
#### 1.定位
##### 相机参数定位
```javascript
//设置相机的经纬度和高,默认相机俯视
const cameraView = {
position: {
x: 110.5,
y: 26.0,
z: 3000
}
};
this.NSCEarth.setView(cameraView);
定位至实体
//target可以是entity、Array<Entity>、图层的datasource等
this.NSCEarth.flyTo(target);
图层
引入GraphicLayer图层类,实例一个图层需要name和geojson对象两个参数,geojson可以是文件路径,也可以是一个json对象,图层实例化完成后,调用onLoad回调函数返回layer对象,然后将图层对象通过NSCEarth.addLayer添加至三维场景中。
import { GraphicLayer } from 'nsc-earth';
const layer = new GraphicLayer('test', '/map.geojson'); layer.onLoad.addEventListener(resultLayer => { this.NSCEarth.addLayer(resultLayer); });
//获取所有图层,返回Array this.NSCEarth.layers
//控制图层显隐 layer.show=true/false; //缩放至图层 NSCEarth.flyTo(layer.dataSource) //获取图层所有entity,返回一个Array layer.values //图层名称 layer.name
## 事件
#### 绑定事件和取消绑定
//添加鼠标事件绑定 const mouseHandle = this.NSCEarth.LEFT_CLICK.addEventListener(result => { console.log('LEFT_CLICK mouseHandle', result); }); //移除事件绑定 mouseHandle();
//添加相机事件绑定 this.Camera_MoveEndHandler = NSCEarth.Camera_MoveEnd.addEventListener((camera) => { //camera }); //移除事件绑定 this.Camera_MoveEndHandler();
##### 鼠标事件列表
* LEFT_CLICK
* LEFT_CLICK
* LEFT_DOUBLE_CLICK
* LEFT_DOWN
* LEFT_UP
* MIDDLE_CLICK
* MIDDLE_DOWN
* MIDDLE_UP
* MOUSE_MOVE
##### 相机事件列表
* Camera_MoveStart
* Camera_MoveEnd
* Camera_Changed
## 拾取
>在三维球上点击,返回点击位置所有的entity
1.绑定地球单击事件,返回{ screenPoint, mapPoint }对象
this.mouseHandle = NSCEarth.LEFT_CLICK.addEventListener(({ screenPoint, mapPoint }) => { //screenPoint mapPoint })
2.NSCEarth.hitTest方法返回hitTestResult对象,包含screenPoint、ground、results属性,
其中results为Array<Entity>
const hitTestResult = NSCEarth.hitTest(screenPoint);
## 插件机制
>插件实质为一个React组件,当你将一个React组件作为插件添加时,你可以定义一个位置,如下图所示:
![3f8dfb075ca2a831dcc412eb517f79fe.png](en-resource://database/1189:1)
当一个React组件添加至场景中,会给组件的props中添加一个NSCEarth属性:
componentDidMount() { const { NSCEarth } = this.props;
#### 添加插件
this.NSCEarth.addWidget('HomeWidget', HomeWidget, 'bottom-right', { cameraView }).then(widget => { console.log('HomeWidget is loaded.'); }).catch(error => { console.log(error); });
#### 移除插件
NSCEarth.removeWidget('HomeWidget');
1 month ago
2 months ago
5 months ago
5 months ago
5 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
5 months ago
6 months ago
5 months ago
7 months ago
7 months ago
7 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
6 months ago
10 months ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago