Exemplo n.º 1
0
        private void getPrecints(FeatureLayer layer, Geometry geometry, GeometryDimension dimension)
        {
            var precintsList = this.getIntersectedIds(geometry, layer, dimension);
            var selection    = layer.GetTable();

            foreach (long id in precintsList)
            {
                var    filter  = new QueryFilter();
                string idField = config.getConfig("Obręby", "areaId");
                filter.WhereClause = idField + "=" + id;

                var wydzielenia = selection.Search(filter);
                while (wydzielenia.MoveNext())
                {
                    var precintRow = wydzielenia.Current;
                    Dictionary <string, object> precintDictionary = new Dictionary <string, object>();
                    var fields   = precintRow.GetFields();
                    int iterator = 0;
                    foreach (Field field in fields)
                    {
                        precintDictionary.Add(field.Name, precintRow.GetOriginalValue(iterator));
                        iterator++;
                    }
                    properties.precints.Add(new PrecintModel(precintDictionary));
                }
            }
        }
Exemplo n.º 2
0
        private async void getData(Geometry geometry, GeometryDimension dimension)
        {
            properties = new NecessaryProperties();
            ArcGIS.Desktop.Mapping.MapView view = ArcGIS.Desktop.Mapping.MapView.Active;

            var          layersTOC    = ArcGIS.Desktop.Mapping.MapView.Active.Map.GetLayersAsFlattenedList();
            FeatureLayer parcelsLayer = (FeatureLayer)layersTOC.Where((layer) =>
            {
                return(layer.Name.Contains(config.getConfig("Działki", "parcelsLayer")));
            }).First();
            var parcels = ArcGIS.Desktop.Mapping.MapView.Active.Map.GetLayersAsFlattenedList();

            foreach (var f in parcels)
            {
                var feat = f.Name.Equals(config.getConfig("Działki", "parcelsLayer"));
                if (feat)
                {
                    this.parcellayer = (FeatureLayer)f;
                }
            }
            this.getParcel(parcelsLayer, geometry, dimension);
            CIMLineSymbol symbol = new CIMLineSymbol();

            symbol.SetColor(ColorFactory.Instance.CreateRGBColor(255, 255, 255, 0));
            foreach (ParcelModel parcelModel in properties.parcels)
            {
                object result          = null;
                var    pointsFromShape = parcelModel.parcel.TryGetValue("Shape", out result);
            }
            Polygon shp = null;

            foreach (Layer layer in layersTOC)
            {
                try
                {
                    FeatureLayer fLayer = (FeatureLayer)layer;
                    if (fLayer.Name.Contains(config.getConfig("MPZP", "MPZPlayer")))
                    {
                        this.getMPZP(fLayer, geometry, dimension);
                    }
                    else if (fLayer.Name.Contains(config.getConfig("Wydzielenia", "precintLayer")))
                    {
                        this.getResolution(fLayer, geometry, dimension);
                    }
                    else if (fLayer.Name.Contains(config.getConfig("Obręby", "areaLayer")))
                    {
                        this.getPrecints(fLayer, geometry, dimension);
                    }
                }catch (Exception) { }
            }
        }
Exemplo n.º 3
0
        public List <long> getIntersectedIds(Geometry geometry, FeatureLayer layer, GeometryDimension dimension)
        {
            List <long> intersectedObjects = new List <long>();
            var         table     = layer.GetTable();
            var         selection = table.Search();

            while (selection.MoveNext())
            {
                var             current = selection.Current;
                Polygon         polygon = (Polygon)current.GetOriginalValue(current.FindField("Shape"));
                IGeometryEngine engine  = GeometryEngine.Instance;
                if (!engine.Intersection(geometry, polygon, dimension).IsEmpty)
                {
                    intersectedObjects.Add(current.GetObjectID());
                }
            }
            return(intersectedObjects);
        }
Exemplo n.º 4
0
 private void getResolution(FeatureLayer layer, Geometry geometry, GeometryDimension dimension)
 {
     try
     {
         var resolutionList = this.getIdsFromEveryParcel(layer);
         var selection      = layer.GetTable();
         foreach (long id in resolutionList)
         {
             var cursor = getRow(id, selection);
             while (cursor.MoveNext())
             {
                 properties.resolutions.Add(new ResolutionModel(getData(cursor.Current)));
             }
         }
     }
     catch (Exception)
     {
         MessageBox.Show("Nie udało się pobrać danych o wydzieleniach");
     }
 }
Exemplo n.º 5
0
 private void getMPZP(FeatureLayer layer, Geometry geometry, GeometryDimension dimension)
 {
     try
     {
         var lista     = getIdsFromEveryParcel(layer);
         var selection = layer.GetTable();
         foreach (long id in lista)
         {
             var cursor = getRow(id, selection);
             while (cursor.MoveNext())
             {
                 properties.mpzpModels.Add(new MPZPModel(getData(cursor.Current)));
             }
         }
     }
     catch (Exception e)
     {
         MessageBox.Show("Nie udało się pobrać danych o MPZP");
     }
 }
Exemplo n.º 6
0
        private void getParcel(FeatureLayer layer, Geometry geometry, GeometryDimension dimension)
        {
            lista = this.getIntersectedIds(geometry, layer, dimension);
            var selection    = layer.GetTable();
            var selectFilter = new QueryFilter();
            var statement    = "";

            for (int i = 0; i < lista.Count; i++)
            {
                long id = lista.ElementAt(i);
                statement += "OBJECTID=" + id;
                if (i < lista.Count - 1)
                {
                    statement += " OR ";
                }
                var cursor = getRow(id, selection);
                while (cursor.MoveNext())
                {
                    properties.parcels.Add(new ParcelModel(getData(cursor.Current)));
                }
            }
            selectFilter.WhereClause = statement;
            this.parcelQuery         = selectFilter;
        }