Exemplo n.º 1
0
        /// <summary>
        /// initialize a Gdal based raster layer
        /// </summary>
        /// <param name="name">Name of layer</param>
        /// <param name="path">location of image</param>
        public GdalRasterLayer(string name, string path)
        {
            base.Name = name;

            CustomRenderers.Clear();
            CustomRenderers.Add(new GdalRenderer(this)); // add optimized custom gdal renderer

            if (path == null)
            {
                return;
            }

            var rasterFeatureProvider = new GdalFeatureProvider();

            try
            {
                rasterFeatureProvider.Open(path);
            }
            catch (Exception e)
            {
                log.Error("Can't open raster file, path: " + path, e);
            }

            DataSource = rasterFeatureProvider;
        }
Exemplo n.º 2
0
 public NetworkCoverageLocationLayer()
 {
     //Coverage = coverage;
     renderer   = new NetworkCoverageLocationRenderer();
     DataSource = new NetworkCoverageFeatureCollection {
         NetworkCoverageFeatureType = NetworkCoverageFeatureType.Locations
     };
     CustomRenderers.Add(renderer);
 }
Exemplo n.º 3
0
        public FeatureCoverageLayer(FeatureCoverageRenderer renderer)
        {
            featureCollection = new FeatureCollection();

            // Use the VectorLayer with the custom featureRenderer to render this feature coverage (using values form the data store)
            Renderer = renderer;
            CustomRenderers.Add(renderer);

            AutoUpdateThemeOnDataSourceChanged = true;
        }
Exemplo n.º 4
0
        /// <summary>
        /// Called when [initialize].
        /// </summary>
        internal void Init()
        {
            this.AppendRendererToName = this.settingsService.AutomaticallyAddRenderer;
            this.customRenderers      = this.translator.Translate(this.settingsService.XamarinFormsCustomRenderersUri);

            if (this.customRenderers.Groups != null)
            {
                this.CustomRendererGroups = this.customRenderers.Groups.Select(customerRendererGroup => customerRendererGroup.Name).ToList();
            }
        }
Exemplo n.º 5
0
        public NetworkCoverageSegmentLayer()
        {
            Name       = "Cells";
            DataSource = new NetworkCoverageFeatureCollection
            {
                NetworkCoverageFeatureType = NetworkCoverageFeatureType.Segments
            };

            segmentRenderer = new NetworkCoverageSegmentRenderer();
            CustomRenderers.Add(segmentRenderer);
        }
Exemplo n.º 6
0
        /// <summary>
        /// initialize a Gdal based raster layer
        /// </summary>
        /// <param name="name">Name of layer</param>
        /// <param name="path">location of image</param>
        public GdalRegularGridRasterLayer(string name, string path)
        {
            base.Name = name;

            var rasterFeatureProvider = new GdalFeatureProvider();

            if (path != null)
            {
                rasterFeatureProvider.Open(path);
            }
            CustomRenderers.Clear();

            CustomRenderers.Add(new RegularGridCoverageRenderer(this)); // add optimized custom gdal renderer

            DataSource = rasterFeatureProvider;
        }
        /// <summary>
        /// initialize a Gdal based raster layer
        /// </summary>
        /// <param name="name">Name of layer</param>
        /// <param name="path">location of image</param>
        public GdalRasterLayer(string name, string path)
        {
            base.Name = name;

            CustomRenderers.Clear();
            CustomRenderers.Add(new GdalRenderer(this)); // add optimized custom gdal renderer

            if (path == null)
            {
                return;
            }

            var rasterFeatureProvider = new GdalFeatureProvider();

            rasterFeatureProvider.Open(path);

            DataSource = rasterFeatureProvider;

            FeatureEditor = new FeatureEditor();
        }
Exemplo n.º 8
0
 public RegularGridCoverageLayer()
 {
     renderer = new RegularGridCoverageRenderer(this);
     CustomRenderers.Add(renderer);
 }
Exemplo n.º 9
0
        public virtual IEnumerable <IFeature> GetFeatures(IGeometry geometry, bool useCustomRenderers = true)
        {
            if (useCustomRenderers)
            {
                var customRenderer = CustomRenderers.FirstOrDefault();

                if (customRenderer != null)
                {
                    foreach (var feature in customRenderer.GetFeatures(geometry, this))
                    {
                        yield return(feature);
                    }

                    yield break;
                }
            }

            var getAllMapFeatures = map == null || map.Envelope.Equals(geometry.EnvelopeInternal); // when all map features are asked - avoid time consuming geometry x geometry checks

            if (UseQuadTree)
            {
                var features = GetFeaturesUsingQuadTree(geometry.EnvelopeInternal);

                foreach (var feature in features)
                {
                    // check if we're selecting subset of features, if so - use more robust intersection check (non-evelope based)
                    if (!getAllMapFeatures)
                    {
                        // log.DebugFormat("Checking geometry intersection for feature: " + feature.Attributes["NAME"]);
                        var g = feature.Geometry;

                        if (CoordinateTransformation != null)
                        {
                            g = GeometryTransform.TransformGeometry(g, CoordinateTransformation.MathTransform);
                        }

                        if (g.Intersects(geometry))
                        {
                            // log.DebugFormat("Intersected geometry found for feature: " + feature.Attributes["NAME"]);

                            yield return(feature);
                        }
                    }
                    else
                    {
                        yield return(feature);
                    }
                }
            }
            else
            {
                var features = Enumerable.Empty <IFeature>();
                var e        = geometry.EnvelopeInternal;
                if (CoordinateTransformation != null)
                {
                    // BUG: this will not work, migrate it
                    features = DataSource.Features.Cast <IFeature>();

                    foreach (var feature in features)
                    {
                        var g = GeometryTransform.TransformGeometry(feature.Geometry, CoordinateTransformation.MathTransform);

                        if (!g.EnvelopeInternal.Intersects(geometry.EnvelopeInternal))
                        {
                            continue;
                        }

                        if (!getAllMapFeatures)
                        {
                            if (g.Intersects(geometry))
                            {
                                yield return(feature);
                            }
                        }
                        else
                        {
                            yield return(feature);
                        }
                    }
                }
                else
                {
                    features = DataSource.Features.Cast <IFeature>().Where(feature => feature.Geometry != null && feature.Geometry.EnvelopeInternal.Intersects(e));

                    foreach (var feature in features)
                    {
                        if (!getAllMapFeatures)
                        {
                            if (feature.Geometry.Intersects(geometry))
                            {
                                yield return(feature);
                            }
                        }
                        else
                        {
                            yield return(feature);
                        }
                    }
                }
            }
        }
 /// <summary>
 /// initialize a Gdal based raster layer
 /// </summary>
 /// <param name="name">Name of layer</param>
 /// <param name="path">location of image</param>
 public GdalRegularGridRasterLayer(string name, string path) : base(name, path)
 {
     CustomRenderers.Clear();
     CustomRenderers.Add(new RegularGridCoverageRenderer(this)); // add optimized custom gdal renderer
 }
        /// <summary>
        /// Called when [initialize].
        /// </summary>
        internal void Init()
        {
            this.AppendRendererToName = this.settingsService.AutomaticallyAddRenderer;
            this.customRenderers = this.translator.Translate(this.settingsService.XamarinFormsCustomRenderersUri);

            if (this.customRenderers.Groups != null)
            {
                this.CustomRendererGroups = this.customRenderers.Groups.Select(customerRendererGroup => customerRendererGroup.Name).ToList();
            }
        }
Exemplo n.º 12
0
 public NetworkCoverageSegmentLayer()
 {
     //Coverage = coverage;
     segmentRenderer = new NetworkCoverageSegmentRenderer();
     CustomRenderers.Add(segmentRenderer);
 }