Ejemplo n.º 1
0
        public AgsLegend(MapServerLegendInfo mapServerLegendInfo)
        {
            _mapServerLegendInfo = mapServerLegendInfo;

            foreach (MapServerLegendGroup mapServerLegendGroup in mapServerLegendInfo.LegendGroups)
            {
                Groups.Add(new AgsLegendGroup(mapServerLegendGroup));
            }
        }
Ejemplo n.º 2
0
        public AgsDataFrame(AgsMapService service, MapServerInfo mapServerInfo, bool isDefault)
        {
            _mapServerInfo = mapServerInfo;

            Service   = service;
            Name      = mapServerInfo.Name;
            IsDefault = isDefault;

            ImageType imageType = new ImageType(esriImageFormat.esriImagePNG, esriImageReturnType.esriImageReturnMimeData);

            MapServerLegendInfo[] legendInfos = service.MapServer.GetLegendInfo(mapServerInfo.Name, null, null, imageType, null, null);

            foreach (MapLayerInfo mapLayerInfo in mapServerInfo.MapLayerInfos)
            {
                MapServerLegendInfo mapServerLegendInfo = legendInfos.FirstOrDefault(li => li.LayerID == mapLayerInfo.LayerID);
                LayerDescription    layerDescription    = mapServerInfo.DefaultMapDescription.LayerDescriptions.First(ld => ld.LayerID == mapLayerInfo.LayerID);

                Layers.Add(new AgsLayer(this, mapLayerInfo, mapServerLegendInfo, layerDescription.Visible));
            }

            CreateLayerHierarchy();
        }
Ejemplo n.º 3
0
        public AgsLayer(AgsDataFrame dataFrame, MapLayerInfo mapLayerInfo, MapServerLegendInfo mapServerLegendInfo, bool defaultVisible)
        {
            _service             = dataFrame.Service as AgsMapService;
            _mapLayerInfo        = mapLayerInfo;
            _mapServerLegendInfo = mapServerLegendInfo;

            DataFrame      = dataFrame;
            DefaultVisible = defaultVisible;
            ID             = mapLayerInfo.LayerID.ToString();
            Name           = mapLayerInfo.Name;

            double toPixels = 1.0 / (12 * dataFrame.Dpi);

            if (dataFrame.MapServerInfo.Units == esriUnits.esriMeters)
            {
                toPixels *= MetersPerFoot;
            }

            if (mapLayerInfo.MaxScale > 0)
            {
                MinimumPixelSize = mapLayerInfo.MaxScale * toPixels;
            }

            if (mapLayerInfo.MinScale > 0)
            {
                MaximumPixelSize = mapLayerInfo.MinScale * toPixels;
            }

            if (mapLayerInfo.IsFeatureLayer && mapLayerInfo.LayerType != "Annotation Layer" && mapLayerInfo.LayerType != "Raster Catalog Layer")
            {
                Selectable = mapLayerInfo.CanSelect;
                Fields     = new List <CommonField>();

                foreach (Field proxyField in mapLayerInfo.Fields.FieldArray)
                {
                    AgsField field = new AgsField(proxyField);
                    Fields.Add(field);

                    if (field.Type == CommonFieldType.ID)
                    {
                        FeatureIDField = field;
                    }
                    else if (field.Type == CommonFieldType.Geometry)
                    {
                        GeometryField = field;

                        switch (proxyField.GeometryDef.GeometryType)
                        {
                        case esriGeometryType.esriGeometryPoint: FeatureType = OgcGeometryType.Point; break;

                        case esriGeometryType.esriGeometryMultipoint: FeatureType = OgcGeometryType.MultiPoint; break;

                        case esriGeometryType.esriGeometryPolyline: FeatureType = OgcGeometryType.MultiLineString; break;

                        case esriGeometryType.esriGeometryPolygon: FeatureType = OgcGeometryType.MultiPolygon; break;
                        }
                    }
                }

                Legend = new AgsLegend(mapServerLegendInfo);
            }
            else
            {
                switch (mapLayerInfo.LayerType)
                {
                case "Raster Catalog Layer":
                case "Raster Layer":
                    Type = CommonLayerType.Image;
                    break;

                case "Annotation Layer": Type = CommonLayerType.Annotation; break;

                case "Group Layer": Type = CommonLayerType.Group; break;
                }
            }
        }