下面是AO中缓冲区分析的代码,熟悉AO编程的对下面代码应该很了解了:
ESRI.ArcGIS.Geometry.ITopologicalOperator topop = (ESRI.ArcGIS.Geometry.ITopologicalOperator)ipnt;
double bufferDistance = map.Extent.Width / 6;
ESRI.ArcGIS.Geometry.IPolygon bufferPolygon;
bufferPolygon = (ESRI.ArcGIS.Geometry.IPolygon)topop.Buffer(bufferDistance);
bufferPolygon就是缓冲区分析的结果,但它还不是我们最后想要的,因为ESRI.ArcGIS.Geometry.IPolygon无法在adf web control中显示,还需要做一次转换:
// 定义valueobject的点
ESRI.ArcGIS.ADF.ArcGISServer.PolygonN buffer_polyn;
// 进行comobject到valueobject之间的转换
buffer_polyn = (ESRI.ArcGIS.ADF.ArcGISServer.PolygonN)ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.ComObjectToValueObject(bufferPolygon, serverContext, typeof(ESRI.ArcGIS.ADF.ArcGISServer.PolygonN));
buffer_polyn就是我们最后想要的结果,定义一种渲染方式:
ESRI.ArcGIS.ADF.ArcGISServer.RgbColor rgb1 = new ESRI.ArcGIS.ADF.ArcGISServer.RgbColor();
rgb1.Red = 200;
rgb1.Green = 200;
rgb1.Blue = 20;
// 设置区的填充色
ESRI.ArcGIS.ADF.ArcGISServer.SimpleFillSymbol sfs1 = new ESRI.ArcGIS.ADF.ArcGISServer.SimpleFillSymbol();
sfs1.Style = ESRI.ArcGIS.ADF.ArcGISServer.esriSimpleFillStyle.esriSFSHorizontal;
sfs1.Color = rgb1;
ESRI.ArcGIS.ADF.ArcGISServer.PolygonElement polyelement1 = new ESRI.ArcGIS.ADF.ArcGISServer.PolygonElement();
polyelement1.Symbol = sfs1;
polyelement1.Polygon = buffer_polyn;