ArcGIS Server的缓冲区分析

这几天杂事很忙,然而在利用ArcGIS Server完成缓冲区分析时,遇到几个问题:
1、单位的转换问题
第一种渠道:通过pMap.MapUnits改变原地图的单位为欲设置的单位,使用更改后的值再做缓冲,按理说应该正确,但出错,看不到效果,原因还待查清。
        switch (Convert.ToInt32(HttpContext.Current.Session["unitsindex"]))
        {
            case 0:
                pUnitsEnum=ESRI.ArcGIS.esriSystem.esriUnits.esriMeters;
                break;
            case 1:
                pUnitsEnum=ESRI.ArcGIS.esriSystem.esriUnits.esriDecimalDegrees;
                break;
            case 2:
                pUnitsEnum=ESRI.ArcGIS.esriSystem.esriUnits.esriKilometers;
                break;
            case 3:
                pUnitsEnum=ESRI.ArcGIS.esriSystem.esriUnits.esriMiles;
                break;
        }
        double pFromValue = 0;
        pFromValue = Convert.ToDouble(HttpContext.Current.Session["bufferdistance"]);
        double dToValue = 0;
        IUnitConverter pUnitConverter = (IUnitConverter)mrl.ServerContextInfo.ServerContext.CreateObject("esriSystem.UnitConverter");
        dToValue = pUnitConverter.ConvertUnits(pFromValue,pUnitsEnum , pMap.MapUnits);
第二种渠道:转换值,实现正确效果;
2、使用自定义方法返回esriDecimalDegrees枚举变量的问题,不知怎么能够正确返回,做时出现不能返回的情况,有进一步弄清楚;
3、ArcGIS Server上做缓冲的结果的保存和使用问题;
4、使用表中的某一个字段值来做缓冲区生成的问题,有时间还得探讨完成。

对水系进行缓冲时的效果图



posted on 2007-12-28 01:37  YISONG  阅读(2897)  评论(2编辑  收藏  举报

导航