Пример #1
0
        public void setZoneValues()
        {
            tblName = geoUtil.getSafeOutputNameNonRaster(wks, oName);
            oName   = tblName;
            if (vRs == null)
            {
                if (rd != null)
                {
                    rd.addMessage("Value raster has not been set! Cannot proceed!");
                }
                return;
            }
            if (zRs == null)
            {
                if (rd != null)
                {
                    rd.addMessage("Feature class method");
                }
                if (ftrCls == null || ftrField == null)
                {
                    if (rd != null)
                    {
                        rd.addMessage("Zone Feature Class has not been set! Cannot proceed!");
                    }
                    return;
                }
                bool cP = checkProjectionsFtr();
                bool cE = checkExtentsFtr();

                if (!cE)
                {
                    if (rd != null)
                    {
                        rd.addMessage("Zone and value dataset extents do not overlap! Cannot proceed!");
                    }
                    return;
                }
                if (!cP)
                {
                    if (rd != null)
                    {
                        rd.addMessage("Zone and value dataset projections are different! Project on the fly to value raster projection!");
                    }
                    ftrCls = reprojectInFeatureClass(ftrCls, vRs.RasterInfo.SpatialReference);
                }
                calcZoneValuesFtr();
            }
            else
            {
                if (rd != null)
                {
                    rd.addMessage("Raster method");
                }
                bool cP = checkProjections();
                bool cC = checkCellSize();
                bool cE = checkExtents();
                if (!cE)
                {
                    if (rd != null)
                    {
                        rd.addMessage("Zone and value dataset extents do not overlap! Cannot proceed!");
                    }
                    return;
                }
                if (!cP)
                {
                    if (rd != null)
                    {
                        rd.addMessage("Zone and value datasets are not in the same projection! Projecting value raster!");
                    }
                }
                calcZoneValues();
            }
            if (ZoneTypes != null && ZoneTypes.Length > 0)
            {
                fillFields();
            }
            if (zoneClassCount)
            {
                buildZoneClassCount();
            }
        }