About the Server spatial query COM utility Sample
[C#]
VegTool_VBNet.cs
[Visual Basic .NET]
VegTool_VBNet.vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports ESRI.ArcGIS.ADF.Web.UI.WebControls
Imports ESRI.ArcGIS.ADF.Web.UI.WebControls.Tools
Imports ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer
Imports ESRI.ArcGIS.ADF.Web.DataSources
Imports ESRI.ArcGIS.Carto
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.Server
Imports ESRI.ArcGIS.Geometry
Imports VegCOM_VBNet
Imports ESRI.ArcGIS.ADF.ArcGISServer
Imports ESRI.ArcGIS.Geodatabase
Public Class VegTool_VBNet
Implements IMapServerToolAction
#Region "IMapServerToolAction Members"
Public Sub ServerAction(ByVal args As ESRI.ArcGIS.ADF.Web.UI.WebControls.ToolEventArgs) Implements ESRI.ArcGIS.ADF.Web.UI.WebControls.Tools.IMapServerToolAction.ServerAction
Dim mapctrl As ESRI.ArcGIS.ADF.Web.UI.WebControls.Map = CType(args.Control, ESRI.ArcGIS.ADF.Web.UI.WebControls.Map)
' Get MapFunctionality from the control...
Dim mapfunc As MapFunctionality = CType(mapctrl.GetFunctionality(mapctrl.MapResourceManagerInstance.ResourceItems.Count - 1), MapFunctionality)
Dim mapres As MapResourceLocal = CType(mapfunc.MapResource, MapResourceLocal)
Dim sc As IServerContext = mapres.ServerContextInfo.ServerContext
Dim map As IMapServer = mapres.MapServer
Dim mapobj As IMapServerObjects = CType(map, IMapServerObjects)
Dim fgmap As IMap = mapobj.Map(map.DefaultMapName)
Dim fl As IFeatureLayer = CType(fgmap.Layer(0), IFeatureLayer)
Dim fc As IFeatureClass = fl.FeatureClass
Dim pargs As PointEventArgs = CType(args, PointEventArgs)
Dim inpt As ESRI.ArcGIS.ADF.Web.Geometry.Point = ESRI.ArcGIS.ADF.Web.Geometry.Point.ToMapPoint(pargs.ScreenPoint, mapctrl.GetTransformationParams(ESRI.ArcGIS.ADF.Web.Geometry.TransformationDirection.ToMap))
Dim pt As IPoint = CType(sc.CreateObject("esriGeometry.Point"), IPoint)
pt.X = inpt.X
pt.Y = inpt.Y
Dim tbxvalue As String = CStr(mapctrl.Page.Session("TextBox1Value"))
Dim distance As Double = 0
If (Not Double.TryParse(tbxvalue, distance)) Then
distance = 10000
End If
Dim fldName As String = "PRIMARY_"
Dim vegutils As IVegUtils_VBNet = CType(sc.CreateObject("VegCOM_VBNet.VegUtils_VBNet"), IVegUtils_VBNet)
Dim vegresults As IVegResults_VBNet = vegutils.sumVegetationType(fc, pt, distance, fldName)
' add the graphics to the map
Dim comGraphics As IGraphicElements = vegresults.ResGraphics
Dim proxyGraphics() As GraphicElement = CType(ESRI.ArcGIS.ADF.ArcGISServer.Converter.ComObjectToValueObject(comGraphics, sc, GetType(GraphicElement())), GraphicElement())
Dim rgb As New RgbColor()
rgb.Red = 155
rgb.Green = 0
rgb.Blue = 0
rgb.AlphaValue = 255
Dim sls As New SimpleLineSymbol()
sls.Style = ESRI.ArcGIS.ADF.ArcGISServer.esriSimpleLineStyle.esriSLSSolid
sls.Color = rgb
sls.Width = 1.2
For Each pe As ESRI.ArcGIS.ADF.ArcGISServer.PolygonElement In proxyGraphics
Dim sfs As SimpleFillSymbol = CType(pe.Symbol, SimpleFillSymbol)
sfs.Outline = sls
Next pe
mapfunc.MapDescription.CustomGraphics = proxyGraphics
Dim cbxvalue As String = CStr(mapctrl.Page.Session("CheckBox1Value"))
If Boolean.Parse(cbxvalue) Then
' display table of summarized areas
Dim rs As IRecordSet = vegresults.Stats
Dim value_rs As ESRI.ArcGIS.ADF.ArcGISServer.RecordSet = CType(ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.ComObjectToValueObject(rs, sc, GetType(ESRI.ArcGIS.ADF.ArcGISServer.RecordSet)), ESRI.ArcGIS.ADF.ArcGISServer.RecordSet)
Dim rsDatatable As System.Data.DataTable = ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.ToDataTable(value_rs)
Dim rsDataset As New System.Data.DataSet()
rsDataset.Tables.Add(rsDatatable)
mapctrl.Page.Session("VegDataset") = rsDataset
Else
mapctrl.Page.Session("VegDataset") = Nothing
End If
mapctrl.Refresh()
End Sub
#End Region
End Class