Beispiel #1
0
        private void cmbPipePoint_SelectedIndexChanged(object sender, EventArgs e)
        {
            RelateQueryUI.LayerboxItem layerboxItem = this.cmbPipePoint.SelectedItem as RelateQueryUI.LayerboxItem;
            IFeatureLayer pPipeLayer = layerboxItem.m_pPipeLayer;

            this.FillLayerFieldsToCmb(pPipeLayer, this.cmbPipePointFields);
            if (this.cmbPipePoint.Focused)
            {
                string text = this.cmbPipePoint.Text.Trim();
                if (text.Length >= 2)
                {
                    int length = text.LastIndexOf("点", StringComparison.Ordinal) > 0
                        ? text.LastIndexOf("点", StringComparison.Ordinal)
                        : 2;
                    text = text.Substring(0, length);
                    int count = this.cmbPipeLine.Items.Count;
                    for (int i = 0; i < count; i++)
                    {
                        string text2   = this.cmbPipeLine.Items[i].ToString();
                        int    length2 = text2.LastIndexOf("线", StringComparison.Ordinal) > 0
                            ? text2.LastIndexOf("线", StringComparison.Ordinal)
                            : 2;
                        text2 = text2.Substring(0, length2);
                        if (text2.Equals(text))
                        {
                            this.cmbPipeLine.SelectedIndex = i;
                        }
                    }
                }
            }
        }
Beispiel #2
0
 private void button2_Click(object sender, EventArgs e)
 {
     if (this.cmbPipePoint.Items.Count >= 1)
     {
         RelateQueryUI.LayerboxItem layerboxItem = this.cmbPipePoint.SelectedItem as RelateQueryUI.LayerboxItem;
         IFeatureLayer pPipeLayer = layerboxItem.m_pPipeLayer;
         if (pPipeLayer != null)
         {
             this.FillFieldValuesToListBox(pPipeLayer, this.cmbPipePointFields.Text.Trim(),
                                           this.lstBoxPipePointValues);
         }
     }
 }
Beispiel #3
0
 public void AddName(ILayer pLayer)
 {
     if (pLayer is IFeatureLayer)
     {
         IFeatureLayer featureLayer = pLayer as IFeatureLayer;
         if (this.pPipeCfg.IsPipelineLayer(featureLayer.FeatureClass.AliasName, enumPipelineDataType.Line))
         {
             RelateQueryUI.LayerboxItem layerboxItem = new RelateQueryUI.LayerboxItem();
             layerboxItem.m_pPipeLayer = featureLayer;
             this.cmbPipeLine.Items.Add(layerboxItem);
         }
         if (this.pPipeCfg.IsPipelineLayer(featureLayer.FeatureClass.AliasName, enumPipelineDataType.Point))
         {
             RelateQueryUI.LayerboxItem layerboxItem2 = new RelateQueryUI.LayerboxItem();
             layerboxItem2.m_pPipeLayer = featureLayer;
             this.cmbPipePoint.Items.Add(layerboxItem2);
         }
     }
 }
Beispiel #4
0
 private void btnPipeLineQuery_Click(object sender, EventArgs e)
 {
     if (this.cmbPipeLineFields.Text == "")
     {
         MessageBox.Show(@"请选择管线层查询字段!");
     }
     else if (this.lstBoxPipeLineValues.Text == "")
     {
         MessageBox.Show(@"请指定管线层查询值!");
     }
     else if (this.lstBoxPipeLineValues.Text == "")
     {
         MessageBox.Show(@"请指定管点层查询值!");
     }
     else
     {
         Splash.Show();
         Splash.Status = "状态:关联查询中,请稍候...";
         this.Walk();
         RelateQueryUI.LayerboxItem layerboxItem = this.cmbPipeLine.SelectedItem as RelateQueryUI.LayerboxItem;
         IFeatureLayer     pPipeLayer            = layerboxItem.m_pPipeLayer;
         IFeatureSelection featureSelection      = (IFeatureSelection)pPipeLayer;
         featureSelection.Clear();
         ISelectionSet selectionSet = featureSelection.SelectionSet;
         selectionSet.IDs.Reset();
         int count = this.m_alPipeLine.Count;
         for (int i = 0; i < count; i++)
         {
             IFeature feature = this.m_alPipeLine[i] as IFeature;
             selectionSet.Add(feature.OID);
         }
         IQueryFilter queryFilter = new QueryFilter();
         ICursor      cursor;
         selectionSet.Search(queryFilter, false, out cursor);
         IFeatureCursor pFeatureCursor = cursor as IFeatureCursor;
         Splash.Close();
         _plugin.FireQueryResultChanged(new QueryResultArgs(pFeatureCursor, featureSelection, queryFilter as ISpatialFilter));
     }
 }
Beispiel #5
0
 private void Walk()
 {
     if (this.cmbPipeLine.Items.Count >= 1)
     {
         RelateQueryUI.LayerboxItem layerboxItem = this.cmbPipeLine.SelectedItem as RelateQueryUI.LayerboxItem;
         IFeatureLayer pPipeLayer = layerboxItem.m_pPipeLayer;
         if (pPipeLayer != null)
         {
             IFeatureClass  featureClass  = pPipeLayer.FeatureClass;
             ISpatialFilter spatialFilter = new SpatialFilter();
             int            num           = featureClass.Fields.FindField(this.cmbPipeLineFields.Text.Trim());
             if (featureClass.Fields.Field[num].Type == (esriFieldType)4)
             {
                 spatialFilter.WhereClause = this.cmbPipeLineFields.Text.Trim() + " = '" +
                                             this.lstBoxPipeLineValues.Text.Trim() + "'";
             }
             else if (featureClass.Fields.Field[num].Type == (esriFieldType)5)
             {
                 if (pPipeLayer.DataSourceType == "Personal Geodatabase Feature Class")
                 {
                     spatialFilter.WhereClause = this.cmbPipeLineFields.Text.Trim() + " = #" +
                                                 this.lstBoxPipeLineValues.Text.Trim() + "#";
                 }
                 else
                 {
                     spatialFilter.WhereClause = this.cmbPipeLineFields.Text.Trim() + "= TO_DATE('" +
                                                 this.lstBoxPipeLineValues.Text.Trim() + "','YYYY-MM-DD')";
                 }
             }
             else
             {
                 spatialFilter.WhereClause = this.cmbPipeLineFields.Text.Trim() + " = " +
                                             this.lstBoxPipeLineValues.Text.Trim();
             }
             if (this.GeometrySet.Checked)
             {
                 if (this.m_ipGeo != null)
                 {
                     spatialFilter.Geometry = (this.m_ipGeo);
                 }
                 spatialFilter.SpatialRel = (esriSpatialRelEnum)(1);
             }
             IFeatureCursor featureCursor = featureClass.Search(spatialFilter, false);
             IFeature       feature       = featureCursor.NextFeature();
             int            num2          = featureClass.Fields.FindField(this.cmbPipeLineFields.Text.Trim());
             if (num2 != -1)
             {
                 this.m_alPipeLine.Clear();
                 this.m_alPipePoint.Clear();
                 while (feature != null)
                 {
                     if (this.JustifyPipeLine(feature))
                     {
                         this.m_alPipeLine.Add(feature);
                     }
                     feature = featureCursor.NextFeature();
                 }
             }
         }
     }
 }