最近一段时间在写C#与arcengine的二次开发,期间遇到许多问题,有搜罗全网找到的解决办法,也有自己想到的解决办法,特此汇总便于查看。本帖不定时更新补充。
目录
Q1:C#&arcengine如何遍历mapcontrol中加载的图层?
Q2:C#&arcengine如何区分判断mapcontrol里加载的是点图层、线图层还是面图层?
Q1:C#&arcengine如何遍历mapcontrol中加载的图层?
A1:
for (int i = 0; i < axMapControl1.Map.LayerCount; i++)
{
String layerName = axMapControl1.Map.get_Layer(i).Name;
}
Q2:C#&arcengine如何区分判断mapcontrol里加载的是点图层、线图层还是面图层?
A2:
IFeatureLayer pFeatureLayer;
for (int i = 0; i != axMapControl1.Map.LayerCount; ++i)
{
IFeatureLayer pFeatureLayer = axMapControl1.Map.get_Layer(i) as IFeatureLayer;
if (pFeatureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPoint)
{
//为点图层
string pointName= axMapControl1.Map.get_Layer(i).Name;
}
if (pFeatureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPolyline)
{
//为线图层
string lineName = axMapControl1.Map.get_Layer(i).Name;
}
if (pFeatureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryPolygon)
{
//为面图层
string polygonName = axMapControl1.Map.get_Layer(i).Name;
}
}