Webgl加载按字段分类矢量数据

0 投票
使用产品:webgl iserver idesktop 10i

数据类型:1个点矢量shp,其中有两千多个点且二十多种类型,比如山峰、消防站等等。

问题详细描述:方案1:可以直接转s3m,然后通过sql查询显示指定类型的点,但是这样s3m格式的点,风格只能设置颜色大小之类的,                                      比如查到山峰了,需要添加山峰的png或者svg,能否通过代码实现?

                        方案2:通过桌面端把每个类别形成独立的文件,并且制作专题图,发布s3m,这样要做二十多张专题图,非常麻烦。

是否有更好的方案?
4月 29 分类:  77次浏览 | 用户: Sw1zzle1989 (4 分)

1个回答

0 投票
 
已采纳
您好,您可以通过

viewer.entities.add(new Cesium.Entity({
point: new Cesium.PointGraphics({
color: new Cesium.Color(1, 1, 0),
pixelSize: 10,
outlineColor: new Cesium.Color(0, 1, 1)
 }),
position: Cesium.Cartesian3.fromDegrees(longitude, latitude, height + 0.5)
 }));这样的形式添加吗,比如通过sql查询到不同种类的点后,在前端赋予其相应的符号。
4月 29 用户: KeineAhnung 名扬四海 (1,542 分)
采纳于 5月 10 用户:Sw1zzle1989

您好,我看了一下这个Cesium.PointGraphics,没有为点加符号的属性啊。我需要给点替换成本地的svg或者符号,类似这种。

不好意思图不全,点的风格需要像左下角哪个地铁站符号那样。

不好意思没说清楚,我的意思是您可以用viewer.entities.add的形式添加,查询到点的位置,在对应位置加上billboard,并不是要用pointGraphic这个接口,而是entity下的billboard。例如

{
"id":"test",
"billboard" : {
"image" : "data:image/svg+xml,<svg viewBox='0 0 40 40' height='25' width='25' xmlns='http://www.w3.org/2000/svg'><path fill='rgb(91, 183, 91)' d='M2.379,
14.729L5.208,11.899L12.958,19.648L25.877,6.733L28.707,9.561L12.958,25.308Z'
/></svg>",
"show" : [ {"boolean" : true} ]
},
"position":{
  "cartographicDegrees":[0.0, 0.0, 0.0]
},
"label":{"text":"TEST"},   
}
好的好的,我试一下,感谢
...