.NET Web ADF supports curves at 9.3

In this post Product Engineer Derek Weatherbe discusses support for curves added to the .NET Web ADF at 9.3

At 9.2, using Identify or executing a task against a feature that had a curved segment would not work. Prior to Service Pack 3, this action would return an ‘object reference’ error. At SP 3, we started capturing this error to return the more descriptive ‘Curves are not supported’ exception.

At 9.3 we enhanced ArcGIS Server map services to return densified geometry when requested. We now leverage this in the ADF so that Identify and other tasks can return results for features that contain curves and highlight them. The SOM, SOC and Web ADF must be at version 9.3 for this to work.

This entry was posted in Services and tagged , , , . Bookmark the permalink.

Leave a Reply

4 Comments

  1. igras705 says:

    Wooohoo!!! Now if only I could get back the countless hours I wasted with this at 9.2…..

  2. sterlingdq says:

    @diligentpig-

    Yes, this is expected behavior. We support data with curves at 9.3 by requesting the server to return densified geometries on queries. The server feature to support returning densified geometries on queries was introduced at 9.3.

    Because you are working directly with ArcObjects, you would have to do the densification (IPolyCurve.Densify) before converting the ArcObjects geometry to an ADF geometry.

  3. diligentpig says:

    Thanks very much for your reply! :)
    I’ve learned the article 33331 in knowlege base.Now I’m much aware of this issue.
    Is this mean at version 9.3,the Web ADF is not actually support curves,but has some pre-processing(densify) before working with curves.I have to explictly call densify() method if I deal with curves myslef.
    I’m a beginner about learning ArcGIS Server,thanks again for your technical support.

  4. geosilicon says:

    So in 9.3 if I am doing a query like this:

    //Create a query filter and perform query through QueryFeatureData
    ESRI.ArcGIS.ADF.ArcGISServer.QueryFilter qf = new ESRI.ArcGIS.ADF.ArcGISServer.QueryFilter();

    qf.WhereClause = strQueryFilterWhereClause;
    recSet = mapServ.QueryFeatureData(mapName, lyrID, qf);

    Where do I request that the geometry be densified before it is returned?

    Or am I stuck looping through “recSet” and doing it manually for each record prior to converting it to a datatable?

    //Convert to a .NET DataTable type
    System.Data.DataTable resultstable = ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.ToDataTable(recSet);

    Thanks