Example #1
0
 public void RemoveFeaure(MLFeature feature)
 {
     //更新要素列表
     for (int i = 0; i != features.Count; ++i)
     {
         if (feature.ID == features[i].ID)
         {
             RemoveFeaure(i);
             return;
         }
     }
 }
Example #2
0
        /// <summary>
        /// 向要素类中添加要素
        /// </summary>
        /// <param name="curFea">要素</param>
        /// <param name="values">要素对应的属性信息</param>
        public void AddFeaure(MLFeature curFea, object[] values = null)
        {
            //更新要素列表
            features.Add(curFea);
            //更新mbr
            if (mbr != null)//features已经存在
            {
                mbr[0] = Math.Min(mbr[0], curFea.XMin);
                mbr[1] = Math.Max(mbr[1], curFea.XMax);
                mbr[2] = Math.Min(mbr[2], curFea.YMin);
                mbr[3] = Math.Max(mbr[3], curFea.YMax);
            }
            else//add第一个feature时
            {
                mbr    = new double[4];
                mbr[0] = curFea.XMin;
                mbr[1] = curFea.XMax;
                mbr[2] = curFea.YMin;
                mbr[3] = curFea.YMax;
            }

            //更新属性表
            attributeData.BeginLoadData();
            if (values != null)
            {
                object[] curValues = new object[values.Length - 1];
                curValues[0] = values[0];
                curValues[1] = featureType;
                Array.Copy(values, 3, curValues, 2, values.Length - 3);
                attributeData.LoadDataRow(curValues, true);
            }
            else
            {
                object[] curValues = new object[attributeData.Columns.Count];
                curValues[0] = (uint)attributeData.Rows.Count;
                curValues[1] = featureType;
                attributeData.LoadDataRow(curValues, true);
            }

            attributeData.EndLoadData();
        }
Example #3
0
 private void mlMap_TrackingFinished(object sender, MLFeature feature)  //追踪结束的事件,由MLMap里双击事件触发
 {
     dataFrame.layers[dataFrame.index].featureClass.AddFeaure(feature); //将新的要素添加到要素类中
     mlMap.Refresh();
 }