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(); 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); }
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(); 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); }
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); }
private void Map1_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; Map1.AddStaticLayers("OpenStreetMap", new OpenStreetMapLayer()); GeoBound currentBound = new GeoBound(1534877.2788, 5720521.3921, 1536797.864, 5721952.8921); Map1.ZoomTo(currentBound); }
public async Task <IEnumerable <string> > SuggestAsync( string part, LangType langType, GeoBound geoBound, bool rspn = false) { string requestUrl = string.Format(RequestUrl, this.StringEncode(part), this.LangTypeToStr(langType)) + base.BuildGeoBound(geoBound, rspn); return(await this.SuggestinRequestInternal(requestUrl)); }
private GeoBound CreateRectangle() { double minX = Map1.CurrentBound.MinX + Map1.CurrentBound.Width * .25; double maxX = Map1.CurrentBound.MinX + Map1.CurrentBound.Width * .75; double minY = Map1.CurrentBound.MinY + Map1.CurrentBound.Height * .25; double maxY = Map1.CurrentBound.MinY + Map1.CurrentBound.Height * .75; GeoBound rect = new GeoBound(minX, minY, maxX, maxY); return(rect); }
private void Map1_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; Map1.UseOpenStreetMapAsBaseMap(); GeoBound bound = (GeoBound)Map1.MaxBound.Clone(); bound.ScaleDown(60); Map1.Behaviors.EditBehavior.EditingFeatures.Add(new Feature(bound)); Map1.ZoomToFullBound(); }
private GeoEllipse CreateEllipse() { GeoBound bound = (GeoBound)Map1.CurrentBound.Clone(); bound.ScaleDown(40); GeoEllipse ellipse = new GeoEllipse(bound); //// use this to create ellipse by center, width and height. //GeoEllipse ellipse = new GeoEllipse(bound.GetCentroid(), bound.Width, bound.Height); return(ellipse); }
/// <summary> /// Location determination by name, indicating the quantity of objects to return and preference language. /// Allows limit the search or affect the issuance result. /// </summary> /// <param name="location">Name of a geographic location.</param> /// <param name="results">Maximum number of objects to return.</param> /// <param name="lang">Preference language for describing objects.</param> /// <param name="geoBound">Search geographical area, affects to issuance of results.</param> /// <param name="rspn">Allows limit the search (true) or affect the issuance result (false - default).</param> /// <returns>Collection of found locations</returns> public async Task <GeoObjectCollection> GeocodeAsync( string location, short results, LangType lang, GeoBound geoBound, bool rspn = false) { string requestUlr = string.Format(RequestUrl, this.StringEncode(location), results, this.LangTypeToStr(lang)) + this.BuildGeoBound(geoBound, rspn) + (string.IsNullOrEmpty(this.Key) ? string.Empty : "&key=" + this.Key); return(new GeoObjectCollection(await this.DownloadStringAsync(requestUlr))); }
/// <summary> /// Handles the Loaded event of the Map1 control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RoutedEventArgs"/> instance containing the event data.</param> private void Map1_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; Map1.UseOpenStreetMapAsBaseMap(); ShapefileLayer lineLayer = new ShapefileLayer("SampleData/streets-900913.shp"); lineLayer.Styles.Add(new LineStyle(GeoColor.FromHtml("#55FAB04D"), 1)); Map1.AddStaticLayers("LineOverlay", lineLayer); GeoBound bound = lineLayer.GetBound(); bound.ScaleDown(90); Map1.ZoomTo(bound); }
private void Map1_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; Map1.AddStaticLayers("OpenStreetMap", new OpenStreetMapLayer()); GeoBound currentBound = new GeoBound(1534877.2788, 5720521.3921, 1536797.864, 5721952.8921); BitmapImage sourceImage = new BitmapImage(new Uri("pack://application:,,,/SlimGis.WpfSamples;component/Images/6x9_icons_50.png", UriKind.RelativeOrAbsolute)); Random r = new Random(); for (int i = 0; i < 100; i++) { double x = r.Next(1534877, 1536797); double y = r.Next(5720521, 5721952); AddMarker(x, y, GetRandomIcon(r, sourceImage)); } Map1.ZoomTo(currentBound); }
private void Map1_MapSingleClick(object sender, MapClickEventArgs e) { Feature identifiedFeature = IdentifyHelper.Identify(dataLayer, e.WorldCoordinate, Map1.CurrentScale, Map1.MapUnit).FirstOrDefault(); if (identifiedFeature != null) { MemoryLayer highlightLayer = Map1.FindLayer <MemoryLayer>("HighlightLayer"); highlightLayer.Features.Clear(); highlightLayer.Features.Add(identifiedFeature); GeoBound identifiedBound = identifiedFeature.GetBound(); highlightLayer.Features.Add(new Feature(new GeoLine(identifiedBound.GetVertices()))); GeoPoint identifiedCenter = identifiedBound.GetCentroid(); highlightLayer.Features.Add(new Feature(identifiedCenter)); Map1.Refresh("HighlightOverlay"); } }
private Feature CreateLineFeature(GeoBound bound) { GeoLine line = new GeoLine(); double startX = bound.MinX + bound.Width * .15; double endX = bound.MinX + bound.Width * .85; double centerY = bound.GetCentroid().Y; double height = bound.Height * .25; int segmentCount = 30; double segmentHorizontalLength = (endX - startX) / segmentCount; for (int i = 0; i < segmentCount; i++) { double x = startX + segmentHorizontalLength * i; double y = Math.Sin(Math.PI * 2 * i / segmentCount) * height + centerY; line.Coordinates.Add(new GeoCoordinate(x, y)); } return(new Feature(line)); }
private async void wpfMap_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; LayerOverlay baseOverlay = new LayerOverlay(); baseOverlay.Name = "Base Maps"; Map1.Overlays.Add(baseOverlay); OpenStreetMapLayer baseLayer = new OpenStreetMapLayer(); baseOverlay.Layers.Add(baseLayer); routeLine = new GeoLine("LINESTRING(2121735.25 6023143.5,2121641.25 6023344,2121161.25 6023667,2121192.75 6025693,2121255.5 6025818.5,2122127.25 6024946.5,2121986.25 6024802.5,2122262.25 6024536,2122014.5 6024363.5,2122691.75 6023497.5,2121754 6023137)"); routeLength = routeLine.GetLength(GeoUnit.Meter, LengthUnit.Kilometer); MemoryLayer routeLayer = new MemoryLayer(); routeLayer.Styles.Add(new LineStyle(GeoColor.FromRgba(GeoColors.SkyBlue, 180), 10)); routeLayer.Features.Add(new Feature(routeLine)); Map1.AddStaticLayers("Route Line", routeLayer); Marker vehicle = new Marker(); vehicle.DropShadow = false; vehicle.OffsetY = 4; vehicle.RenderTransform = new RotateTransform { CenterX = 17, CenterY = 7, Angle = -90 }; vehicle.ImageSource = new BitmapImage(new Uri("pack://application:,,,/Images/vehicle-red.png", UriKind.RelativeOrAbsolute)); vehicle.Location = routeLine.Coordinates.First(); Map1.Placements.Add(vehicle); GeoBound bound = routeLayer.GetBound(); bound.ScaleUp(40); Map1.ZoomTo(bound); projection = new Proj4Projection(SpatialReferences.GetSphericalMercator(), SpatialReferences.GetWgs84()); UpdateLonLat(new GeoPoint(vehicle.Location)); }
private void WpfMap_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; gpsScene = new GpsScene(Map1.MapUnit); Map1.UseOpenStreetMapAsBaseMap(); var routeLayer = new MemoryLayer(); routeLayer.Styles.Add(new LineStyle(GeoColor.FromRgba(GeoColors.SkyBlue, 180), 10)); Map1.AddStaticLayers("Route Line", routeLayer); var routeDataStream = Application.GetResourceStream(new Uri("pack://application:,,,/Resources/routes.txt")).Stream; var speedRandom = new Random(); using (var streamReader = new StreamReader(routeDataStream)) { var routeData = streamReader.ReadToEnd().Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < routeData.Length; i++) { GeoLine route = new GeoLine(routeData[i]); routeLayer.Features.Add(new Feature(route)); Marker vehicle = GetVehicle(i, route); Map1.Placements.Add(vehicle); GpsSprite gpsSprite = new GpsSprite(vehicle); gpsScene.Fps = 60; gpsSprite.SpeedInKph = speedRandom.Next(40, 120); gpsSprite.Route = route; gpsScene.Sprites.Add(gpsSprite); } } GeoBound bound = routeLayer.GetBound(); bound.ScaleUp(40); Map1.ZoomTo(bound); }
private void Map1_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeoUnit.Meter; Map1.UseOpenStreetMapAsBaseMap(); GeoBound currentBound = new GeoBound(2171997.6512, 8356849.2669, 3515687.9933, 11097616.86); 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(CreateLineFeature(currentBound)); Map1.AddStaticLayers(baselineLayer); MemoryLayer highlightLayer = new MemoryLayer { Name = "HighlightLayer" }; highlightLayer.Styles.Add(new LineStyle(GeoColor.FromHtml("#9903A9F4"), 4)); Map1.AddDynamicLayers("HighlightOverlay", highlightLayer); Map1.ZoomTo(currentBound); }
protected string BuildGeoBound(GeoBound geoBound, bool rspn = false) { return ($"&bbox={geoBound.LowerCorner.Longitude},{geoBound.LowerCorner.Latitude}~{geoBound.UpperCorner.Longitude},{geoBound.UpperCorner.Latitude}&rspn={(rspn ? 1 : 0)}"); }