예제 #1
0
        public void Execute_ForKnownKey_ReturnsJpegFileFromImageGenerator()
        {
            _fakeGenerator.Returns = new byte[] { 1, 2, 3, 4 };
            var request = ExpectedRequests.MapRequestForKey(_knownLocations.First().Key);

            var response = _sut.Execute(request, _logger).AsFile();

            Assert.That(response.FileContents, Is.EqualTo(_fakeGenerator.Returns));
        }
예제 #2
0
        public void DrawWayPoints()
        {
            ClearWayPoints();
            foreach (var loc in route)
            {
                var pin = new Pushpin();
                pin.Location   = loc;
                pin.MouseDown += Pin_MouseDown;
                pin.MouseUp   += Pin_MouseUp;
                pins.Add(pin);

                // draw the tack on map
                Color pinColor = loc == route.First() ? startColor : loc == route.Last() ? endColor : routeColor;
                pin.Background = new SolidColorBrush(pinColor);
                map.Children.Add(pin);
            }

            // draw the line of the route
            polyline                 = new MapPolyline();
            polyline.Locations       = snappedRoute ?? route;
            polyline.Stroke          = new System.Windows.Media.SolidColorBrush(routeColor);
            polyline.StrokeThickness = 3;
            polyline.Opacity         = 0.7;

            map.Children.Add(polyline);
        }
        public TestMapWindow()
        {
            InitializeComponent();

            //主路数据
            int mainLocCount = 60;
            Collection <Location> collectionMain = new Collection <Location>();

            for (int i = 0; i < mainLocCount; i++)
            {
                collectionMain.Add(new Location()
                {
                    Index = i
                });
            }
            for (int i = 0; i < mainLocCount; i++)
            {
                int      forwardIndex  = i + 1 > mainLocCount - 1 ? 0 : i + 1;
                int      backwardIndex = i - 1 < 0 ? mainLocCount - 1 : i - 1;
                Location forward       = collectionMain.First(p => p.Index == forwardIndex);
                Location backward      = collectionMain.First(p => p.Index == backwardIndex);
                collectionMain.First(p => p.Index == i).RoadInfos.Add(new RoadInfo()
                {
                    RoadIndex        = 0,
                    ForwardLocation  = forward,
                    BackwardLocation = backward
                });
            }
            LocationCollection = collectionMain;
            //主路图形绑定
            for (int i = 0; i < mainLocCount; i++)
            {
                LocationControl locCtrl = new LocationControl();
                Binding         binding = new Binding("Index");
                binding.Source = LocationCollection[i];
                locCtrl.SetBinding(LocationControl.LocationIndexProperty, binding);
                if (i < 20)
                {
                    locCtrl.SetValue(Canvas.LeftProperty, 200.0 + i * 100.0);
                    locCtrl.SetValue(Canvas.TopProperty, 200.0);
                }
                else if (i < 30)
                {
                    locCtrl.SetValue(Canvas.LeftProperty, 2100.0);
                    locCtrl.SetValue(Canvas.TopProperty, 300.0 + (i - 20) * 100.0);
                }
                else if (i < 50)
                {
                    locCtrl.SetValue(Canvas.LeftProperty, 2100.0 - (i - 30) * 100.0);
                    locCtrl.SetValue(Canvas.TopProperty, 1300.0);
                }
                else
                {
                    locCtrl.SetValue(Canvas.LeftProperty, 200.0);
                    locCtrl.SetValue(Canvas.TopProperty, 1200.0 - (i - 50) * 100.0);
                }
                canvas.Children.Add(locCtrl);
            }

            //支路数据
            int subLocCount = 10;
            Collection <Location> collectionSub = new Collection <Location>();

            for (int i = mainLocCount; i < mainLocCount + subLocCount; i++)
            {
                collectionSub.Add(new Location()
                {
                    Index = i
                });
            }
            foreach (var item in collectionSub)
            {
                LocationCollection.Add(item);
            }
            for (int i = mainLocCount; i < mainLocCount + subLocCount; i++)
            {
                int      forwardIndex  = i + 1 > mainLocCount + subLocCount - 1 ? 39 : i + 1; //三岔口39
                int      backwardIndex = i - 1 < mainLocCount ? 10 : i - 1;                   //三岔口10
                Location forward       = LocationCollection.First(p => p.Index == forwardIndex);
                Location backward      = LocationCollection.First(p => p.Index == backwardIndex);
                collectionSub.First(p => p.Index == i).RoadInfos.Add(new RoadInfo()
                {
                    RoadIndex        = 1,//支线
                    ForwardLocation  = forward,
                    BackwardLocation = backward
                });
            }
            //三岔路特殊处理
            LocationCollection[10].RoadInfos.Add(new RoadInfo()
            {
                RoadIndex        = 1,//支线
                ForwardLocation  = collectionSub[0],
                BackwardLocation = null
            });
            LocationCollection[39].RoadInfos.Add(new RoadInfo()
            {
                RoadIndex        = 1,//支线
                ForwardLocation  = null,
                BackwardLocation = collectionSub[subLocCount - 1]
            });

            //支路图形绑定
            for (int i = 0; i < subLocCount; i++)
            {
                LocationControl locCtrl = new LocationControl();
                Binding         binding = new Binding("Index");
                binding.Source = collectionSub[i];
                locCtrl.SetBinding(LocationControl.LocationIndexProperty, binding);
                locCtrl.SetValue(Canvas.LeftProperty, 1200.0);
                locCtrl.SetValue(Canvas.TopProperty, 300.0 + i * 100.0);
                canvas.Children.Add(locCtrl);
            }
        }