缓冲区分析需要在AO接口中实现,输入的点应该是一个COM对象,而在页面中输入xy坐标点是一个SOAP API valueojbect,valueobject可以用于adf web controls,但不能用于AO接口,因此需要进行valueobject到comojbect的转换,在调用ITopologicalOperator接口的Buffer方法后会得到缓冲区分析的结果,即一个polygon,同理,该polygon是一个comobject,需要逆转换为valueobject才能显示到网页上。
新建一个类XYBuffer,缓冲功能的在其buffer方法中实现。首先设置textbox中输入点的渲染方式,该作为一个ESRI.ArcGIS.ADF.ArcGISServer.PointN对象,渲染方法如下:
ESRI.ArcGIS.ADF.ArcGISServer.PointN pt = new ESRI.ArcGIS.ADF.ArcGISServer.PointN();
pt.X = x;
pt.Y = y;
// 设置点的颜色
ESRI.ArcGIS.ADF.ArcGISServer.RgbColor rgb = new ESRI.ArcGIS.ADF.ArcGISServer.RgbColor();
rgb.Red = 0;
rgb.Blue = 0;
rgb.Green = 20;
// 设置点的符号
ESRI.ArcGIS.ADF.ArcGISServer.SimpleMarkerSymbol sms = new ESRI.ArcGIS.ADF.ArcGISServer.SimpleMarkerSymbol();
sms.Style = ESRI.ArcGIS.ADF.ArcGISServer.esriSimpleMarkerStyle.esriSMSCircle;
sms.Color = rgb;
sms.Size = 20;
ESRI.ArcGIS.ADF.ArcGISServer.MarkerElement marker = new ESRI.ArcGIS.ADF.ArcGISServer.MarkerElement();
marker.Symbol = sms;
marker.Point = pt;