|
|
|
|
using ESRI.ArcGIS.Carto;
|
|
|
|
|
using KGIS.Framework.Utils.Helper;
|
|
|
|
|
using KGIS.Plugin.LayerProperty.Utils;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
|
|
|
|
namespace KGIS.Plugin.LayerProperty.View
|
|
|
|
|
{
|
|
|
|
|
public partial class FormImportFeatureSymbology : Form
|
|
|
|
|
{
|
|
|
|
|
private IFeatureLayer CurrentLayer;
|
|
|
|
|
private IFeatureRenderer featureRenderer;
|
|
|
|
|
public IFeatureRenderer FeatureRenderer
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.featureRenderer;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.featureRenderer = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public FormImportFeatureSymbology()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
}
|
|
|
|
|
public void Init(IMap map, IFeatureLayer currentLyr)
|
|
|
|
|
{
|
|
|
|
|
this.CurrentLayer = currentLyr;
|
|
|
|
|
if (map != null)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < map.LayerCount; i++)
|
|
|
|
|
{
|
|
|
|
|
ILayer layer = map.get_Layer(i);
|
|
|
|
|
if (currentLyr != null && layer is IFeatureLayer2 && (currentLyr as IFeatureLayer2).ShapeType == (layer as IFeatureLayer2).ShapeType)
|
|
|
|
|
{
|
|
|
|
|
ItemInfo<ILayer, string> item = new ItemInfo<ILayer, string>(layer, layer.Name);
|
|
|
|
|
this.cmbSelectLayer.Properties.Items.Add(item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.cmbSelectLayer.SelectedIndex = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void btnOpenLayer_Click(object sender, System.EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
ILayerFile layerFile = RenderUtil.OpenLayerFile();
|
|
|
|
|
if (layerFile != null && layerFile.Layer != null)
|
|
|
|
|
{
|
|
|
|
|
if (!(layerFile.Layer is IFeatureLayer))
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("图层类型不一致!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
IFeatureLayer2 featureLayer = layerFile.Layer as IFeatureLayer2;
|
|
|
|
|
if (featureLayer.ShapeType != (this.CurrentLayer as IFeatureLayer2).ShapeType)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("要素几何类型不一致!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
IGeoFeatureLayer geoFeatureLayer = layerFile.Layer as IGeoFeatureLayer;
|
|
|
|
|
this.featureRenderer = geoFeatureLayer.Renderer;
|
|
|
|
|
this.cmbSelectLayer.Text = layerFile.Layer.Name;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void btnOK_Click(object sender, System.EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (!(this.featureRenderer is ISimpleRenderer))
|
|
|
|
|
{
|
|
|
|
|
if (this.featureRenderer is IUniqueValueRenderer)
|
|
|
|
|
{
|
|
|
|
|
IUniqueValueRenderer uniqueValueRenderer = this.featureRenderer as IUniqueValueRenderer;
|
|
|
|
|
FormUniqueRendererFieldMatch formUniqueRendererFieldMatch = new FormUniqueRendererFieldMatch();
|
|
|
|
|
formUniqueRendererFieldMatch.InitForm(this.CurrentLayer, uniqueValueRenderer);
|
|
|
|
|
if (formUniqueRendererFieldMatch.ShowDialog(this) == DialogResult.OK)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < uniqueValueRenderer.FieldCount; i++)
|
|
|
|
|
{
|
|
|
|
|
uniqueValueRenderer.set_Field(i, formUniqueRendererFieldMatch.ValueFields.GetValue(i).ToString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (!(this.featureRenderer is IClassBreaksRenderer) && !(this.featureRenderer is IProportionalSymbolRenderer))
|
|
|
|
|
{
|
|
|
|
|
IChartRenderer arg_96_0 = this.featureRenderer as IChartRenderer;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
base.DialogResult = DialogResult.OK;
|
|
|
|
|
base.Close();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
//RdbUtil.AddException(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void btnCancel_Click(object sender, System.EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
base.DialogResult = DialogResult.Cancel;
|
|
|
|
|
base.Close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|