年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1050 lines
35 KiB

using System;
using System.Collections.Generic;
using System.Text;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Carto;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.Geometry;
using System.IO;
using KGIS.Framework.Utils;
namespace Kingo.Plugin.MakeTaskPackage.Entity
{
public class ProcessMXDClass
{
public ProcessMXDClass() { }
///// <summary>
///// 替换mxd数据源
///// </summary>
///// <param name="cusPath"></param>
///// <param name="layerNameList"></param>
///// <returns></returns>
//public bool RestFeatureLayerDataSource(ICustomPath cusPath, List<string> layerNameList)
//{
// IFeatureWorkspace toWorkSpace = null;
// IMapDocument pMapDocument = null;
// try
// {
// if (cusPath == null || layerNameList == null || layerNameList.Count == 0) return false;
// FeatureProcess featureP = new FeatureProcess();
// toWorkSpace = featureP.GetAcessWorkspace(cusPath.mdbPath);
// if (toWorkSpace == null)
// {
// throw new Exception("打开数据空间失败:" + cusPath.mdbPath);
// }
// pMapDocument = new MapDocumentClass();
// pMapDocument.Open(cusPath.mxdPath);
// IMap map = pMapDocument.get_Map(0);
// if (map != null)
// {
// foreach (var layerName in layerNameList)
// {
// IFeatureLayer fLayer = FindFeatureLayer(map, layerName);
// if (fLayer == null)
// {
// LogAPI.Debug("未找到层:" + layerName);
// continue;
// }
// fLayer.FeatureClass = toWorkSpace.OpenFeatureClass(layerName);
// }
// pMapDocument.Save(pMapDocument.UsesRelativePaths);
// }
// return true;
// }
// catch (Exception ex)
// {
// throw ex;
// }
// finally
// {
// if (toWorkSpace != null)
// Marshal.ReleaseComObject(toWorkSpace);
// if (pMapDocument != null)
// pMapDocument.Close();
// }
//}
public IFeatureLayer FindFeatureLayer(IMap map, string LayerName)
{
try
{
if (map == null || string.IsNullOrEmpty(LayerName)) return null;
ILayer layer = null;
for (int i = 0; i < map.LayerCount; i++)
{
layer = GetLayer(map.get_Layer(i), LayerName);
if (layer != null)
break;
}
return layer as IFeatureLayer;
}
catch (Exception ex)
{
LogAPI.Debug(ex);
return null;
}
}
public ILayer FindLayer(IMap map, string LayerName)
{
try
{
if (map == null || string.IsNullOrEmpty(LayerName)) return null;
ILayer layer = null;
for (int i = 0; i < map.LayerCount; i++)
{
layer = GetLayer(map.get_Layer(i), LayerName);
if (layer != null)
break;
}
return layer;
}
catch (Exception ex)
{
LogAPI.Debug(ex);
return null;
}
}
public int FindLayerIndex(IMap map, string LayerName)
{
try
{
if (map == null || string.IsNullOrEmpty(LayerName)) return -1;
int layer = -1;
for (int i = 0; i < map.LayerCount; i++)
{
layer = GetLayerIndex(map.get_Layer(i), LayerName, ref i);
if (layer != null)
break;
}
return layer;
}
catch (Exception ex)
{
LogAPI.Debug(ex);
return -1;
}
}
private int GetLayerIndex(ILayer layer, string layername, ref int layerIndex)
{
try
{
if (layer is IGroupLayer)
{
ICompositeLayer pComLayer = layer as ICompositeLayer;
for (int j = 0; j < pComLayer.Count; j++)
{
layerIndex++;
int lay = GetLayerIndex(pComLayer.get_Layer(j), layername, ref layerIndex);
if (lay > 0)
return layerIndex;
}
}
ILayerGeneralProperties generalPro = layer as ILayerGeneralProperties;
if (generalPro != null && generalPro.LayerDescription.ToUpper().Equals(layername.ToUpper()))
return layerIndex;
return -1;
}
catch (Exception ex)
{
throw ex;
}
}
public IFeatureLayer FindFeatureLayer1(IMap map, string LayerName)
{
try
{
if (map == null || string.IsNullOrEmpty(LayerName)) return null;
ILayer layer = null;
for (int i = 0; i < map.LayerCount; i++)
{
layer = GetLayer1(map.get_Layer(i), LayerName);
if (layer != null)
break;
}
return layer as IFeatureLayer;
}
catch (Exception ex)
{
LogAPI.Debug(ex);
return null;
}
}
private ILayer GetLayer1(ILayer layer, string layername)
{
try
{
if (layer is IGroupLayer)
{
ICompositeLayer pComLayer = layer as ICompositeLayer;
for (int j = 0; j < pComLayer.Count; j++)
{
ILayer lay = GetLayer1(pComLayer.get_Layer(j), layername);
if (lay != null)
return lay;
}
}
if (layer.Name.ToUpper() == layername.ToUpper())
return layer;
//ILayerGeneralProperties generalPro = layer as ILayerGeneralProperties;
//if (generalPro != null && generalPro.ToUpper().Equals(layername.ToUpper()))
// return layer;
return null;
}
catch (Exception ex)
{
throw ex;
}
}
private ILayer GetLayer(ILayer layer, string layername)
{
try
{
if (layer is IGroupLayer)
{
ICompositeLayer pComLayer = layer as ICompositeLayer;
for (int j = 0; j < pComLayer.Count; j++)
{
ILayer lay = GetLayer(pComLayer.get_Layer(j), layername);
if (lay != null)
return lay;
}
}
ILayerGeneralProperties generalPro = layer as ILayerGeneralProperties;
if (generalPro != null && generalPro.LayerDescription.ToUpper().Equals(layername.ToUpper()))
return layer;
return null;
}
catch (Exception ex)
{
throw ex;
}
}
public static void SetMxdSpatialReference(string mxdPath, ESRI.ArcGIS.Geometry.ISpatialReference spatialReference)
{
IMapDocument pMapDocument = null;
try
{
pMapDocument = new MapDocumentClass();
pMapDocument.Open(mxdPath);
IMap map = pMapDocument.get_Map(0);
if (map != null)
{
map.SpatialReference = spatialReference;
pMapDocument.Save(pMapDocument.UsesRelativePaths);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (pMapDocument != null)
pMapDocument.Close();
}
}
public void SetMXDLayerVisble(string mxdPath, List<string> openList, List<string> closeList)
{
IMapDocument pMapDocument = null;
try
{
if (openList == null && closeList == null) return;
pMapDocument = new MapDocumentClass();
pMapDocument.Open(mxdPath);
IMap map = pMapDocument.get_Map(0);
if (map != null)
{
for (int i = 0; i < map.LayerCount; i++)
{
SetLayerVisble(map.get_Layer(i), openList, closeList);
}
pMapDocument.Save(pMapDocument.UsesRelativePaths);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (pMapDocument != null)
pMapDocument.Close();
}
}
public void SetMapLayerVisble(IMap map, string layerName, bool isVisible = true)
{
try
{
for (int i = 0; i < map.LayerCount; i++)
{
SetLayerVisble(map.get_Layer(i), layerName, isVisible);
}
}
catch (Exception ex)
{
throw ex;
}
}
private void SetLayerVisble(ILayer layer, string layerName, bool isVisible = true)
{
try
{
if (layer == null) return;
if (string.IsNullOrEmpty(layerName)) return;
ILayerGeneralProperties generalPro = layer as ILayerGeneralProperties;
if (generalPro != null)
{
string str = generalPro.LayerDescription.Trim();
if (str == layerName)
{
layer.Visible = isVisible;
}
else
{
if (layer is IGroupLayer)
{
ICompositeLayer pComLayer = layer as ICompositeLayer;
if (pComLayer != null && pComLayer.Count > 0)
{
for (int j = 0; j < pComLayer.Count; j++)
{
SetLayerVisble(pComLayer.get_Layer(j), layerName, isVisible);
}
}
layer.Visible = isVisible;
}
else
{
layer.Visible = false;
}
}
}
}
catch (Exception ex)
{
throw ex;
}
}
public void SetMapLayerVisbleNew(IMap map, string layerName, bool isVisible = true)
{
try
{
for (int i = 0; i < map.LayerCount; i++)
{
SetLayerVisbleNew(map.get_Layer(i), layerName, isVisible);
}
}
catch (Exception ex)
{
throw ex;
}
}
private void SetLayerVisbleNew(ILayer layer, string layerName, bool isVisible = true)
{
try
{
if (layer == null) return;
if (string.IsNullOrEmpty(layerName)) return;
ILayerGeneralProperties generalPro = layer as ILayerGeneralProperties;
if (generalPro != null)
{
string str = generalPro.LayerDescription.Trim();
if (str == layerName)
{
layer.Visible = isVisible;
}
else
{
if (layer is IGroupLayer)
{
ICompositeLayer pComLayer = layer as ICompositeLayer;
if (pComLayer != null && pComLayer.Count > 0)
{
for (int j = 0; j < pComLayer.Count; j++)
{
SetLayerVisbleNew(pComLayer.get_Layer(j), layerName, isVisible);
}
}
}
}
}
}
catch (Exception ex)
{
throw ex;
}
}
private void SetLayerVisble(ILayer layer, List<string> open, List<string> close)
{
try
{
if (layer == null) return;
if (open == null && close == null) return;
ILayerGeneralProperties generalPro = layer as ILayerGeneralProperties;
if (generalPro != null)
{
string str = generalPro.LayerDescription.Trim();
if (open != null && open.Contains(str))
{
layer.Visible = true;
}
else if (close != null && close.Contains(str))
{
layer.Visible = false;
}
else
{
if (layer is IGroupLayer)
{
ICompositeLayer pComLayer = layer as ICompositeLayer;
if (pComLayer != null && pComLayer.Count > 0)
{
for (int j = 0; j < pComLayer.Count; j++)
{
SetLayerVisble(pComLayer.get_Layer(j), open, close);
}
}
}
}
}
}
catch (Exception ex)
{
throw ex;
}
}
private ILayer GetLayerGroup(ILayer layer, string layername)
{
try
{
if (layer is IGroupLayer)
{
ICompositeLayer pComLayer = layer as ICompositeLayer;
for (int j = 0; j < pComLayer.Count; j++)
{
ILayer lay = GetLayer(pComLayer.get_Layer(j), layername);
if (lay != null)
return lay;
}
ILayerGeneralProperties generalPro = layer as ILayerGeneralProperties;
if (generalPro != null && generalPro.LayerDescription.ToUpper().Equals(layername.ToUpper()))
return layer;
}
return null;
}
catch (Exception ex)
{
throw ex;
}
}
public IGroupLayer FindLayerGroup(IMap map, string layerName)
{
try
{
if (map == null || string.IsNullOrEmpty(layerName)) return null;
ILayer layer = null;
for (int i = 0; i < map.LayerCount; i++)
{
layer = GetLayerGroup(map.get_Layer(i), layerName);
if (layer != null)
break;
}
return layer == null ? null : layer as IGroupLayer;
}
catch (Exception ex)
{
LogAPI.Debug(ex);
return null;
}
}
public void UpdateMxdLayer(string mxdPath, string layerName, ILayer layerNew)
{
IMapDocument pMapDocument = null;
try
{
if (!File.Exists(mxdPath)) return;
pMapDocument = new MapDocumentClass();
pMapDocument.Open(mxdPath);
IMap map = pMapDocument.get_Map(0);
if (map == null || map.LayerCount == 0) return;
ILayer layer = null;
for (int i = 0; i < map.LayerCount; i++)
{
layer = GetLayer(map.get_Layer(i), layerName);
if (layer != null)
{
layer = layerNew;
break;
}
}
pMapDocument.Save();
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
finally
{
if (pMapDocument != null)
pMapDocument.Close();
}
}
public ILayer FindLayer(string mxdPath, string layerName)
{
IMapDocument pMapDocument = null;
try
{
if (!File.Exists(mxdPath)) return null;
pMapDocument = new MapDocumentClass();
pMapDocument.Open(mxdPath);
IMap map = pMapDocument.get_Map(0);
if (map == null || map.LayerCount == 0) return null;
ILayer layer = null;
for (int i = 0; i < map.LayerCount; i++)
{
layer = GetLayer(map.get_Layer(i), layerName);
if (layer != null)
break;
}
return layer;
}
catch (Exception ex)
{
LogAPI.Debug(ex);
return null;
}
finally
{
if (pMapDocument != null)
pMapDocument.Close();
}
}
public void UpdateLayerName(string mxdPath, string layerName, string layerNewName)
{
IMapDocument pMapDocument = null;
try
{
if (!File.Exists(mxdPath)) return;
pMapDocument = new MapDocumentClass();
pMapDocument.Open(mxdPath);
IMap map = pMapDocument.get_Map(0);
if (map == null || map.LayerCount == 0) return;
ILayer layer = null;
for (int i = 0; i < map.LayerCount; i++)
{
layer = GetLayer(map.get_Layer(i), layerName);
if (layer != null)
{
(layer as IFeatureLayer).Name = layerNewName;
break;
}
}
pMapDocument.Save();
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
finally
{
if (pMapDocument != null)
pMapDocument.Close();
}
}
public void UpdateLayerVisble(string mxdPath, string layerName, bool isVisble)
{
IMapDocument pMapDocument = null;
try
{
if (!File.Exists(mxdPath)) return;
pMapDocument = new MapDocumentClass();
pMapDocument.Open(mxdPath);
IMap map = pMapDocument.get_Map(0);
if (map == null || map.LayerCount == 0) return;
ILayer layer = null;
for (int i = 0; i < map.LayerCount; i++)
{
layer = GetLayer(map.get_Layer(i), layerName);
if (layer != null)
{
(layer as IFeatureLayer).Visible = isVisble;
break;
}
}
pMapDocument.Save();
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
finally
{
if (pMapDocument != null)
pMapDocument.Close();
}
}
public void UpdateGroupLayerVisble(string mxdPath, string layerName, bool isVisble)
{
IMapDocument pMapDocument = null;
try
{
if (!File.Exists(mxdPath)) return;
pMapDocument = new MapDocumentClass();
pMapDocument.Open(mxdPath);
IMap map = pMapDocument.get_Map(0);
if (map == null || map.LayerCount == 0) return;
ILayer layer = FindLayerGroup(map, layerName);
(layer as IGroupLayer).Visible = isVisble;
pMapDocument.Save();
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
finally
{
if (pMapDocument != null)
pMapDocument.Close();
}
}
public void UpdateGroupLayerName(string mxdPath, string layerName, string layerNewName)
{
IMapDocument pMapDocument = null;
try
{
if (!File.Exists(mxdPath)) return;
pMapDocument = new MapDocumentClass();
pMapDocument.Open(mxdPath);
IMap map = pMapDocument.get_Map(0);
if (map == null || map.LayerCount == 0) return;
ILayer layer = FindLayerGroup(map, layerName);
(layer as IGroupLayer).Name = layerNewName;
pMapDocument.Save();
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
finally
{
if (pMapDocument != null)
pMapDocument.Close();
}
}
public void DelGroupLayer(IMap map, string layerName)
{
IGroupLayer groupLayer = FindLayerGroup(map, layerName);
if (groupLayer == null) return;
map.DeleteLayer(groupLayer);
}
public void DelLayer(IMap map, string layerName)
{
ILayer layer = FindLayer(map, layerName);
if (layer == null) return;
map.DeleteLayer(layer);
}
public void DelGroupLayer(string mxdPath, string layerName)
{
IMapDocument pMapDocument = null;
try
{
if (!File.Exists(mxdPath)) return;
pMapDocument = new MapDocumentClass();
pMapDocument.Open(mxdPath);
IMap map = pMapDocument.get_Map(0);
if (map == null || map.LayerCount == 0) return;
ILayer layer = FindLayerGroup(map, layerName);
if (layer != null) map.DeleteLayer(layer);
pMapDocument.Save();
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
finally
{
if (pMapDocument != null)
pMapDocument.Close();
}
}
public void DelLayer(string mxdPath, string layerName)
{
IMapDocument pMapDocument = null;
try
{
if (!File.Exists(mxdPath)) return;
pMapDocument = new MapDocumentClass();
pMapDocument.Open(mxdPath);
IMap map = pMapDocument.get_Map(0);
if (map == null || map.LayerCount == 0) return;
ILayer layer = FindLayerGroup(map, layerName);
if (layer != null) map.DeleteLayer(layer);
pMapDocument.Save();
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
finally
{
if (pMapDocument != null)
pMapDocument.Close();
}
}
/// <summary>
/// 获取map的外界范围
/// </summary>
/// <param name="map"></param>
/// <returns></returns>
public IEnvelope GetMapEnvelope(string mxdPath)
{
IMapDocument pMapDocument = null;
try
{
if (!File.Exists(mxdPath)) return null;
pMapDocument = new MapDocumentClass();
pMapDocument.Open(mxdPath);
return pMapDocument.ActiveView.Extent;
//IMap map = pMapDocument.get_Map(0);
//if (map == null || map.LayerCount == 0) return null;
//IEnvelope enve = null;
//for (int i = 0; i < map.LayerCount; i++)
//{
// GetIEnvelope(map.get_Layer(i), ref enve);
//}
//return enve;
}
catch (Exception ex)
{
LogAPI.Debug(ex);
return null;
}
finally
{
if (pMapDocument != null)
pMapDocument.Close();
}
}
private void GetIEnvelope(ILayer layer, ref IEnvelope enve)
{
try
{
if (layer == null) return;
if (layer is IGroupLayer)
{
ICompositeLayer pComLayer = layer as ICompositeLayer;
if (pComLayer != null && pComLayer.Count > 0)
{
for (int j = 0; j < pComLayer.Count; j++)
{
GetIEnvelope(pComLayer.get_Layer(j), ref enve);
}
}
}
else
{
if (layer != null && layer.Valid)
{
IEnvelope env = layer.AreaOfInterest;
if (enve == null)
{
enve = env;
}
else
{
if (env != null)
{
//if (env.XMin < 0 || env.YMin < 0) return;
//if (env.XMax > enve.XMax)
//{
// enve.XMax = env.XMax;
//}
//if (env.YMax > enve.YMax)
//{
// enve.YMax = env.YMax;
//}
//if (env.XMin < enve.XMin)
//{
// enve.XMin = enve.XMin;
//}
//if (env.YMin < enve.YMin)
//{
// enve.YMin = env.YMin;
//}
enve.Union(env);
}
}
}
}
}
catch (Exception ex)
{
throw ex;
}
}
public void SetMapLayerVisble(IMap map, List<string> openList, List<string> closeList)
{
try
{
if (map == null) return;
if (openList == null && closeList == null) return;
for (int i = 0; i < map.LayerCount; i++)
{
SetLayerVisble(map.get_Layer(i), openList, closeList);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
}
}
public static bool RoomToMap(IMap pMap)
{
try
{
if (pMap == null)
{
return false;
}
IActiveView pActiveView = pMap as IActiveView;
double minValue = double.MinValue;
double maxValue = double.MaxValue;
double dlYMax = double.MinValue;
double dlYMin = double.MaxValue;
ILayer pLayer = null;
//IFeatureLayer layer2 = null;
for (int i = 0; i < pMap.LayerCount; i++)
{
pLayer = pMap.get_Layer(i);
//layer2 = pLayer as IFeatureLayer;
//if ((layer2 != null) && (layer2.FeatureClass != null))
//{
// string str = TrimUserName((layer2.FeatureClass as IDataset).BrowseName);
// if (((str == DBConst.TB_LSD) || (str == DBConst.TB_LSX)) || (str == DBConst.TB_LSM))
// {
// continue;
// }
//}
if (pLayer is ICompositeLayer)
{
GetCompositeLayerSideCoordinate(pLayer as ICompositeLayer, ref minValue, ref maxValue, ref dlYMax, ref dlYMin);
}
else
{
GetLayerSideCoordinate(pLayer, ref minValue, ref maxValue, ref dlYMax, ref dlYMin);
}
}
if ((((minValue == double.MinValue) && (maxValue == double.MaxValue)) && (dlYMax == double.MinValue)) && (dlYMin == double.MaxValue))
{
pActiveView.Extent = pActiveView.FullExtent;
PartialRefresh(pActiveView);
}
else
{
IEnvelope pGeometry = new EnvelopeClass();//GetEnvByCoor(minValue, maxValue, dlYMax, dlYMin);
pGeometry.XMax = minValue;
pGeometry.XMin = maxValue;
pGeometry.YMax = dlYMax;
pGeometry.YMin = dlYMin;
LocateGeometry(pActiveView, pGeometry, 0.2);
}
return true;
}
catch (Exception ex)
{
LogAPI.Debug(ex);
return false;
}
finally
{
}
}
public static bool LocateGeometry(IActiveView pActiveView, IGeometry pGeometry, double dblRatio)
{
try
{
if ((pGeometry == null) || (pActiveView == null))
{
return false;
}
if (pGeometry.IsEmpty)
{
return false;
}
if ((pGeometry is IPoint) || (pGeometry is IMultipoint))
{
ITopologicalOperator @operator = pGeometry as ITopologicalOperator;
@operator.Simplify();
pGeometry = @operator.Buffer(100.0);
}
IEnvelope envelope = pGeometry.Envelope;
IPoint p = new PointClass();
if (envelope != null)
{
p.X = (envelope.XMin + envelope.XMax) / 2.0;
p.Y = (envelope.YMin + envelope.YMax) / 2.0;
}
double num = pActiveView.Extent.Width / pActiveView.Extent.Height;
double num2 = envelope.Width / envelope.Height;
if (num > num2)
{
envelope.Width = envelope.Height * num;
}
else
{
envelope.Height = envelope.Width / num;
}
envelope.Expand(1.0 + dblRatio, 1.0 + dblRatio, true);
envelope.CenterAt(p);
if (envelope.SpatialReference != pActiveView.FocusMap.SpatialReference)
{
envelope.Project(pActiveView.FocusMap.SpatialReference);
}
pActiveView.Extent = envelope;
PartialRefresh(pActiveView);
pActiveView.ScreenDisplay.UpdateWindow();
return true;
}
catch (Exception)
{
return false;
}
}
public static bool PartialRefresh(IActiveView pActiveView)
{
if (pActiveView == null)
{
return false;
}
PartialRefresh(pActiveView, esriViewDrawPhase.esriViewForeground | esriViewDrawPhase.esriViewGraphicSelection | esriViewDrawPhase.esriViewGraphics | esriViewDrawPhase.esriViewGeoSelection | esriViewDrawPhase.esriViewGeography | esriViewDrawPhase.esriViewBackground);
return true;
}
public static bool PartialRefresh(IActiveView pActiveView, esriViewDrawPhase enumViewDrawPhase)
{
if (pActiveView == null)
{
return false;
}
pActiveView.PartialRefresh(enumViewDrawPhase, null, pActiveView.Extent);
return true;
}
private static bool GetCompositeLayerSideCoordinate(ICompositeLayer pCompositeLayer, ref double dlXMax, ref double dlXMin, ref double dlYMax, ref double dlYMin)
{
if (pCompositeLayer == null)
{
return false;
}
for (int i = 0; i < pCompositeLayer.Count; i++)
{
ILayer pLayer = pCompositeLayer.get_Layer(i);
if (pLayer is ICompositeLayer)
{
if (!GetCompositeLayerSideCoordinate(pLayer as ICompositeLayer, ref dlXMax, ref dlXMin, ref dlYMax, ref dlYMin))
{
return false;
}
}
else if (!GetLayerSideCoordinate(pLayer, ref dlXMax, ref dlXMin, ref dlYMax, ref dlYMin))
{
return false;
}
}
return true;
}
private static bool GetLayerSideCoordinate(ILayer pLayer, ref double dlXMax, ref double dlXMin, ref double dlYMax, ref double dlYMin)
{
if (pLayer == null || !pLayer.Valid)
{
return false;
}
if (pLayer is ITable)
{
try
{
if ((pLayer as ITable).RowCount(null) == 0)
{
return true;
}
}
catch (Exception)
{
}
}
IEnvelope areaOfInterest = pLayer.AreaOfInterest;
if (areaOfInterest != null)
{
dlXMax = Math.Max(dlXMax, areaOfInterest.XMax);
dlXMin = Math.Min(dlXMin, areaOfInterest.XMin);
dlYMax = Math.Max(dlYMax, areaOfInterest.YMax);
dlYMin = Math.Min(dlYMin, areaOfInterest.YMin);
}
return true;
}
}
}