コード例 #1
0
        private async Task <string> GetParcelTypeNameFromFeatureLayer(ParcelLayer myParcelFabricLayer, FeatureLayer featLayer, GeometryType geomType)
        {
            if (featLayer == null) //nothing to do, return empty string
            {
                return(String.Empty);
            }
            IEnumerable <string> parcelTypeNames = await myParcelFabricLayer.GetParcelTypeNames();

            foreach (string parcelTypeName in parcelTypeNames)
            {
                if (geomType == GeometryType.Polygon)
                {
                    var polygonLyrParcelTypeEnum = await myParcelFabricLayer.GetParcelPolygonLayerByTypeName(parcelTypeName);

                    foreach (FeatureLayer lyr in polygonLyrParcelTypeEnum)
                    {
                        if (lyr == featLayer)
                        {
                            return(parcelTypeName);
                        }
                    }

                    polygonLyrParcelTypeEnum = await myParcelFabricLayer.GetHistoricParcelPolygonLayerByTypeName(parcelTypeName);

                    foreach (FeatureLayer lyr in polygonLyrParcelTypeEnum)
                    {
                        if (lyr == featLayer)
                        {
                            return(parcelTypeName);
                        }
                    }
                }
                if (geomType == GeometryType.Polyline)
                {
                    var lineLyrParcelTypeEnum = await myParcelFabricLayer.GetParcelLineLayerByTypeName(parcelTypeName);

                    foreach (FeatureLayer lyr in lineLyrParcelTypeEnum)
                    {
                        if (lyr == featLayer)
                        {
                            return(parcelTypeName);
                        }
                    }

                    lineLyrParcelTypeEnum = await myParcelFabricLayer.GetHistoricParcelLineLayerByTypeName(parcelTypeName);

                    foreach (FeatureLayer lyr in lineLyrParcelTypeEnum)
                    {
                        if (lyr == featLayer)
                        {
                            return(parcelTypeName);
                        }
                    }
                }
            }
            return(String.Empty);
        }
コード例 #2
0
        private async Task <string> CheckParcelFabricStatusAsync()
        {
            try
            {
                var lic = ArcGIS.Core.Licensing.LicenseInformation.Level;
                if (lic < ArcGIS.Core.Licensing.LicenseLevels.Standard)
                {
                    return("Insufficient License Level for Parcel Fabric.");
                }
                _taxLayerPolys         = null;
                _lotLayerPolys         = null;
                _taxLayerLines         = null;
                _lotLayerLines         = null;
                _importParcelLineLayer = null;
                if (MapView.Active?.Map == null)
                {
                    return("No active mapview");
                }
                _parcelFabricLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType <ParcelLayer>().FirstOrDefault();
                // if there is no fabric in the map then bail
                if (_parcelFabricLayer == null)
                {
                    return("No Parcel Fabric layer found in the TOC");
                }
                var recordsLayer = await _parcelFabricLayer.GetRecordsLayerAsync();

                if (recordsLayer == null)
                {
                    return("No records layer for the Parcel Fabric was found");
                }
                {
                    _recordLayer = recordsLayer.FirstOrDefault();
                }
                if (MapView.Active?.Map == null)
                {
                    return("No active mapview");
                }
                _taxLayerPolys = MapView.Active.Map.GetLayersAsFlattenedList().OfType <FeatureLayer>().Where(fl => fl.Name.Equals(LyrNameTax)).FirstOrDefault();
                if (_taxLayerPolys == null)
                {
                    return($@"{LyrNameTax} layer is missing");
                }
                _lotLayerPolys = MapView.Active.Map.GetLayersAsFlattenedList().OfType <FeatureLayer>().Where(fl => fl.Name.Equals(LyrNameLot)).FirstOrDefault();
                if (_lotLayerPolys == null)
                {
                    return($@"{LyrNameLot} layer is missing");
                }
                _taxLayerLines = MapView.Active.Map.GetLayersAsFlattenedList().OfType <FeatureLayer>().Where(fl => fl.Name.Equals(LyrNameTax + "_Lines")).FirstOrDefault();
                if (_taxLayerLines == null)
                {
                    return($@"{LyrNameTax} layer is missing");
                }
                _lotLayerLines = MapView.Active.Map.GetLayersAsFlattenedList().OfType <FeatureLayer>().Where(fl => fl.Name.Equals(LyrNameLot + "_Lines")).FirstOrDefault();
                if (_lotLayerLines == null)
                {
                    return($@"{LyrNameLot} layer is missing");
                }
                _importParcelLineLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType <FeatureLayer>().Where(fl => fl.Name.Equals(LyrNameImport)).FirstOrDefault();
                if (_importParcelLineLayer == null)
                {
                    return($@"{LyrNameImport} layer is missing");
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine($@"Error in CheckParcelFabricStatusAsync: {ex}");
            }
            return(string.Empty);
        }