接(三)
这一节主要贴代码算了,通过代码看一下一些简单功能的实现。偶快要放假了,静不下心来写了,写得也不好。说不定贴代码效果更好。
1、获取所有图层
ESRI.ArcGIS.Server.WebControls.WebMap webmap= Map1.CreateWebMap();
try
{
ESRI.ArcGIS.Carto.IMapDescription descr = webmap.MapDescription;
ddlLayers.Items.Clear();
int id;
for (int i=0;i<= descr.LayerDescriptions.Count-1;i++)
{
id = descr.LayerDescriptions.get_Element(i).ID;
ddlLayers.Items.Add(id.ToString() + "," + webmap.LayerNameFromID(id)); //ddlLayers是一个DropDownList控件
}
if (ddlLayers.Items.Count>0)
{
ddlLayers.SelectedIndex=0;
}
}
finally
{
webmap.Dispose();
}
try
{
ESRI.ArcGIS.Carto.IMapDescription descr = webmap.MapDescription;
ddlLayers.Items.Clear();
int id;
for (int i=0;i<= descr.LayerDescriptions.Count-1;i++)
{
id = descr.LayerDescriptions.get_Element(i).ID;
ddlLayers.Items.Add(id.ToString() + "," + webmap.LayerNameFromID(id)); //ddlLayers是一个DropDownList控件
}
if (ddlLayers.Items.Count>0)
{
ddlLayers.SelectedIndex=0;
}
}
finally
{
webmap.Dispose();
}
2、通过图层的ID获取图层对象
private IFeatureLayer GetFeatureLayer(int lyid)
{
WebMap webmap = Map1.CreateWebMap();
try
{
ILayer layer = (webmap.MapServer as IMapServerObjects).get_Layer(webmap.DataFrame,lyid);
if (layer==null)
return null;
else
{
return (layer as IFeatureLayer);
}
}
finally
{
webmap.Dispose();
}
}
{
WebMap webmap = Map1.CreateWebMap();
try
{
ILayer layer = (webmap.MapServer as IMapServerObjects).get_Layer(webmap.DataFrame,lyid);
if (layer==null)
return null;
else
{
return (layer as IFeatureLayer);
}
}
finally
{
webmap.Dispose();
}
}
3、新建一个多边形
4、矩形选择,获得选择集,并在地图上显示选中的对象。(这个功能花费了偶一天多的时间。)
5、删除选中的对象