AE读取shape文件范围坐标
/// <summary>
/// 元素坐标范围
/// </summary>
/// <param name="layername">选择的图层名</param>
/// <param name="map">IMap</param>
/// <returns>范围坐标数组(xmin,xmax,ymin,ymax)</returns>
public double [,] GetExtent(string layername,IMap map)
{
LayerInfo layerinfo = new LayerInfo();
ILayer layer = map.get_Layer(layerinfo.GetLayerID (map,layername));
IGeoFeatureLayer featurelayer =layer as IGeoFeatureLayer;
IFeatureClass featureclass = featurelayer.FeatureClass as IFeatureClass;
IQueryFilter queryfilter = new QueryFilterClass();
queryfilter.SubFields = featureclass.AreaField.Name;
queryfilter.WhereClause = "all";
int fieldPosition = featureclass.FindField(featureclass.AreaField.Name);
IFeatureCursor featureCursor = featureclass.Search(queryfilter, true);
IFeature feature = null;
int featurecount = featureclass.FeatureCount(queryfilter); //元素总数
int featureindex = 0; //元素索引
double[,] extent = new double[featurecount,4];
while ((feature = featureCursor.NextFeature()) != null)
{
try
{
extent[featureindex, 0] = feature.Extent.XMin;
extent[featureindex, 1] = feature.Extent.XMax;
extent[featureindex, 2] = feature.Extent.YMin;
extent[featureindex, 3] = feature.Extent.YMax;
featureindex++;
}
catch (Exception )
{
break ;
}
}
return extent;
}
浙公网安备 33010602011771号