private MemoryLayer GetPoiLayer(Route route) { var layer = new MemoryLayer { DataSource = new MemoryProvider( route.Waypoints .OfType <PointOfInterest>() .ToList() .Select(poi => new Feature { Geometry = SphericalMercator.FromLonLat(poi.Longitude, poi.Latitude) }) ), IsMapInfoLayer = true, Style = new SymbolStyle { BitmapId = GetBitmapIdForEmbeddedResource("FamilieWandelPad.RouteImager.Assets.Pin.svg"), SymbolScale = 1d, SymbolOffset = new Offset(0.0, 0.5, true), Enabled = true } }; return(layer); }
public IEnumerator SingleMemoryRequest() { int testAddress = 0; // create two mock layers MemoryLayer upperLayer = MockLayer(new Vector3(50, 0, 50)); MemoryLayer lowerLayer = MockLayer(new Vector3(0, 0, 50)); // release for a frame so that start can be called on the layers yield return(null); // associate the layers with eachother upperLayer.layerBelow = lowerLayer; lowerLayer.layerAbove = upperLayer; // set the layer latencies to 1 which will make the packets arrive in a single update upperLayer.layerLatency = 1; lowerLayer.layerLatency = 1; // add some memory addresses to the upper layer upperLayer.AddMemoryLocation(testAddress); // make some requests on the lower layer lowerLayer.MakeRequest(testAddress); // wait until the request has been fulfilled yield return(new WaitForSeconds(1)); // Check that the lower layer now has the address in its list Assert.IsTrue(lowerLayer.CheckForAddress(testAddress) >= 0); }
private static ILayer CreateMutatingTriangleLayer(BoundingBox envelope) { var layer = new MemoryLayer(); var polygon = new Polygon(new LinearRing(GenerateRandomPoints(envelope, 3))); var feature = new Feature() { Geometry = polygon }; var features = new Features(); features.Add(feature); layer.DataSource = new MemoryProvider(features); PeriodicTask.Run(() => { polygon.ExteriorRing = new LinearRing(GenerateRandomPoints(envelope, 3)); // Clear cache for change to show feature.RenderedGeometry.Clear(); // Trigger DataChanged notification layer.RefreshData(layer.Envelope, 1, true); }, TimeSpan.FromMilliseconds(1000)); return(layer); }
private static void CarsLayerUpdate(MapControl myMapControl) { if (carsLayer == null) { var feature = new Feature { Geometry = new MultiPoint(carsMapPoints) }; var provider = new MemoryProvider(feature); carsLayer = new MemoryLayer { DataSource = provider, Style = new SymbolStyle { Fill = new Brush(new Color(0, 0, 0)), SymbolScale = 0.25 } }; myMapControl.Map.Layers.Add(carsLayer); } else { carsLayer.DataSource = new MemoryProvider( new Feature { Geometry = new MultiPoint(carsMapPoints) }); myMapControl.Refresh(); //carsLayer.ClearCache(); carsLayer.RefreshData(carsLayer.Envelope, 1, true); //.ViewChanged(true, carsLayer.Envelope, 1); } }
private void Map1_MapClick(object sender, SlimGis.MapKit.WinForms.MapMouseEventArgs e) { // We added a ShapefileLayer in the Loaded event, // it's default name is the name of the shapefile. // so here, we could find the layer back by the shapefile name without extension. FeatureLayer featureLayer = Map1.FindLayer <FeatureLayer>("countries-900913"); Feature identifiedFeature = IdentifyHelper.Identify(featureLayer, e.WorldCoordinate, Map1.CurrentScale, Map1.MapUnit).FirstOrDefault(); MemoryLayer dynamicLayer = Map1.FindLayer <MemoryLayer>("Highlight Layer"); if (dynamicLayer == null) { dynamicLayer = new MemoryLayer { Name = "Highlight Layer" }; dynamicLayer.UseRandomStyle(); Map1.AddStaticLayers("HighlightOverlay", dynamicLayer); } dynamicLayer.Features.Clear(); if (identifiedFeature != null) { dynamicLayer.Features.Add(identifiedFeature); } Map1.Overlays["HighlightOverlay"].Refresh(); }
private void Map1_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; Map1.UseOpenStreetMapAsBaseMap(); GeoLine greatCircle = CreateGreatCircle(); MemoryLayer baselineLayer = new MemoryLayer { Name = "BaseLineLayer" }; baselineLayer.Styles.Add(new LineStyle(GeoColors.White, 8)); baselineLayer.Styles.Add(new LineStyle(GeoColor.FromHtml("#88FAB04D"), 4)); baselineLayer.Features.Add(new Feature(greatCircle)); Map1.AddStaticLayers(baselineLayer); Stream airplaneIconStream = Application.GetResourceStream(new Uri("/SlimGis.WpfSamples;component/Images/airplane.png", UriKind.RelativeOrAbsolute)).Stream; MemoryLayer highlightLayer = new MemoryLayer { Name = "HighlightLayer" }; highlightLayer.Styles.Add(new LineStyle(GeoColor.FromHtml("#9903A9F4"), 4)); highlightLayer.Styles.Add(new IconStyle(new GeoImage(airplaneIconStream)) { AspectRatio = 0.6667 }); Map1.AddDynamicLayers("HighlightOverlay", highlightLayer); GeoBound bound = baselineLayer.GetBound(); bound.ScaleUp(25); Map1.ZoomTo(bound); }
public void CopyToAfterRemovingItem() { // arrange var layerCollection = new LayerCollection(); var layer1 = new MemoryLayer(); var layer2 = new MemoryLayer(); layerCollection.Add(layer1); layerCollection.Add(layer2); var size = layerCollection.Count(); var array = new ILayer[size]; layerCollection.Remove(layer1); // act layerCollection.CopyTo(array, 0); // assert Assert.AreEqual(2, array.Length); Assert.NotNull(array[0], "first element not null"); // We have no crash but the seconds element is null. // This might have unpleasant consequences. Assert.Null(array[1], "second element IS null"); }
public void IgnoringDisabledLayers() { // arrange var map = new Map(); map.Viewport.Resolution = 1; map.Viewport.Width = 10; map.Viewport.Height = 10; map.Viewport.Center = new Point(5, 5); var disabledLayer = new MemoryLayer { Name = "TestLayer", DataSource = new MemoryProvider(CreatePolygon(1, 3)), Enabled = false }; map.Layers.Add(disabledLayer); map.InfoLayers.Add(disabledLayer); var screenPositionHit = map.Viewport.WorldToScreen(2, 2); // act var argsHit = InfoHelper.GetInfoEventArgs(map.Viewport, screenPositionHit, map.InfoLayers, null); // assert; Assert.IsTrue(argsHit.Feature == null); Assert.IsTrue(argsHit.Layer == null); Assert.IsTrue(argsHit.WorldPosition.Equals(new Point(2, 2))); }
public void MoveAfterIndex() { // arrange var layerCollection = new LayerCollection(); var layer1 = new MemoryLayer() { Name = "Layer1" }; var layer2 = new MemoryLayer() { Name = "Layer2" }; var layer3 = new MemoryLayer() { Name = "Layer3" }; layerCollection.Add(layer1); layerCollection.Add(layer2); layerCollection.Add(layer3); // act layerCollection.Move(3, layer1); // assert var list = layerCollection.ToList(); Assert.AreEqual(3, list.Count()); Assert.NotNull(list[0]); Assert.AreEqual("Layer2", list[0].Name); Assert.NotNull(list[1]); Assert.AreEqual("Layer3", list[1].Name); Assert.NotNull(list[2]); Assert.AreEqual("Layer1", list[2].Name); }
public void InsertAfterRemoving() { // arrange var layerCollection = new LayerCollection(); var layer1 = new MemoryLayer() { Name = "Layer1" }; var layer2 = new MemoryLayer() { Name = "Layer2" }; var layer3 = new MemoryLayer() { Name = "Layer3" }; layerCollection.Add(layer1); layerCollection.Add(layer2); layerCollection.Remove(layer1); // act layerCollection.Insert(1, layer3); // assert var list = layerCollection.ToList(); Assert.AreEqual(2, list.Count()); Assert.NotNull(list[0]); Assert.AreEqual("Layer2", list[0].Name); Assert.NotNull(list[1]); Assert.AreEqual("Layer3", list[1].Name); }
private void Map1_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; Map1.UseOpenStreetMapAsBaseMap(); ShapefileLayer sectionLayer = new ShapefileLayer("SampleData/sections-900913.shp"); sectionLayer.Styles.Add(new FillStyle(GeoColors.Transparent, GeoColor.FromHtml("#99FAB04D"), 1)); Map1.AddStaticLayers("SectionOverlay", sectionLayer); GeoBound sectionBound = sectionLayer.GetBound(); GeoBound queryArea = (GeoBound)sectionBound.Clone(); queryArea.ScaleDown(60); MemoryLayer queryAreaLayer = new MemoryLayer { Name = "QueryAreaLayer" }; queryAreaLayer.Styles.Add(new FillStyle(GeoColors.Transparent, GeoColor.FromHtml("#9900BCD4"), 4)); queryAreaLayer.Features.Add(new Feature(queryArea)); Map1.AddStaticLayers("SectionOverlay", queryAreaLayer); MemoryLayer highlightLayer = new MemoryLayer { Name = "HighlightLayer" }; highlightLayer.Styles.Add(new FillStyle(GeoColor.FromHtml("#66FFFF00"), GeoColors.White)); Map1.AddDynamicLayers("HighlightOverlay", highlightLayer); Map1.ZoomTo(sectionLayer.GetBound()); }
private void Map1_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; Map1.UseOpenStreetMapAsBaseMap(); ShapefileSource dataSource = new ShapefileSource("SampleData/countries-900913.shp"); dataSource.Open(); highlightFeature = dataSource.GetFeatureById("1", RequireColumnsType.None); GeoBound highlightBound = highlightFeature.GetBound(); highlightBoundFeature = new Feature(highlightBound); MemoryLayer highlightLayer = new MemoryLayer() { Name = "HighlightLayer" }; highlightLayer.Features.Add(highlightFeature); highlightLayer.Features.Add(highlightBoundFeature); highlightLayer.Styles.Add(new FillStyle(GeoColor.FromHtml("#55FAB04D"))); highlightLayer.Styles.Add(new LineStyle(GeoColor.FromHtml("#00BCD4"), 4)); Map1.AddStaticLayers("HighlightOverlay", highlightLayer); MemoryLayer resultLayer = new MemoryLayer { Name = "ResultLayer" }; resultLayer.Styles.Add(new FillStyle(GeoColor.FromHtml("#55FAB04D"), GeoColors.White)); Map1.AddDynamicLayers("ResultOverlay", resultLayer); Map1.ZoomTo(highlightFeature); }
public static Map CreateMap() { var assembly = typeof(PolygonSample).GetTypeInfo().Assembly; var image = assembly.GetManifestResourceStream("Mapsui.Tests.Common.Resources.Images.avion_silhouette.png"); _bitmapId = BitmapRegistry.Instance.Register(image); var map = new Map { BackColor = Color.Transparent, Viewport = { Center = new Point(0, 0), Width = 600, Height = 400, Resolution = 63000 } }; var layer = new MemoryLayer { DataSource = CreatePolygonProvider(), Name = "Polygon" }; map.Layers.Add(layer); return(map); }
private async Task MoveLine(MemoryLayer highlightLayer, GeoLine baseline, double percentageRatio, int i, bool reverse = false) { GeoLine line = await Task.Run(() => (GeoLine)baseline.GetSegmentation((float)percentageRatio *i)); highlightLayer.Features.Clear(); if (line != null) { highlightLayer.Features.Add(new Feature(line)); GeoCoordinate currentPoint = line.Coordinates.Last(); highlightLayer.Features.Add(new Feature(new GeoPoint(currentPoint))); if (line.Coordinates.Count > 1) { GeoCoordinate previousPoint = line.Coordinates.ElementAt(line.Coordinates.Count - 2); double angle = Math.Atan2(currentPoint.Y - previousPoint.Y, currentPoint.X - previousPoint.X); float degree = (float)(angle * 180 / Math.PI); if (reverse) { degree = degree + 180; } highlightLayer.Styles.OfType <IconStyle>().First().Rotation = degree; } } Map1.Refresh("HighlightOverlay"); await Task.Run(() => Thread.Sleep(50)); }
private void Map1_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; Map1.UseOpenStreetMapAsBaseMap(); ShapefileSource dataSource = new ShapefileSource("SampleData/countries-900913.shp"); dataSource.Open(); feature1 = dataSource.GetFeatureById("1", RequireColumnsType.None); feature2 = dataSource.GetFeatureById("10", RequireColumnsType.None); MemoryLayer highlightLayer = new MemoryLayer(); highlightLayer.Features.Add(feature1); highlightLayer.Features.Add(feature2); highlightLayer.Styles.Add(new FillStyle(GeoColor.FromHtml("#55FAB04D"))); Map1.AddStaticLayers("HighlightOverlay", highlightLayer); MemoryLayer resultLayer = new MemoryLayer { Name = "ResultLayer" }; resultLayer.Styles.Add(new SymbolStyle(SymbolType.Circle, GeoColor.FromHtml("#99FF5722"), GeoColors.White)); resultLayer.Styles.Add(new LineStyle(GeoColor.FromHtml("#00BCD4"), 4)); Map1.AddDynamicLayers("ResultOverlay", resultLayer); Map1.ZoomTo(GeoBound.CreateToInclude(new[] { feature1, feature2 })); }
private void Map1_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; Map1.UseOpenStreetMapAsBaseMap(); GeoBound bound = new GeoBound(2171997.6512, 8356849.2669, 3515687.9933, 11097616.86); GeoPoint center = bound.GetCentroid(); double x1 = bound.MinX + bound.Width * .25; double y = center.Y; double x2 = bound.MaxX - bound.Width * .25; double radius = bound.Width * 3 / 8; feature1 = new Feature(new GeoEllipse(new GeoPoint(x1, y), radius)); feature2 = new Feature(new GeoEllipse(new GeoPoint(x2, y), radius)); MemoryLayer highlightLayer = new MemoryLayer { Name = "HighlightLayer" }; highlightLayer.Features.Add(feature1); highlightLayer.Features.Add(feature2); highlightLayer.Styles.Add(new FillStyle(GeoColor.FromHtml("#55FAB04D"), GeoColors.White)); Map1.AddStaticLayers("HighlightOverlay", highlightLayer); MemoryLayer resultLayer = new MemoryLayer { Name = "ResultLayer" }; resultLayer.Styles.Add(new FillStyle(GeoColor.FromHtml("#99FF5722"), GeoColors.White)); Map1.AddDynamicLayers("ResultOverlay", resultLayer); Map1.ZoomTo(bound); }
public static Map PointsWithDifferentSymbolTypes() { var map = new Map { Viewport = { Center = new Point(0, 0), Width = 200, Height = 100, Resolution = 0.5 } }; var features = new Features { Utilities.CreateSimplePointFeature(-20, 0, new SymbolStyle { Fill = new Brush { Color = Color.Gray }, Outline = new Pen(Color.Black), SymbolType = SymbolType.Ellipse }), Utilities.CreateSimplePointFeature(20, 0, new SymbolStyle { Fill = new Brush { Color = Color.Gray }, Outline = new Pen(Color.Black), SymbolType = SymbolType.Rectangle }) }; var layer = new MemoryLayer { DataSource = new MemoryProvider(features), LayerName = "Points with different symbol types" }; map.Layers.Add(layer); return(map); }
public void InsertWithNormalConditions() { // arrange var layerCollection = new LayerCollection(); var layer1 = new MemoryLayer() { Name = "Layer1" }; var layer2 = new MemoryLayer() { Name = "Layer2" }; var layer3 = new MemoryLayer() { Name = "Layer3" }; layerCollection.Add(layer1); layerCollection.Add(layer2); // act layerCollection.Insert(1, layer3); // assert var list = layerCollection.ToList(); Assert.AreEqual(3, list.Count()); Assert.NotNull(list[0]); Assert.AreEqual("Layer1", list[0].Name); Assert.NotNull(list[1]); Assert.AreEqual("Layer3", list[1].Name); Assert.NotNull(list[2]); Assert.AreEqual("Layer2", list[2].Name); }
private void UpdateUI() { MemoryLayer layer = selectedObject.transform.root.GetComponent <MemoryLayer>(); GameObject.FindGameObjectWithTag("SelectedLayerText").GetComponent <Text>().text = layer.name; layer.UpdateSizeLabel(); layer.SetSizeSliderPosition(); }
private async Task MovePoint(MemoryLayer highlightLayer, GeoLine baseline, double percentageRatio, int i) { GeoPoint point = await Task.Run(() => baseline.GetPoint((float)percentageRatio *i)); highlightLayer.Features.Clear(); highlightLayer.Features.Add(new Feature(point)); Map1.Refresh("HighlightOverlay"); await Task.Run(() => Thread.Sleep(50)); }
private void Button_Click(object sender, RoutedEventArgs e) { MemoryLayer bufferResultLayer = Map1.FindLayer <MemoryLayer>("BufferResultLayer"); if (bufferResultLayer.Features.Count == 0) { Feature bufferedFeature = new Feature(highlightFeature.Geometry.GetConvexHull()); bufferResultLayer.Features.Add(bufferedFeature); Map1.Refresh("BufferedOverlay"); } }
public IEnumerator CreateLayer() { // get a mock layer MemoryLayer layer = MockLayer(new Vector3(0, 0, 50)); // release for a frame so that start can be called on the layer yield return(null); // check that the memory locations list exists and is empty Assert.AreEqual(0, layer.memoryLocations.Count); }
private void Button_Click(object sender, RoutedEventArgs e) { MemoryLayer resultLayer = Map1.FindLayer <MemoryLayer>("ResultLayer"); if (resultLayer.Features.Count == 0) { Collection <GeoPoint> crossingPoints = highlightFeature.Geometry.GetCrossing(crossLineFeature.Geometry); resultLayer.Features.AddRange(crossingPoints.Select(p => new Feature(p))); Map1.Refresh("ResultOverlay"); } }
private void UpdatePinLayer(Mapsui.Geometries.Point currentNodePoint) { LayerCollection layers = MyMapControl.Map.Layers; if (layers.Count > 1) { layers.Remove(pinLayer); } pinLayer = WalkerPin.CreateWalkerLayer(currentNodePoint); layers.Add(pinLayer); }
public static Map PointsWithBitmapRotatedAndOffset() { var map = new Map { Viewport = { Center = new Point(80, 80), Width = 200, Height = 200, Resolution = 1 } }; var layer = new MemoryLayer { DataSource = Utilities.CreateProviderWithRotatedBitmapSymbols() }; map.Layers.Add(layer); return(map); }
private void Button_Click(object sender, RoutedEventArgs e) { MemoryLayer resultLayer = Map1.FindLayer <MemoryLayer>("ResultLayer"); if (resultLayer.Features.Count == 0) { Geometry intersection = feature1.Geometry.GetIntersection(feature2.Geometry); resultLayer.Features.Add(new Feature(intersection)); Map1.Refresh("ResultOverlay"); } }
private void Button_Click(object sender, RoutedEventArgs e) { MemoryLayer highlightLayer = Map1.FindLayer <MemoryLayer>("HighlightLayer"); highlightLayer.Features.Clear(); Button button = (Button)sender; switch (button.Content.ToString()) { case "Polygon": highlightLayer.Features.Add(new Feature(CreatePolygon())); break; case "Polygon with Hole": highlightLayer.Features.Add(new Feature(CreatePolygonWithHole())); break; case "Ellipse": highlightLayer.Features.Add(new Feature(CreateEllipse())); break; case "Multi-Polygon": highlightLayer.Features.Add(new Feature(CreateMultiPolygon())); break; case "Rectangle": highlightLayer.Features.Add(new Feature(CreateRectangle())); break; case "Point": highlightLayer.Features.Add(new Feature(CreatePoint())); break; case "Multi-Point": highlightLayer.Features.Add(new Feature(CreateMultiPoint())); break; case "Line": highlightLayer.Features.Add(new Feature(CreateLine())); break; case "Multi-Line": highlightLayer.Features.Add(new Feature(CreateMultiLine())); break; default: break; } Map1.Refresh("HighlightOverlay"); }
private void Button_Click(object sender, RoutedEventArgs e) { MemoryLayer resultLayer = Map1.FindLayer <MemoryLayer>("ResultLayer"); if (resultLayer.Features.Count == 0) { Map1.FindLayer <MemoryLayer>("HighlightLayer").Features.Clear(); Geometry difference = highlightBoundFeature.Geometry.GetDifference(highlightFeature.Geometry); resultLayer.Features.Add(new Feature(difference)); Map1.Refresh("HighlightOverlay", "ResultOverlay"); } }
private static ILayer CreatePolygonLayer() { var layer = new MemoryLayer { Name = PolygonLayerName }; var provider = new MemoryProvider(); provider.Features.Add(CreatePolygonFeature()); provider.Features.Add(CreateMultiPolygonFeature()); layer.DataSource = provider; layer.Style = null; return(layer); }
private void Button_Click(object sender, RoutedEventArgs e) { MemoryLayer resultLayer = Map1.FindLayer <MemoryLayer>("ResultLayer"); if (resultLayer.Features.Count == 0) { Map1.FindLayer <MemoryLayer>("HighlightLayer").Features.Clear(); GeoAreaBase unionResult = ((GeoAreaBase)feature1.Geometry).Union((GeoAreaBase)feature2.Geometry); resultLayer.Features.Add(new Feature(unionResult)); Map1.Refresh("HighlightOverlay", "ResultOverlay"); } }