예제 #1
0
        public async void Initialize()
        {
            // initialize base map (for xServer internet)
            formsMap1.XMapUrl         = "https://xmap-eu-n-test.cloud.ptvgroup.com/xmap/ws/XMap";
            formsMap1.XMapCredentials = token;

            // add a new Shape Layer
            var layer = new ShapeLayer("MyShapes");

            formsMap1.Layers.Add(layer);

            var startPoint = new Point(7.10052, 50.73117);
            var destPoint  = new Point(9.99337, 53.54897);

            // set map view
            formsMap1.SetEnvelope(new MapRectangle(new[] { startPoint, destPoint }).Inflate(1.25));

            // create start marker
            var startMarker = new Truck
            {
                Color   = Colors.Blue,
                Width   = 50,
                ToolTip = "Start"
            };

            // set position and add to map
            ShapeCanvas.SetLocation(startMarker, startPoint);
            ShapeCanvas.SetZIndex(startMarker, 10);
            layer.Shapes.Add(startMarker);

            // create destination marker
            var destMarker = new Pyramid
            {
                Color   = Colors.Green,
                Width   = 50,
                Height  = 50,
                ToolTip = "Destination",
            };

            // set position and add to map
            ShapeCanvas.SetLocation(destMarker, destPoint);
            ShapeCanvas.SetZIndex(destMarker, 10);
            layer.Shapes.Add(destMarker);

            // calculate route, non-blocking
            var route = await Task.Run(() => CalcRoute(startPoint.Y, startPoint.X, destPoint.Y, destPoint.X));

            // display route
            SetRoute(route, layer, Colors.Blue, "Route");
        }