基于SuperMap三维WebGL开发之s3m切片缓存图层属性查询

API参考http://support.supermap.com.cn:8090/webgl/Build/Documentation/index.html

一、使用场景
在给定的模型里面,选定其中某个模型返回其属性进行展示,以官方例子中的樱花树为例,选择场景中的某一事物,需要返回他的属性信息。
二、数据处理及发布
1、管网下载樱花树数据,用桌面打开,可以查看默认的场景信息。
2、给数据集添加缓存,操作如下
(1)选定数据集,右键生成缓存,缓存类型如果有OSGB,选择OSGB格式,文件类型选择s3m,选择缓存存放目录
基于SuperMap三维WebGL开发之s3m切片缓存图层属性查询_第1张图片
生成目录如下
基于SuperMap三维WebGL开发之s3m切片缓存图层属性查询_第2张图片
注:每个数据集添加的缓存文件加都会带有一个.scp文件,该文件是用来将缓存添加到图层中来
(3)添加缓存到图层
打开场景,在图层管理器中,右键选择“普通图层”,添加“三维切片缓存图层”,选择每个数据集对应的缓存文件.scp,打开即可,如果多个数据集,重复以上步骤即可。

(4)将模型数据表另存为属性表(官方支持说是为了数据服务中查询效率)
选择数据集,浏览属性表,全选打开的表记录,鼠标右键,另存为数据集,保存为属性表即可
基于SuperMap三维WebGL开发之s3m切片缓存图层属性查询_第3张图片
(5)保存新的工作空间,Iserver发布,发布选择三维服务,如果有数据查询,再加上数据服务就可以了。
三、webgl开发
1、加载影像图层,超图已经做好了,直接上代码即可
基于SuperMap三维WebGL开发之s3m切片缓存图层属性查询_第4张图片
根据项目喜好,添加即可
2、设置气泡位置(非必须,可以换成自己的弹窗,或者alert)
基于SuperMap三维WebGL开发之s3m切片缓存图层属性查询_第5张图片
3、添加缓存图层(s3m)
基于SuperMap三维WebGL开发之s3m切片缓存图层属性查询_第6张图片
图中的相机参数第一可以通过桌面获取,或者在Iserver中webgl浏览时打印出相机的对象console.log(promise.camera)
4、添加图层点击事件
基于SuperMap三维WebGL开发之s3m切片缓存图层属性查询_第7张图片
查询点击的面或者范围的的图层ID(数据集中的SMID)进行sql查询,查出具体的面的 其他属性,空间和sql的结合。
5、sql查询
基于SuperMap三维WebGL开发之s3m切片缓存图层属性查询_第8张图片
和二维查询的方式一样,调用官方的api进行查询,需要注意的是datasetNames: [“Cherry:” + “yhsdata”] 里面的数据集最好使用属性表形式,如果采用空间查询,需要将属性表转成线、面的等矢量表,可以进行相交,包含等查询。
6、查询成功,属性展示
基于SuperMap三维WebGL开发之s3m切片缓存图层属性查询_第9张图片
相关截图


相关代码



	
		
		
		
		樱花树查询
		
		
		
		
		
		
	
	
		

提示:

点击查看属性

你可能感兴趣的:(GIS,js,supermap,三维开发,webgl)