📄 mainform.cs
字号:
axMapControl1.CenterAt(pPt);
}
//xuanran
private IRgbColor GetRGB(int R, int G, int B)
{
IRgbColor pRGB;
pRGB = new RgbColorClass();
pRGB.Red = R;
pRGB.Green = G;
pRGB.Blue = B;
return pRGB;
}
//简单渲染
private void simplerendererToolStripMenuItem_Click(object sender, EventArgs e)
{
if (axMapControl1.Map.LayerCount == 0)
{
MessageBox.Show("添加图层再渲染", "提示");
return;
}
formsimrend simpleRenderer = new formsimrend();
simpleRenderer.pMap = axMapControl1.Map;
simpleRenderer.renderer();
axMapControl1.Map = simpleRenderer.pMap;
axMapControl1.ActiveView.Refresh();
axMapControl1.Update();
}
//唯一值渲染(有问题)
private void uniquerendererToolStripMenuItem_Click(object sender, EventArgs e)
{
if (axMapControl1.Map.LayerCount == 0)
{
MessageBox.Show("添加图层再渲染", "提示");
return;
}
formselectfield classbreak = new formselectfield("Unique", pPrimaryTable, pGeoFeatureL);
classbreak.pMap = axMapControl1.Map;
classbreak.pFlag = "Unique";
if (classbreak.ShowDialog() == DialogResult.Cancel)
return;
axMapControl1.Map = classbreak.pMap;
axMapControl1.Refresh();
axMapControl2.Refresh();
}
//点密度渲染
private void densityrendererToolStripMenuItem_Click(object sender, EventArgs e)
{
if (axMapControl1.Map.LayerCount == 0)
{
MessageBox.Show("添加图层再渲染", "提示");
return;
}
formselectfield renderer = new formselectfield("DotValue", pPrimaryTable, pGeoFeatureL);
renderer.pFlag = "DotValue";
renderer.pMap = axMapControl1.Map;
renderer.Show();
renderer.Visible = false;
DialogResult result = renderer.ShowDialog();
if (result == DialogResult.Cancel)
return;
axMapControl1.Map = renderer.pMap;
axMapControl1.ActiveView.Refresh();
}
//分类渲染
private void classifyrendererToolStripMenuItem_Click(object sender, EventArgs e)
{
if (axMapControl1.Map.LayerCount == 0)
{
MessageBox.Show("添加图层再渲染", "提示");
return;
}
formselectfield classbreak = new formselectfield("ClassBreak", pPrimaryTable, pGeoFeatureL);
classbreak.pMap = axMapControl1.Map;
classbreak.pFlag = "ClassBreak";
classbreak.Show();
classbreak.Visible = false;
DialogResult result = classbreak.ShowDialog();
if (result == DialogResult.OK)
{
axMapControl1.Map = classbreak.pMap;
axMapControl1.Refresh();
}
else
return;
}
//图表渲染
private void pillarToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (axMapControl1.Map.LayerCount == 0)
{
MessageBox.Show("添加图层再渲染", "提示");
return;
}
formselectfield renderer = new formselectfield("Chart", pPrimaryTable, pGeoFeatureL);
renderer.pFlag = "Chart";
renderer.pMap = axMapControl1.Map;
renderer.Show();
renderer.Visible = false;
DialogResult result = renderer.ShowDialog();
if (result == DialogResult.Cancel)
return;
axMapControl1.Map = renderer.pMap;
axMapControl1.ActiveView.Refresh();
}
private void pierendererToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (axMapControl1.Map.LayerCount == 0)
{
MessageBox.Show("添加图层再渲染", "提示");
return;
}
formselectfield renderer = new formselectfield("pie", pPrimaryTable, pGeoFeatureL);
renderer.pFlag = "pie";
renderer.pMap = axMapControl1.Map;
renderer.Show();
renderer.Visible = false;
DialogResult result = renderer.ShowDialog();
if (result == DialogResult.Cancel)
return;
axMapControl1.Map = renderer.pMap;
axMapControl1.ActiveView.Refresh();
}
//比例渲染
private void proportionrendererToolStripMenuItem_Click(object sender, EventArgs e)
{
if (axMapControl1.Map.LayerCount == 0)
{
MessageBox.Show("添加图层再渲染", "提示");
return;
}
formselectfield renderer = new formselectfield("Proportional", pPrimaryTable,pGeoFeatureL);
renderer.pMap = axMapControl1.Map;
renderer.pFlag = "Proportional";
renderer.Show();
renderer.Visible = false;
DialogResult result = renderer.ShowDialog();
if (result == DialogResult.Cancel)
return;
axMapControl1.Map = renderer.pMap;
axMapControl1.ActiveView.Refresh();
axMapControl1.Update();
}
private void 地图查询属性ToolStripMenuItem_Click(object sender, EventArgs e)
{
ICommand pCommand;
pCommand = new ControlsMapIdentifyToolClass();
pCommand.OnCreate(axMapControl1.Object);
axMapControl1.CurrentTool = pCommand as ITool;
}
private void 属性查询ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (axMapControl1.Map.LayerCount == 0)
{
MessageBox.Show("添加图层再再查询", "提示");
return;
}
chaxun pQuery = new chaxun();
pQuery.pMap = axMapControl1.Map;
pQuery.pTable = pPrimaryTable;
pQuery.ShowDialog();
IFeature pFeature;
IQueryFilter pQueryFilter;
IFeatureLayer pFeatureLayer;
pFeatureLayer = (IFeatureLayer)axMapControl1.get_Layer(0);
IFeatureClass pFeatureClass = (IFeatureClass)pPrimaryTable;
IGeoFeatureLayer pgeolayer = pFeatureLayer as IGeoFeatureLayer;
pFeatureClass =pgeolayer.DisplayFeatureClass ;
pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = pQuery.querySentence;
IFeatureCursor pFeatureCursor;
pFeatureCursor = pFeatureClass.Search(pQueryFilter, false);
IFeatureSelection pSelected;//= new SelectionSetClass();
pSelected = pGeoFeatureL as IFeatureSelection;
pFeature = (IFeature)pFeatureCursor.NextFeature();
while (pFeature != null)
{
pSelected.Add(pFeature);
pFeature = (IFeature)pFeatureCursor.NextFeature();
}
axMapControl1.Refresh();
}
private void 栅格缓冲区分析ToolStripMenuItem_Click(object sender, EventArgs e)
{
string pRenderField;
int layerIndex;
huanchongqufenxi pQuery = new huanchongqufenxi();
pQuery.Text = "缓冲区分析";
pQuery.pMap = axMapControl1.Map;
pQuery.Buffer = true;
pRenderField = pQuery.pRenderField;
layerIndex = pQuery.layerIndex;
pQuery.ShowDialog();
IFeature pFeature;
IQueryFilter pQueryFilter;
IGeometry pGeometry;
IFeatureLayer pFeatureLayer;
pFeatureLayer = (IFeatureLayer)axMapControl1.get_Layer(layerIndex);
IFeatureClass pFeatureClass;
pFeatureClass = pFeatureLayer.FeatureClass;
pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = pRenderField;
IFeatureCursor pFeatureCursor;
pFeatureCursor = pFeatureClass.Search(pQueryFilter, false);
pFeature = (IFeature)pFeatureCursor.NextFeature();
ITopologicalOperator pTopOpr;
pTopOpr = (ITopologicalOperator)pFeature.Shape;
IPolygon pBufferPoly;
pBufferPoly = (IPolygon)pTopOpr.Buffer(0.2);
pGeometry = (IGeometry)pBufferPoly;
axMapControl1.FlashShape(pGeometry, 3, 300, null);
axMapControl1.DrawShape(pGeometry);
}
//拉框查询
private void LKChaXun(int m)
{
IFeatureClass pFc;
ISpatialFilter pSpFilter;
IFeatureCursor pFtCur;
IFeature pFt;
IFeatureSelection pFSel;
IEnvelope pEnv;
IFeatureLayer pLyr = axMapControl1.get_Layer(0) as IFeatureLayer;
pFc = pLyr.FeatureClass;
pEnv = axMapControl1.TrackRectangle();
pSpFilter = new SpatialFilterClass();
pSpFilter.Geometry = pEnv;
//pSpFilter.SpatialRel = esriSpatialRelContains;
if (m == 0)
pSpFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains;
if (m == 1)
pSpFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelEnvelopeIntersects;
pFtCur = pLyr.Search(pSpFilter, false);
pFt = pFtCur.NextFeature();
pFSel = pLyr as IFeatureSelection;
pFSel.CombinationMethod = esriSelectionResultEnum.esriSelectionResultNew;
ITopologicalOperator pTopOper;
IPolygon pBufferPolygen;
do
{
pFSel.Add(pFt);
pFt = pFtCur.NextFeature();
pTopOper = (ITopologicalOperator)pFt.Shape;
pBufferPolygen = (IPolygon)pTopOper.Buffer(0.1);
//axMapControl1.FlashShape(pBufferPolygen, 3, 300, Type.Missing);
axMapControl1.DrawShape(pBufferPolygen);
}
while (pFt != null);
}
private void 拉框相交ToolStripMenuItem_Click(object sender, EventArgs e)
{
LKChaXunLeiXing = 1;
LaKuang = true;
}
private void 拉框包含ToolStripMenuItem_Click(object sender, EventArgs e)
{
LKChaXunLeiXing = 0;
LaKuang = true;
}
private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
{
if (LaKuang)
{
LKChaXun(LKChaXunLeiXing);
}
}
private void 叠置求和ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (axMapControl1.LayerCount >= 2)
{
diezhifenxi Overlay_Analysis = new diezhifenxi(axMapControl1, axMapControl2, axTOCControl1, 2);
Overlay_Analysis.Text = "叠置求和";
Overlay_Analysis.ShowDialog();
}
else
{
MessageBox.Show("至少打开两个图层!");
return;
}
}
private void 叠置求交ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (axMapControl1.LayerCount >= 2)
{
diezhifenxi Overlay_Analysis = new diezhifenxi(axMapControl1, axMapControl2, axTOCControl1, 1);
Overlay_Analysis.Text = "叠置求交";
Overlay_Analysis.ShowDialog();
}
else
{
MessageBox.Show("至少打开两个图层!");
return;
}
}
private void 叠置裁剪ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (axMapControl1.LayerCount >= 2)
{
diezhifenxi Overlay_Analysis = new diezhifenxi(axMapControl1, axMapControl2, axTOCControl1, 3);
Overlay_Analysis.Text = "叠置裁剪";
Overlay_Analysis.ShowDialog();
}
else
{
MessageBox.Show("至少打开两个图层!");
return;
}
}
private void 标注ToolStripMenuItem_Click(object sender, EventArgs e)
{
biaozhu pBiaoZhu = new biaozhu();
pBiaoZhu.pMap = axMapControl1.Map;
pBiaoZhu.conntable = pPrimaryTable;
pBiaoZhu.ShowDialog();
IGeoFeatureLayer m_pGeoFeatureLayer = (IGeoFeatureLayer)axMapControl1.get_Layer(pBiaoZhu.Num);
IAnnotateLayerPropertiesCollection pAnnoLayerPropsColl;
pAnnoLayerPropsColl = m_pGeoFeatureLayer.AnnotationProperties;
pAnnoLayerPropsColl.Clear();
pAnnoLayerPropsColl.Add(pBiaoZhu.AnnotateLayerProperties);
m_pGeoFeatureLayer.DisplayAnnotation = true;
axMapControl1.Refresh();
}
private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -