超图-SuperMap iClient3D for WebGL 用法速搜(入门级)

本文介绍了如何整合Cesium类库及iClient3DforWebGL,并详细探讨了事件监听、坐标拾取等核心功能,还提供了添加点位、限制缩放等实用技巧。

cesium中文网

一、环境依赖

1.Cesium类库整合

从超图官网下载SuperMap_iClient3D_10i(2020)_sp1_for_WebGL_CN.zip解压后,将Build、examples目录复制到项目中,由于文件较多占用空间较大,可删除examples目录下的示例文件、images文件夹,保留css、js、fonts文件夹即可!

C:.
├─Build
│  ├─Cesium
│  │  ├─Assets
│  │  │  ├─IAU2006_XYS
│  │  │  ├─Images
│  │  │  ├─Terrain
│  │  │  │  └─0
│  │  │  │      ├─0
│  │  │  │      └─1
│  │  │  └─Textures
│  │  │      ├─LensFlare
│  │  │      ├─maki
│  │  │      ├─NaturalEarthII
│  │  │      │  ├─0
│  │  │      │  │  ├─0
│  │  │      │  │  └─1
│  │  │      │  ├─1
│  │  │      │  │  ├─0
│  │  │      │  │  ├─1
│  │  │      │  │  ├─2
│  │  │      │  │  └─3
│  │  │      │  └─2
│  │  │      │      ├─0
│  │  │      │      ├─1
│  │  │      │      ├─2
│  │  │      │      ├─3
│  │  │      │      ├─4
│  │  │      │      ├─5
│  │  │      │      ├─6
│  │  │      │      └─7
│  │  │      └─SkyBox
│  │  ├─ThirdParty
│  │  │  └─Workers
│  │  │      └─PlotAlgo
│  │  ├─Widgets
│  │  │  ├─Animation
│  │  │  ├─BaseLayerPicker
│  │  │  ├─Cesium3DTilesInspector
│  │  │  ├─CesiumInspector
│  │  │  ├─CesiumWidget
│  │  │  ├─FullscreenButton
│  │  │  ├─Geocoder
│  │  │  ├─Images
│  │  │  │  ├─cur
│  │  │  │  ├─ImageryProviders
│  │  │  │  ├─Navigation
│  │  │  │  ├─NavigationHelp
│  │  │  │  ├─PlotImages
│  │  │  │  ├─TerrainProviders
│  │  │  │  └─ZoomIndicator
│  │  │  ├─InfoBox
│  │  │  ├─Navigation
│  │  │  ├─NavigationHelpButton
│  │  │  ├─PerformanceWatchdog
│  │  │  ├─ProjectionPicker
│  │  │  ├─SceneModePicker
│  │  │  ├─SelectionIndicator
│  │  │  ├─Timeline
│  │  │  ├─Viewer
│  │  │  ├─VRButton
│  │  │  └─ZoomIndicator
│  │  └─Workers
│  └─Stubs
└─examples
    ├─css
    ├─fonts
    ├─js
    ├─locales
    │  ├─en-US
    │  └─zh-CN
    └─webgl
        ├─css
        ├─fonts
        │  ├─download
        │  ├─glyphicons
        │  ├─iconfonts
        │  └─lato
        ├─images
        │  └─cur
        └─js
            ├─components
            ├─js
            ├─plotPanelControl
            │  ├─BasicCell
            │  ├─colorpicker
            │  │  ├─css
            │  │  ├─images
            │  │  └─js
            │  ├─jquery-easyui-1.4.4
            │  │  └─css
            │  │      └─images
            │  └─zTree
            │      └─css
            │          └─img
            │              └─diy
            ├─supermap
            │  └─Lang
            └─view-design
                └─dist
                    ├─locale
                    └─styles
                        └─fonts

2.iClient3D for WebGL与Cesium关系

iClient3D for WebGL与Cesium关系

3.视频教程

三维GIS基础入门视频教程

二、监听

1.用户输入事件

		//定义canvas屏幕点击事件,scene.canvas指的是HTMLCanvasElement元素,也就是屏幕画的东西
		var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
		
			//注册鼠标事件
			handler.setInputAction(function () {
   
   
				alert("点击了左键")
			}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
			handler.setInputAction(function () {
   
   
				alert("点击了中键")
			}, Cesium.ScreenSpaceEventType.MIDDLE_CLICK);
			handler.setInputAction(function () {
   
   
				alert("双击了左键")
			}, Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);
			
			// 其他鼠标点击事件还有
			// Cesium.ScreenSpaceEventType.LEFT_CLICK 左键点击事件
			// Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK 左键双击事件
			// Cesium.ScreenSpaceEventType.LEFT_DOWN 左键按下事件
			// Cesium.ScreenSpaceEventType.LEFT_UP 左键抬起事件
			// Cesium.ScreenSpaceEventType.MIDDLE_CLICK 滚轮点击
			// Cesium.ScreenSpaceEventType.MIDDLE_DOWN 滚轮按下
			// Cesium.ScreenSpaceEventType.MIDDLE_UP 滚轮抬起
			// Cesium.ScreenSpaceEventType.MOUSE_MOVE 鼠标移动
			// Cesium.ScreenSpaceEventType.PINCH_END 两指按下结束
			// Cesium.ScreenSpaceEventType.PINCH_MOVE 两指移动
			// Cesium.ScreenSpaceEventType.PINCH_START 两指开始触碰
			
	    handler.setInputAction(function () {
   
   
			//取消所有鼠标的点击事件
			// handler.destroy()  
			//取消鼠标某个点击事件,如下是取消右键,也可以为左键或者鼠标移动事件
			handler.removeInputAction(Cesium.ScreenSpaceEventType.RIGHT_CLICK);  
			alert("点击了右键,右键取消了,其他的还在")
		}, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
		
		handler.setInputAction(function () {
   
   
			//取消所有鼠标的点击事件
			handler.destroy()  
			alert("双击了右键,取消全部事件")
		}, Cesium.ScreenSpaceEventType.RIGHT_DOUBLE_CLICK);

2.坐标拾取

椭球体表面

var viewer = new Cesium.Viewer('container');
var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(function (event) {
   
   
    // 屏幕坐标转世界坐标——关键点
    var ellipsoid = viewer.scene.globe.ellipsoid;
    var cartesian = viewer.camera.pickEllipsoid(event.position, ellipsoid);
    //将笛卡尔坐标转换为地理坐标
    var cartographic 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬山境KL攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值