Exemplo n.º 1
0
        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 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));
        }
Exemplo n.º 3
0
        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);
        }