Esempio n. 1
0
        public void IgnoringDisabledLayers()
        {
            // arrange
            var map      = new Map();
            var viewport = new Viewport
            {
                Resolution = 1,
                Width      = 10,
                Height     = 10,
                Center     = new Point(5, 5)
            };

            map.Layers.Add(new MemoryLayer
            {
                Name           = "TestLayer",
                DataSource     = new MemoryProvider(CreatePolygon(1, 3)),
                Enabled        = false,
                IsMapInfoLayer = true
            });

            var screenPositionHit = viewport.WorldToScreen(2, 2);

            // act
            var argsHit = MapInfoHelper.GetMapInfo(map.Layers, viewport, screenPositionHit, null);

            // assert;
            Assert.IsTrue(argsHit.Feature == null);
            Assert.IsTrue(argsHit.Layer == null);
            Assert.IsTrue(argsHit.WorldPosition.Equals(new Point(2, 2)));
        }
Esempio n. 2
0
        private void DragFeatureTo(MotionEvent motionEvent)
        {
            var mapInfoEventArgs = new MapInfoEventArgs
            {
                MapInfo = MapInfoHelper.GetMapInfo(Map.Layers.Where(l => l.IsMapInfoLayer), Viewport, GetScreenPosition(motionEvent, this), Renderer.SymbolCache),
                Type    = MapInfoEventType.DragMove,
                Handled = false
            };

            mapInfoEventArgs.MapInfo.Feature = _draggedFeature;

            OnInfo(mapInfoEventArgs);
        }
Esempio n. 3
0
        private MapInfoEventArgs CheckStartDragHandled(MotionEvent motionEvent)
        {
            var mapInfoEventArgs = new MapInfoEventArgs
            {
                MapInfo = MapInfoHelper.GetMapInfo(Map.Layers.Where(l => l.IsMapInfoLayer), Viewport, GetScreenPosition(motionEvent, this), Renderer.SymbolCache),
                Type    = MapInfoEventType.DragStart,
                Handled = false
            };

            if (mapInfoEventArgs.MapInfo.Feature != null)
            {
                OnInfo(mapInfoEventArgs);
            }

            return(mapInfoEventArgs);
        }
Esempio n. 4
0
        public void IgnoringLayersOutOfScaleRange()
        {
            // arrange
            var map      = new Map();
            var viewport = new Viewport
            {
                Resolution = 1,
                Width      = 10,
                Height     = 10,
                Center     = new Point(5, 5)
            };

            var layerBelowRange = new MemoryLayer
            {
                Name           = "MaxVisibleLayer",
                DataSource     = new MemoryProvider(CreatePolygon(1, 3)),
                MaxVisible     = 0.9,
                IsMapInfoLayer = true
            };

            var layerAboveRange = new MemoryLayer
            {
                Name           = "MinVisibleLayer",
                DataSource     = new MemoryProvider(CreatePolygon(1, 3)),
                MinVisible     = 1.1,
                IsMapInfoLayer = true
            };

            map.Layers.Add(layerBelowRange);
            map.Layers.Add(layerAboveRange);

            var screenPositionHit = viewport.WorldToScreen(2, 2);

            // act
            var argsHit = MapInfoHelper.GetMapInfo(map.Layers, viewport, screenPositionHit, null);

            // assert;
            Assert.IsTrue(argsHit.Feature == null);
            Assert.IsTrue(argsHit.Layer == null);
            Assert.IsTrue(argsHit.WorldPosition.Equals(new Point(2, 2)));
        }
Esempio n. 5
0
        public void TestInfo()
        {
            // arrange
            var map      = new Map();
            var viewport = new Viewport
            {
                Resolution = 1,
                Width      = 10,
                Height     = 10,
                Center     = new Point(5, 5)
            };

            map.Layers.Add(new MemoryLayer
            {
                Name           = "TestLayer",
                DataSource     = new MemoryProvider(CreatePolygon(1, 4)),
                IsMapInfoLayer = true
            });

            var screenPositionHit  = viewport.WorldToScreen(2, 2);
            var screenPositionMiss = viewport.WorldToScreen(9, 9);

            // act
            var argsHit = MapInfoHelper.GetMapInfo(map.Layers, viewport, screenPositionHit, null);
            var argsMis = MapInfoHelper.GetMapInfo(map.Layers, viewport, screenPositionMiss, null);

            // assert;
            Assert.IsTrue(argsHit.Feature.Geometry != null);
            Assert.IsTrue(argsHit.Layer.Name == "TestLayer");
            Assert.IsTrue(argsHit.WorldPosition.Equals(new Point(2, 2)));

            // If not on feature still return args with world position.
            Assert.IsTrue(argsMis.Feature?.Geometry == null);
            Assert.IsTrue(argsMis.Layer == null);
            Assert.IsTrue(argsMis.WorldPosition.Equals(new Point(9, 9)));
        }
Esempio n. 6
0
 public MapInfo GetMapInfo(Geometries.Point screenPosition, IReadOnlyViewport viewport, IEnumerable <ILayer> layers, int margin = 0)
 {
     layers = layers.Where(l => l.IsMapInfoLayer);
     return(MapInfoHelper.GetMapInfo(layers, viewport, screenPosition, _symbolCache, margin));
 }
Esempio n. 7
0
 /// <inheritdoc />
 public MapInfo GetMapInfo(IEnumerable <ILayer> layers, Geometries.Point screenPosition, int margin = 0)
 {
     return(MapInfoHelper.GetMapInfo(layers, Viewport,
                                     screenPosition, _mapControl.Renderer.SymbolCache, margin));
 }
Esempio n. 8
0
 /// <inheritdoc />
 public MapInfo GetMapInfo(Geometries.Point screenPosition, int margin = 0)
 {
     return(MapInfoHelper.GetMapInfo(Map.Layers.Where(l => l.IsMapInfoLayer), Viewport,
                                     screenPosition, _mapControl.Renderer.SymbolCache, margin));
 }