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))); }
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); }
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); }
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))); }
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))); }
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)); }
/// <inheritdoc /> public MapInfo GetMapInfo(IEnumerable <ILayer> layers, Geometries.Point screenPosition, int margin = 0) { return(MapInfoHelper.GetMapInfo(layers, Viewport, screenPosition, _mapControl.Renderer.SymbolCache, margin)); }
/// <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)); }