图层编辑刷新的问题

0 投票
场景中有两个图层,数据源来源于一个DatasetVector,;两个图层中的数据以数据源中某个属性字段进行筛选,然后在应用中分布针对两个图层进行添加新要素,实际上是向DatasetVector中添加新要素,只是相应的用于区别的属性值不一样,添加成功后,刷新场景,场景上显示添加的新要素总是这两个图层中的一个图层的符号显示,重新启动应用打开这两个图层后,图层上要素符号显示又正常,上代码如下:

           //得到数据集的记录集,并向该要素类中添加要素,区别字段为stype
            Recordset recordset = dassetpt.GetRecordset(true, SuperMap.Data.CursorType.Dynamic);
            GeoPoint geoPoint = new GeoPoint(cpt.X, cpt.Y);
            Dictionary<string, object> dict = new Dictionary<string, object>();
            dict.Add("dsname", txtDisaName.Text);
            dict.Add("description", txtDesc.Text);
            if (ctool == 2)
                dict.Add("stype", "2");
            else
            {
                dict.Add("stype", "1");
            }
            recordset.AddNew(geoPoint, dict);
            bool success = recordset.Update();
            recordset.Refresh();
            if (success)
            {
               if(MessageBox.Show("成功")== DialogResult.OK)
                {

                    recordset.Close();
                    recordset.Dispose();
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
            }

        //刷新场景代码如下:

         string layertext = "";
         if (currenttool == 2)
                            layertext = "X类点";
                        else
                            layertext = "Y类点";
                        
                        Layer3D layer = FindLayerbyCaption(scenceControl.Scene, layertext);
                        layer.UpdateData();
                        scenceControl.Scene.Refresh();
                        scenceControl.Refresh();

如上代码所示,添加完毕后,刷新场景,新添加的要素显示的符号只是其中一个层的符号,重新启动后又正常。不知什么地方不对,望指点
5月 13, 2018 分类:  487次浏览 | 用户: skylining 才疏学浅 (13 分)

1个回答

0 投票
您好,按照您的需求,如果是根据属性不同,要显示不同的风格,建议直接使用我们的单值专题图即可,可以避免到该问题。,
5月 14, 2018 用户: 胡林 登峰造极 (5,972 分)
...