Skip to content
March 21, 2007 / Steven Pousty

Web Service API to Server

I think this is definetly one of the cool ways to interact with ArcGIS Server. It also has the speed advantage of not being a DCOM call for each setting of a property. Here is some of the doc I wrote way back when on web services for the Server.

On to the Talk…

Based upon the WSDL and uses simple value types (familiar to ArcGIS Developers).

There is a service to tell you the services available called the services catalog web serivce. Http://servername/arcgisinstance/services?wsdl

getServiceDescription tells you the services and it’s capabilities.

MAP Service
use it to generate maps as well as information to be overlaid on the map, identify and query features which are returned as geodatbase record sets. Can easily changed to an ADO.NET recordset
You can ask for tiling from a tiled map cache service – then tiles can also be fetched by http get.

There is a slide with some of the most important methods you can query and now a demonstration. Shows getting the wsdl location from ArcCatalog and then look at the result in IE. Nice integration with VS2005. Add a Web Reference which contains the service url with ?wsdl on the end. Then you create all teh native c# objects – no COM proxies – no reference to the ESRI assemblies. Showing a simple call and response and now adding a map image to the form. Cool demo showing some of the range of stuff you can do with just the web services. Zooming, panning, and using bookmarks…

Cached map services:
Get info on the tiling scheme and you can get the virtual directory to allow you to start writing GET requests and bypass the server. You can use a Info object to know how the tiles are positions and set up.

Relationship to ArcObjects

There is a ArcObject (AO) which represents each of these WebService – so the AO object model diagram helps you understand how the web services interact. I know that the way you call them though is not exactly the same so be careful with how far you rely on the AO doc to understand what to do with the WSDL generated classes.

GLOBE Services – delivers data to 3D map and globe but I don’t think you can use it outside of a ArcGIS application

Geoprocessing Service – lots – o – methods so you can use this outside of an ArcGIS (AO) application. There is a synchornus and async modes of execution. Sync is only for small results since it locks the SOC until the job is done. Ansync is probably more useful for people since it will also allow you to draw results on a map. Time for another demo and I can’t wait to see this one!!

Clip data that is on the server and send it back to the client. It needs an mxd with a toolbox which creates a MapService and a GeoprocessingService. You can get a list of tools and what the tool needs to run and some help about it.

!!Looks like a dev pattern is to ask the server for a default value to build the value object for you and then populate it with the values you want.

How is the spatial geometry stored in that result set?? I am betting it is from the geodb schema XSD. That demo was awesome – did I mention there were no interops involved in this at all!!!

GEODATA services and replication – allows for access to a geodb over the web – can be used for synchronizing databases – has methods for browsing datasets, exporting datasets to xml, creating check-out, 1 and 2 way replicas, exporting and importing replicas… Rock! When it exports data you can pick the different formats to deliver the data.

Time for another demo. You can use data from SDE directly or based upon a map document (mxd).

You know this adds even more thoughts about Dave B’s thoughts on code generation. You could actually dynamically build an application using this service since you could ask the for the geodb schema. How boss would that be – Use an application to generate a simple application customized to a particular web service.hmmmmmmm

GEOCODE Service – 9.2 has high performance locators and it can be used in conjunction with an NETWORK ANALYSIS Service.  You can associate these with a map.

I am starting to burn out on sitting in sessions – I may have to go talk to people at islands or something. DONE

Advertisements

3 Comments

Leave a Comment
  1. Vish / Apr 2 2007 5:34 pm

    Hi Steve,

    You had mentioned that there is a easy way to convert from the geodatabase recordset to a ADO.NET recordset above in your blog. Can you give me some datails on how that can be done? I am working on that right now and doing it manually.

    Thank You,
    Vish

  2. thesteve0 / Apr 2 2007 10:50 pm

    Hey Vish:
    Sorry – I am not quite sure I remember how since I was taking notes at the time and Sud did not give a demo. I think the idea is that a geodatabase recordset has a xml representation (http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Geodatabase_XML) and ADO.NET can bind to XML (http://msdn2.microsoft.com/en-us/library/0yx6dhcw(VS.80).aspx) it should be possible.

  3. Mark B. / May 31 2007 8:37 am

    Hello Steve,

    I also attended the Dev Summit and found this session very interesting. However, for some reason when I attempt to access my Service Catalog Web Serice using the following:

    http:///arcgis instance>/services?wsdl

    I get the IE 403 (Forbidden) error message. Not sure why and I am hoping that you might have some ideas. Could be related to IIS?…

    Thank you for your time and your blog!

    Mark B.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: