首页 / 浏览问题 / WebGIS / 问题详情
图元id和SMID有什么联系吗
55EXP 2024年07月24日
SMID是我通过点击图元拿到的feature里面的属性,这个属性对每个数据集会重新从1开始计算。

图元Id是SuperMap3D的方法中经常用到的id,比如设置图元颜色setObjsColor(ids, color),这个id是不区分数据集的,

比如有两个数据集合并成一个图层。第一个数据集有50个图元,那么第二个数据集的第一个图元,他的SMID是1,图元id是51(根据我现在遇到的情况总结的,不一定正确)。

我目前要操作点击的图元,是通过找到所属数据集的开始id,在此基础加上SMID,用这个当作图元id来进行操作。

但这样操作不仅比较麻烦,而且不能保证正确性。所以想请问一下,1,能不能通过点击图元直接获取到他的图元Id;2,图元Id和feature中的SMID有什么联系

1个回答

您好,

获取对象的id通过点击实现事件就可以直接获取对象,然后得到当前选择对象的图元id。

如果您在桌面端生成场景缓存的话,smid就是您所说的图元id,

如果您在桌面端生成的是模型数据集缓存的,图元id是生成缓存时所指定的整型数值字段的值。

至于您说的smid和图元id不一样的情况,建议您确定一下您的数据到底是怎么生产的,

1.生成模型数据集缓存时指定了别的数值字段

可以按您需要生成缓存时指定smid

2.多个数据集本身合并成一个数据集后再切缓存

合并后额度数据集smid是新的唯一的,可以按您需要生成缓存时指定smid

3.多个数据集,数据集本身没有合并只是把缓存合并在了一次

建议方案一:把数据集合并后切缓存

建议方案二:前端在获取图元id的同时,获取该图层现图元id和原数据集、原id的对应关系,S3MTilesLayer、datasetInfo()适应对应关心进行查询。

希望可以帮助到您。
10,758EXP 2024年07月24日
...