Beispiel #1
0
    private void ShowSampleItems_Click(object sender, EventArgs e) {
      // create some sample items;

      MyMap.MapElements.Clear();
      MyMap.Layers.Clear();

      var bounds = new List<LocationRectangle>();
      foreach (var area in DataManager.SampleAreas) {
        var shape = new MapPolygon();
        foreach (var parts in area.Split(' ').Select(cord => cord.Split(','))) {
          shape.Path.Add(new GeoCoordinate(double.Parse(parts[1], ci), double.Parse(parts[0], ci)));
        }

        shape.StrokeThickness = 3;
        shape.StrokeColor = Colors.Blue;
        shape.FillColor = Color.FromArgb((byte)0x20, shape.StrokeColor.R, shape.StrokeColor.G, shape.StrokeColor.B);
        bounds.Add(LocationRectangle.CreateBoundingRectangle(shape.Path));
        MyMap.MapElements.Add(shape);
      }

      var rect = new LocationRectangle(bounds.Max(b => b.North), bounds.Min(b => b.West), bounds.Min(b => b.South), bounds.Max(b => b.East));
      MyMap.SetView(rect);

      // show all Items
      var itemsLayer = new MapLayer();
      foreach (var item in DataManager.SampleItems) {
        DrawItem(item, "Ulm", itemsLayer);
      }

      MyMap.Layers.Add(itemsLayer);
    }
Beispiel #2
0
        public override void AddPinsToLayer()
        {
            foreach (PointOfInterest poi in Points)
            {
                MapPolygon polygon = new MapPolygon();
                polygon.Fill = new SolidColorBrush(_Colors[colorIndex++ % _Colors.Length]); 
                polygon.Opacity = 0.25;
                
                LocationCollection locCol = new LocationCollection();

                foreach( string line in  poi.Coordinates.Split('\n') )
                {
                    if (!string.IsNullOrEmpty(line))
                    {
                        string[] vals = line.Split(',');
                        locCol.Add(
                            new Location()
                            {
                                Latitude = double.Parse(vals[1]),
                                Longitude = double.Parse(vals[0]),
                                Altitude = 0
                            });
                    }
                }
                polygon.Locations = locCol;
                MapLayer.Children.Add(polygon);
            }

        }
Beispiel #3
0
        public void AddPath(LocationCollection polyPoints, SolidColorBrush brush, PathDirectionType direction)
        {
            MapPolygon poly = new MapPolygon();
            poly.Opacity = 0.8;
            poly.StrokeThickness = 3;
            poly.Stroke = brush;
            poly.Locations = polyPoints;
            Children.Add(poly);

            int numPoints = 1;
            while (numPoints * 10 < polyPoints.Count)
                numPoints *= 2;

            for (int i = 0; i < numPoints; i++)
            {
                int j = i * (polyPoints.Count / numPoints);

                if (j < polyPoints.Count)
                {
                    Location loc = polyPoints[j];

                    BountyPushpin pin = new BountyPushpin();
                    pin.ToolTip = string.Format("{0} ({1}Path)", BountyName,
                            (direction == PathDirectionType.Invalid ? string.Empty : Enum.GetName(typeof(PathDirectionType), direction) + " "));
                    pin.PopupContent = new PopupContentFactory()
                            .AppendWikiLink(BountyName)
                            .AppendDulfyLink(BountyName)
                            .Content;
                    pin.Location = loc;
                    Children.Add(pin);
                }
            }
        }
        public void AddPolygon(SurfaceWindow1 mapwindow)
        {
            MapPolygon NewPolygon = new MapPolygon();

            NewPolygon.Locations = new LocationCollection();
            //NewPolygon.Locations = GMPoint.PointsList;
            ConvertPointLocations(NewPolygon, GMPoint.MapPoints);

            NewPolygon.Fill = new SolidColorBrush(Colors.Maroon);
            NewPolygon.Stroke = new SolidColorBrush(Colors.Gold);
            NewPolygon.StrokeThickness = 2;
            NewPolygon.Opacity = 0.8;
            mapwindow.PolygonLayer.Children.Add(NewPolygon);

            MapPolygons.Add(NewPolygon);
            NewPolygon.Name = "MapPoly" + MapPolygons.Count.ToString();
            NewPolygon.TouchDown += new EventHandler<TouchEventArgs>(Polygon_TouchDown);
            /*
             * this is where we are trying to make it so that we can pass in SurfaceWindow1 so that we can make the selected Polygon show the points it is made from.
             * right now the polygon is drawn from plotted points, then the points are erased, since they no longer have a purpose to be there.
             * see if statement inside Polygon_TouchDown Method for more detail
             * until this error is fixed the Polygon_Touchdown methods does nothing so the user can NOT select a polygon.
             */
            //NewPolygon.TouchDown += new EventHandler(void Polygon_TouchDown(mapwindow, this, ));
            GMPoint.MapPoints = new ArrayList();
        }
Beispiel #5
0
        protected override void OnElementChanged(ElementChangedEventArgs<Map> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement != null)
            {
               // Unsubscribe
            }

            if (e.NewElement != null)
            {
                var formsMap = (CustomMap)e.NewElement;
                var nativeMap = Control as MapControl;

                var coordinates = new List<BasicGeoposition>();
                foreach (var position in formsMap.ShapeCoordinates)
                {
                    coordinates.Add(new BasicGeoposition() { Latitude = position.Latitude, Longitude = position.Longitude });
                }

                var polygon = new MapPolygon();
                polygon.FillColor = Windows.UI.Color.FromArgb(128, 255, 0, 0);
                polygon.StrokeColor = Windows.UI.Color.FromArgb(128, 0, 0, 255);
                polygon.StrokeThickness = 5;
                polygon.Path = new Geopath(coordinates);
                nativeMap.MapElements.Add(polygon);
            }
        }
        public void SetTreePins(List<Tree> trees, string name)
        {
            map.Children.Clear();

            foreach (Tree tree in trees)
            {
                MapPolygon point = new MapPolygon();
                point.Stroke = new SolidColorBrush(Colors.White);
                point.Fill = new SolidColorBrush(Colors.Green);
                point.Opacity = 0.7f;
                Location location1 = new Location() { Latitude = tree.Coordinates.X - 0.0001, Longitude = tree.Coordinates.Y - 0.00006 };
                Location location2 = new Location() { Latitude = tree.Coordinates.X + 0.0001, Longitude = tree.Coordinates.Y - 0.00006 };
                Location location3 = new Location() { Latitude = tree.Coordinates.X + 0.0001, Longitude = tree.Coordinates.Y + 0.00006 };
                Location location4 = new Location() { Latitude = tree.Coordinates.X - 0.0001, Longitude = tree.Coordinates.Y + 0.00006 };
                LocationCollection locations = new LocationCollection();
                locations.Add(location1);
                locations.Add(location2);
                locations.Add(location3);
                locations.Add(location4);
                point.Locations = locations;

                map.Children.Add(point);

                /*
                Pushpin pin = new Pushpin();
                pin.Location = new GeoCoordinate(tree.Coordinates.X, tree.Coordinates.Y);
                pin.Content = name;
                map.Children.Add(pin);
                 * */
            }

            NavigationService.GoBack();
        }
 public static void DrawMapPolygon(MapPolygon mapPolygon, DrawColor color) {
     if (mapPolygon.Positions.Count <= 1) return;
     for (int i = 0; i < mapPolygon.Positions.Count - 1; i++) {
         DrawLine(DrawPlaces.Map, mapPolygon.Positions[i].X, mapPolygon.Positions[i].Y, mapPolygon.Positions[i + 1].X, mapPolygon.Positions[i + 1].Y, color);
     }
     Position lastPoint = mapPolygon.Positions[mapPolygon.Positions.Count - 1];
     Position firstPoint = mapPolygon.Positions[0];
     DrawLine(DrawPlaces.Map, firstPoint.X, firstPoint.Y,  lastPoint.X, lastPoint.Y, color);
 }
Beispiel #8
0
 public MapPolygon getPolygon()
 {
     MapPolygon ret = new MapPolygon
     {
         StrokeThickness = 3,
         StrokeDashed = true,
         ZIndex = 1,
         FillColor = Utils.ColorUtils.GetColorFromHex("#99424242"),
         StrokeColor = Utils.ColorUtils.GetColorFromHex("#FF424242"),
         Path = new Geopath(PositionList)
     };
     return ret;
 }
Beispiel #9
0
        public Baragan(Map m, Canvas c, Canvas md, MapLayers mapl, List<bing.ServiceReference1.ProceduraRealJudet_Result> lista, bool login)
        {
            i = login;
            this.md = md;
            this.m = m;
            this.mapl = mapl;
            this.lista = lista;
            for (int j = 0; j < lista.Count; j++)
            {
                if (lista[j].ID == 10)
                {
                    reg1lista = j;
                }
                if (lista[j].ID == 11)
                {
                    reg2lista = j;
                }
                if (lista[j].ID == 12)
                {
                    reg3lista = j;
                }
                if (lista[j].ID == 13)
                {
                    reg4lista = j;
                }
            }
            dt = new DispatcherTimer();
            MPBaraganRegiune1 = new MapPolygon();
            MPBaraganRegiune2 = new MapPolygon();
            MPBaraganRegiune3 = new MapPolygon();
            MPBaraganRegiune4 = new MapPolygon();
            MPBaraganRegiune1.MouseEnter += new MouseEventHandler(MPBaraganRegiune1_MouseEnter);
            MPBaraganRegiune1.MouseLeave += new MouseEventHandler(MPBaraganRegiune1_MouseLeave);
            MPBaraganRegiune1.MouseLeftButtonDown += new MouseButtonEventHandler(MPBaraganRegiune1_MouseLeftButtonDown);
            MPBaraganRegiune2.MouseEnter += new MouseEventHandler(MPBaraganRegiune2_MouseEnter);
            MPBaraganRegiune2.MouseLeave += new MouseEventHandler(MPBaraganRegiune2_MouseLeave);
            MPBaraganRegiune2.MouseLeftButtonDown += new MouseButtonEventHandler(MPBaraganRegiune2_MouseLeftButtonDown);
            MPBaraganRegiune3.MouseEnter += new MouseEventHandler(MPBaraganRegiune3_MouseEnter);
            MPBaraganRegiune3.MouseLeave += new MouseEventHandler(MPBaraganRegiune3_MouseLeave);
            MPBaraganRegiune3.MouseLeftButtonDown += new MouseButtonEventHandler(MPBaraganRegiune3_MouseLeftButtonDown);
            MPBaraganRegiune4.MouseEnter += new MouseEventHandler(MPBaraganRegiune4_MouseEnter);
            MPBaraganRegiune4.MouseLeave += new MouseEventHandler(MPBaraganRegiune4_MouseLeave);
            MPBaraganRegiune4.MouseLeftButtonDown += new MouseButtonEventHandler(MPBaraganRegiune4_MouseLeftButtonDown);

            map = m;
            can = c;
            dt = new DispatcherTimer();
            dt.Interval = new TimeSpan(0, 0, 0, 0, 10);
            dt.Tick += new EventHandler(dt_Tick);
        }
        private void CreateButton_Click(object sender, RoutedEventArgs e)
        {
            if (locationCollection.Count > 0)
            {
                //ClearMap();

                MapShapeLayer shapeLayer = new MapShapeLayer();

                MapPolygon polygon = new MapPolygon();
                polygon.FillColor = Windows.UI.Colors.Blue;
                polygon.Locations = locationCollection;
                shapeLayer.Shapes.Add(polygon);
                MyMap.ShapeLayers.Add(shapeLayer);
            }
        }
 public TransitStopIconWrapper(TransitStop stop)
 {
     if (stop.Path == null)
     {
         Element = new MapIcon() { Location = stop.Position.ToGeopoint(), NormalizedAnchorPoint = new Windows.Foundation.Point(0.5, 0.5), CollisionBehaviorDesired = MapElementCollisionBehavior.RemainVisible, ZIndex = 5 };
     }
     else
     {
         Element = new MapPolygon() { Path = new Windows.Devices.Geolocation.Geopath(GooglePolylineConverter.Decode(stop.Path).Select(ll => ll.ToBasicGeoposition())), StrokeColor = Colors.Black, FillColor = Colors.DarkGray, StrokeThickness = 2, ZIndex = 4 };
     }
     AttachedProperties.SetElementType(Element, "TransitStop");
     AttachedProperties.SetElementID(Element, stop.ID);
     Stop = stop;
     SetStopSize();
 }
Beispiel #12
0
        public static MapPolygon DrawCircle(List<BasicGeoposition> points, Color fillColor, Color strokeColor, int strokeThickness = 2, byte alpha = 80)
        {
            fillColor.A = alpha;
            strokeColor.A = alpha;

            var circle = new MapPolygon
            {
                StrokeThickness = strokeThickness,
                FillColor = fillColor,
                StrokeColor = strokeColor,
                Path = new Geopath(points)
            };

            return circle;
        }
        void Map_Loaded(object sender, RoutedEventArgs e)
        {
            // To demonstrate the decomposed tiles, a rectangluar shape is addded.
            shapeLayer = new ShapeLayer("CustomShapes") { Caption = "Custom Shapes", Opacity=.8 };
            Map.Layers.Add(shapeLayer);

            var poly = new MapPolygon
            {
                Points = new PointCollection(new Point[]{new Point(7.9,48.9), new Point(7.9,49.1), new Point(8.1,49.1), new Point(8.1,48.9)}),
                Fill = new SolidColorBrush(Colors.Blue),
                MapStrokeThickness = 3,
                Stroke = new SolidColorBrush(Colors.Black),
            };

            shapeLayer.Shapes.Add(poly);
        }
 private void Military(object sender, RoutedEventArgs e)
 {
     var strokeColor = Colors.DarkBlue;
     var fillColor = Colors.Blue;
     foreach (var dataObject in PointList.GetAreas())
     {
         var shape = new MapPolygon
         {
             StrokeThickness = 3,
             StrokeColor = strokeColor,
             FillColor = fillColor,
             StrokeDashed = false,
             ZIndex = 3,
             Path = new Geopath(dataObject.Points.Select(p => p.Position))
         };
         shape.AddData(dataObject);
         Map.MapElements.Add(shape);
     }
 }
        /// <summary>
        /// This method will draw a blue rectangle around the center of the map
        /// </summary>
        private void mapPolygonAddButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            double centerLatitude = myMap.Center.Position.Latitude;
            double centerLongitude = myMap.Center.Position.Longitude;
            MapPolygon mapPolygon = new MapPolygon();
            mapPolygon.Path = new Geopath(new List<BasicGeoposition>() {
                new BasicGeoposition() {Latitude=centerLatitude+0.0005, Longitude=centerLongitude-0.001 },
                new BasicGeoposition() {Latitude=centerLatitude-0.0005, Longitude=centerLongitude-0.001 },
                new BasicGeoposition() {Latitude=centerLatitude-0.0005, Longitude=centerLongitude+0.001 },
                new BasicGeoposition() {Latitude=centerLatitude+0.0005, Longitude=centerLongitude+0.001 },
            });

            mapPolygon.ZIndex = 1;
            mapPolygon.FillColor = Colors.Red;
            mapPolygon.StrokeColor = Colors.Blue;
            mapPolygon.StrokeThickness = 3;
            mapPolygon.StrokeDashed = false;
            myMap.MapElements.Add(mapPolygon);
        }
Beispiel #16
0
 public void RemovePolygon(MapPolygon poly)
 {
     _pathColors.Remove(poly);
     _pathLayers[poly].Paths.Remove(poly);
     _pathLayers.Remove(poly);
 }
 /// <summary>
 /// Add a circle icon to the map
 /// </summary>
 /// <param name="position">Position of the location</param>
 /// <param name="radius">Radius of the circle</param>
 /// <param name="circleColor">Color of the circle</param>
 private void CreateCircle( BasicGeoposition position, double radius, Color circleColor )
 {
     var circle = new MapPolygon
     {
         FillColor = circleColor,
         StrokeColor = circleColor,
         StrokeDashed = false,
         StrokeThickness = 1,
         Path = new Geopath( CreateGeoCircle( position, radius ) ),
     };
     PlacesMap.MapElements.Add( circle );
 }
Beispiel #18
0
        /// <summary>
        /// Render simple polygon features
        /// </summary>
        /// <param name="shapegeo">simple point feature</param>
        /// <param name="label">attributes for tooltip</param>
        /// <param name="currentLayer">MapLayer to add to</param>
        private void DrawPolygons(string shapegeo, string label, MapLayer currentLayer)
        {
            string[] rings = Regex.Split(shapegeo, "\\)+, \\(+");
            foreach (string ring in rings)
            {
                MapPolygon p = new MapPolygon();
                p.Fill = new SolidColorBrush(MiscFunctions.ColorFromInt(LayerStyle[currentLayer.Name].fill));
                p.Fill.Opacity = 0.25;
                p.Stroke = new SolidColorBrush(MiscFunctions.ColorFromInt(LayerStyle[currentLayer.Name].stroke));
                if (currentLayer.Name.Equals("layerCountries"))
                {
                    p.StrokeThickness = 3;
                }
                else   //statesprovinces and counties
                {
                    p.StrokeThickness = 1;
                }
                p.StrokeLineJoin = PenLineJoin.Bevel;
                LocationCollection locations = new LocationCollection();

                string[] pts = Regex.Split(ring, @",\s+");
                totalPoints += pts.Length;
                foreach (string pt in pts)
                {
                    string[] values = pt.Split(' ');
                    double lon = double.Parse(values[0]);
                    double lat = double.Parse(values[1]);
                    locations.Add(new Location(lat, lon));
                }
                p.Locations = locations;
                p.MouseEnter += polygon_MouseEnter;
                p.MouseLeave += polygon_MouseLeave;

                ToolTipService.SetToolTip(p, AddToolTip(label));
                currentLayer.Children.Add(p);
            }
        }
Beispiel #19
0
        //Ajouter un item
        private void AddItem(Location pinLocation)
        {
            if (POI_Box.IsSelected == true)
            {
                //La position du pin sur la carte
                Pushpin pin = new Pushpin();

                POI TmpPoi = new POI(pinLocation.Latitude, pinLocation.Longitude, "");

                OptPOI text = new OptPOI(TmpPoi);
                text.ShowDialog(); //bloque la page

                pin.Tag = TmpPoi;
                pinLocation.Latitude  = TmpPoi.Latitude;
                pinLocation.Longitude = TmpPoi.Longitude;

                pin.Location = pinLocation;

                //Ajoute le pin a la carte
                map.Children.Add(pin);

                //Ajoute à la liste
                User.Liste.Add(TmpPoi);
                StatBar.Text = "POI added"; //Affichage dans la StatusBar
            }

            if (Polyline_Box.IsSelected == true)
            {
                if (ListeTmp == null)
                {
                    ListeTmp    = new List <Coordonnees>();
                    PolylineTpm = new MapPolyline
                    {
                        Stroke          = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Blue),
                        StrokeThickness = 3,
                        Opacity         = 1,
                        Locations       = new LocationCollection()
                    };
                    map.Children.Add(PolylineTpm);
                }

                ListeTmp.Add(new Coordonnees(pinLocation.Latitude, pinLocation.Longitude));

                PolylineTpm.Locations.Add(new Location(pinLocation.Latitude, pinLocation.Longitude));

                if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
                {
                    Polyline TmpPolyline = new Polyline
                    {
                        Coordonnees = ListeTmp
                    };
                    OptPolyline text = new OptPolyline(TmpPolyline);
                    text.ShowDialog(); //bloque la page

                    //Ajoute à la liste
                    PolylineTpm.StrokeThickness = TmpPolyline.Epaisseur;
                    User.Liste.Add(TmpPolyline);
                    map.Children.Remove(PolylineTpm);
                    PolylineTpm.Stroke = new System.Windows.Media.SolidColorBrush(TmpPolyline.Couleur);
                    map.Children.Add(PolylineTpm);

                    PolylineTpm = null;
                    ListeTmp    = null;
                }
                StatBar.Text = "Polyline added"; //Affichage dans la StatusBar
            }

            if (Polygone_Box.IsSelected == true)
            {
                if (ListeTmp == null)
                {
                    ListeTmp   = new List <Coordonnees>();
                    PolygonTpm = new MapPolygon
                    {
                        Fill            = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.LightBlue),
                        Stroke          = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Blue),
                        StrokeThickness = 3,
                        Opacity         = 0.6,
                        Locations       = new LocationCollection()
                    };
                    map.Children.Add(PolygonTpm);
                }

                ListeTmp.Add(new Coordonnees(pinLocation.Latitude, pinLocation.Longitude));

                PolygonTpm.Locations.Add(new Location(pinLocation.Latitude, pinLocation.Longitude));

                if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
                {
                    Polygon TmpPolygon = new Polygon
                    {
                        Coordonnees = ListeTmp
                    };
                    OptPolygon text = new OptPolygon(TmpPolygon);
                    text.ShowDialog(); //bloque la page

                    //Ajoute à la liste
                    User.Liste.Add(TmpPolygon);
                    map.Children.Remove(PolygonTpm);
                    PolygonTpm.Fill    = new System.Windows.Media.SolidColorBrush(TmpPolygon.CouleurRemplissage);
                    PolygonTpm.Stroke  = new System.Windows.Media.SolidColorBrush(TmpPolygon.CouleurContour);
                    PolygonTpm.Opacity = TmpPolygon.Opacite;
                    map.Children.Add(PolygonTpm);

                    PolygonTpm = null;
                    ListeTmp   = null;
                }
                StatBar.Text = "Polygon added"; //Affichage dans la StatusBar
            }
        }
Beispiel #20
0
        private void initObjet()
        {
            TextBox tmp = null;

            switch (ObjetSelect)
            {
            case "POI":
                //création nouveau pin
                pin               = new Pushpin();
                poiPerso          = new POI();
                poiPerso.ObjetLie = pin;
                break;


            case "Polyline":
                //création nouveau polyline
                polyline                 = new MapPolyline();
                polyline.Stroke          = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red);
                polyline.StrokeThickness = 5;
                polyline.Opacity         = 0.7;
                polyline.Locations       = new LocationCollection();
                polylinePerso            = new Polyline();
                polylinePerso.ObjetLie   = polyline;

                //ajout dans la liste et sur la map
                Map.Children.Add(polyline);
                MyPersonalMap.CollectionObjets.Add(polylinePerso);

                //ajout dans la liste visuelle
                tmp      = new TextBox();
                tmp.Text = "...";
                stackDesc.Children.Add(tmp);
                ListTextBox.Add(tmp);

                tmp      = new TextBox();
                tmp.Text = "polyline";
                stackType.Children.Add(tmp);
                ListTextBox.Add(tmp);
                break;

            case "Polygon":
                //création nouvel objet MapPolygon
                polygon                 = new MapPolygon();
                polygon.Fill            = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Blue);
                polygon.Stroke          = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Green);
                polygon.StrokeThickness = 5;
                polygon.Opacity         = 0.7;
                polygon.Locations       = new LocationCollection();
                polygonPerso            = new Polygon();
                polygonPerso.ObjetLie   = polygon;

                //ajout dans la liste et sur la map
                Map.Children.Add(polygon);
                MyPersonalMap.CollectionObjets.Add(polygonPerso);

                //ajout dans la liste visuelle
                tmp      = new TextBox();
                tmp.Text = "...";
                stackDesc.Children.Add(tmp);
                ListTextBox.Add(tmp);

                tmp      = new TextBox();
                tmp.Text = "polygon";
                stackType.Children.Add(tmp);
                ListTextBox.Add(tmp);
                break;

            default: break;
            }
        }
Beispiel #21
0
        /// <summary>
        /// Return result of XAML Service call
        /// Render geometry to layer
        /// </summary>
        /// <remarks>
        /// if result is greater than recordLimit show a message to reduce area of interest
        /// </remarks>
        private void XAMLService_GetSQLDataXAMLCompleted(object sender, GetSQLDataXAMLCompletedEventArgs e)
        {
            string layer = e.UserState.ToString();
            if (e.Error == null)
            {
                int resultCnt = e.Result.OutputFields.Count;
                if (resultCnt > 0)
                {
                    if (resultCnt < recordLimit)
                    {
                        totalFeatures += e.Result.OutputFields.Count;
                        totalByteSize += e.Result.XAML.Length;
                        queryTime = e.Result.QueryTime;
                        totalPoints += e.Result.totalPoints;
                        renderStart = DateTime.Now;
                        MapLayer currentLayer = (MapLayer)MainMap.FindName(layer);
                        MapLayer newLayer = (MapLayer)XamlReader.Load(e.Result.XAML);
                        currentLayer.Children.Add(newLayer);
                       
                        foreach (XAMLServiceReference.XAMLFields shp in e.Result.OutputFields)
                        {
                            UIElement el = (UIElement)newLayer.FindName(shp.ID);
                            if (el != null)
                            {

                                el.MouseEnter += polygon_MouseEnter;
                                el.MouseLeave += polygon_MouseLeave;

                                StringBuilder label = new StringBuilder("ID = " + shp.ID + "\n");
                                foreach (KeyValuePair<string, string> field in shp.Fields)
                                {
                                    label.Append(field.Key + ":" + field.Value + "\n");
                                }
                               
                                ToolTip tt =  AddToolTip(label.ToString());
                                ToolTipService.SetToolTip(el, tt);

                                if (el.GetType().Equals(typeof(Pushpin)))
                                {
                                    Pushpin p = (Pushpin)el;
                                    p.PositionOrigin = PositionOrigin.BottomCenter;
                                    p.Background = new SolidColorBrush(MiscFunctions.ColorFromInt(LayerStyle[layer].fill));
                                    p.Foreground = new SolidColorBrush(Colors.Black);
                                    p.FontSize = 8;
                                }

                                if (el.GetType().Equals(typeof(MapLayer)))
                                {
                                    MapLayer p = (MapLayer)el;
                                    foreach (MapPolygon mp in p.Children)
                                    {
                                        mp.Fill = new SolidColorBrush(MiscFunctions.ColorFromInt(LayerStyle[layer].fill));
                                        mp.Stroke = new SolidColorBrush(MiscFunctions.ColorFromInt(LayerStyle[layer].stroke));
                                        mp.Opacity = LayerStyle[layer].opacity;
                                    }
                                }

                                if (el.GetType().Equals(typeof(MapPolyline)))
                                {
                                    MapPolyline p = (MapPolyline)el;
                                    p.Stroke = new SolidColorBrush(MiscFunctions.ColorFromInt(LayerStyle[layer].stroke));
                                    p.StrokeThickness = 2;
                                    p.StrokeMiterLimit = 0;
                                }
                                if (el.GetType().Equals(typeof(MapPolygon)))
                                {
                                    MapPolygon p = (MapPolygon)el;
                                    p.Stroke = new SolidColorBrush(MiscFunctions.ColorFromInt(LayerStyle[layer].stroke));
                                    p.Fill = new SolidColorBrush(MiscFunctions.ColorFromInt(LayerStyle[layer].fill));
                                    p.Opacity = LayerStyle[layer].opacity;
                                }
                            }
                        }
                        renderStop = DateTime.Now;
                    }
                    else
                    {
                        ShowMessage("Too many records for Vector display, " + resultCnt + ". Try a smaller area of interest.");
                    }
                }
            }
            else
            {
                ShowMessage("Error occurred while loading layer from database:" + e.Error.Message);
            }
            // if this is the last layer call cleanup loading and allow menu interaction
            if (--layerCnt == 0)
            {
                SidePanelBorder.IsHitTestVisible = true;
                loaderStop();
            }
            //update metrics
            ((TextBlock)metrics.FindName("features")).Text = totalFeatures.ToString();
            ((TextBlock)metrics.FindName("points")).Text = totalPoints.ToString();
            ((TextBlock)metrics.FindName("bytesize")).Text = totalByteSize.ToString();
        }
 private void DeselectAll()
 {
     this.SelectedPolygon = new MapPolygon();
     this.SelectedPolygon = null;
     MapPolygon Dummy = new MapPolygon();
     UpdateColors(Dummy);
 }
        void rsc_QueryRealRoadsCompleted(object sender, QueryRealRoadsCompletedEventArgs e)
        {
            MapLayer layer   = (MapLayer)this.ctlMap.FindName("realroads");
            var      builder = new StringBuilder();

            if (e.Error == null)
            {
                Color color = Colors.Blue;
                for (int i = 0; i < e.Result.Count; i++)
                {
                    string[] strArray = e.Result[i].Split(new char[] { ';' });

                    builder.Length = 0;
                    int index = 2;
                    while (index < (strArray.Length - 1))
                    {
                        builder.Append(strArray[index] + ": ");
                        index++;
                    }
                    string[] strArray2 = strArray[strArray.Length - 1].Split(new char[] { ',' });

                    if ((strArray2.Length == 1) && (strArray2[0].Length > 1))
                    {
                    }
                    else
                    {
                        LocationCollection locations;
                        Location           location2;

                        if (strArray2[0].Equals(strArray2[strArray2.Length - 1]))
                        {
                            var polygon = new MapPolygon
                            {
                                Stroke          = new SolidColorBrush(color),
                                StrokeThickness = 0.5,
                                Fill            = new SolidColorBrush(color),
                                Opacity         = 0.75
                            };
                            locations = new LocationCollection();
                            index     = 0;
                            while (index < strArray2.Length)
                            {
                                if (strArray2[index].IndexOf(" ") != -1)
                                {
                                    location2 = new Location(double.Parse(strArray2[index].Split(new char[] { ' ' })[0]),
                                                             double.Parse(strArray2[index].Split(new char[] { ' ' })[1]));
                                    locations.Add(location2);
                                }
                                index++;
                            }
                            polygon.Locations = locations;
                            ToolTipService.SetToolTip(polygon, builder.ToString());
                            layer.Children.Add(polygon);
                        }
                        else
                        {
                            var polyline = new MapPolyline {
                                Stroke = new SolidColorBrush(color), StrokeThickness = 6.0
                            };
                            var doubles = new DoubleCollection {
                                3.0, 3.0
                            };
                            polyline.StrokeDashArray = doubles;
                            locations = new LocationCollection();

                            for (index = strArray2.Length - 1; index >= 0; index--)
                            {
                                location2 = new Location(double.Parse(strArray2[index].Split(new char[] { ' ' })[0]),
                                                         double.Parse(strArray2[index].Split(new char[] { ' ' })[1]));

                                locations.Add(location2);
                            }

                            polyline.Locations = locations;
                            ToolTipService.SetToolTip(polyline, builder.ToString());

                            layer.Children.Add(polyline);
                        }
                    }
                }
            }
        }
        void rsc_GetRoutingCompleted(object sender, GetRoutingCompletedEventArgs e)
        {
            carloc.Clear();
            cari = 0;
            MapLayer layer = (MapLayer)this.ctlMap.FindName("routing");

            layer.Children.Clear();
            var builder = new StringBuilder();

            if (e.Error == null)
            {
                Color color = Colors.Blue;
                for (int i = 0; i < e.Result.Count; i++)
                {
                    string[] strArray = e.Result[i].Split(new char[] { ';' });


                    builder.Length = 0;
                    int index = 2;
                    while (index < (strArray.Length - 1))
                    {
                        builder.Append(strArray[index] + ": ");
                        index++;
                    }
                    string[] strArray2      = strArray[strArray.Length - 1].Split(new char[] { ',' });
                    string[] strArrayPoints = strArray[strArray.Length - 2].Split(new char[] { ',' });
                    if ((strArray2.Length == 1) && (strArray2[0].Length > 1))
                    {
                        //Ellipse dependencyObject = new Ellipse();
                        //dependencyObject.Width=10.0;
                        //dependencyObject.Height=(10.0);
                        //dependencyObject.Fill=(new SolidColorBrush(color));
                        //dependencyObject.Opacity=(0.65);
                        //Location location = new Location(double.Parse(strArray2[0].Split(new char[] { ' ' })[0]), double.Parse(strArray2[0].Split(new char[] { ' ' })[1]));
                        //MapLayer.SetPosition(dependencyObject, location);
                        //ToolTipService.SetToolTip(dependencyObject, builder.ToString());
                        //layer.Children.Add(dependencyObject);
                    }
                    else
                    {
                        LocationCollection locations;
                        Location           location2;
                        Location           locPoint;
                        if (strArray2[0].Equals(strArray2[strArray2.Length - 1]))
                        {
                            var polygon = new MapPolygon
                            {
                                Stroke          = new SolidColorBrush(color),
                                StrokeThickness = 2.0,
                                Fill            = new SolidColorBrush(color),
                                Opacity         = 0.75
                            };
                            locations = new LocationCollection();
                            index     = 0;
                            while (index < strArray2.Length)
                            {
                                if (strArray2[index].IndexOf(" ") != -1)
                                {
                                    location2 = new Location(double.Parse(strArray2[index].Split(new char[] { ' ' })[0]), double.Parse(strArray2[index].Split(new char[] { ' ' })[1]));
                                    locations.Add(location2);
                                }
                                index++;
                            }
                            polygon.Locations = locations;
                            ToolTipService.SetToolTip(polygon, builder.ToString());
                            layer.Children.Add(polygon);
                        }
                        else
                        {
                            var polyline = new MapPolyline {
                                Stroke = new SolidColorBrush(color), StrokeThickness = 6.0
                            };
                            var doubles = new DoubleCollection {
                                3.0, 3.0
                            };
                            polyline.StrokeDashArray = doubles;
                            locations = new LocationCollection();

                            for (index = strArray2.Length - 1; index >= 0; index--)
                            {
                                location2 = new Location(double.Parse(strArray2[index].Split(new char[] { ' ' })[0]), double.Parse(strArray2[index].Split(new char[] { ' ' })[1]));

                                locations.Add(location2);
                                if (i == 0)
                                {
                                    carloc.Add(location2);
                                }
                            }



                            //添加坐标到小车轨迹
                            if (i > 0)
                            {
                                Location loc1 = new Location(double.Parse(strArrayPoints[0].Split(new char[] { ' ' })[0]), double.Parse(strArrayPoints[0].Split(new char[] { ' ' })[1]));
                                Location loc2 = new Location(double.Parse(strArrayPoints[strArrayPoints.Length - 1].Split(new char[] { ' ' })[0]), double.Parse(strArrayPoints[strArrayPoints.Length - 1].Split(new char[] { ' ' })[1]));
                                if (IsCloset(carloc.ElementAt(carloc.Count - 1), loc1, loc2))
                                {
                                    for (index = strArrayPoints.Length - 1; index >= 0; index--)
                                    {
                                        var tmoloc1 = new Location(double.Parse(strArrayPoints[index].Split(new char[] { ' ' })[0]), double.Parse(strArrayPoints[index].Split(new char[] { ' ' })[1]));

                                        carloc.Add(tmoloc1);
                                    }
                                }
                                else
                                {
                                    for (index = 0; index < strArrayPoints.Length - 1; index++)
                                    {
                                        var tmoloc = new Location(double.Parse(strArrayPoints[index].Split(new char[] { ' ' })[0]), double.Parse(strArrayPoints[index].Split(new char[] { ' ' })[1]));
                                        carloc.Add(tmoloc);
                                    }
                                }
                            }



                            polyline.Locations = locations;
                            ToolTipService.SetToolTip(polyline, builder.ToString());

                            layer.Children.Add(polyline);
                        }
                    }
                }
            }



            CustomPushpin otmpcp = GetCarByMSID("car", carml);

            for (int i = 0; i < carloc.Count; i++)
            {
                var item = carloc.ElementAt(i);
                if (item.Latitude == otmpcp.Location.Latitude && item.Longitude == otmpcp.Location.Longitude)
                {
                    for (int y = 0; y < i + 1; y++)
                    {
                        if (carloc.Count > y + 1)
                        {
                            carloc.RemoveAt(y);
                        }
                    }
                }
            }
            carloc.RemoveAt(0);
            isgetloc = false;

            timer.Begin();
            //RouteLoadingPanel.Stop();
        }
        public MainPage()
        {
            // Check is the instance doesnt already exist.
            if (Current != null)
            {
                //if there is an instance in the app already present then simply throw an error.
                throw new Exception("Only one MainPage can exist in a App.");
            }

            // This is a static public property that allows downstream pages to get a handle to the MainPage instance
            // in order to call methods that are in this class.
            Current = this;

            // Create the LibraryManager
            new LibraryManager();
            LibraryManager.Current.PropertyChanged += LibraryManager_PropertyChanged;

            MapElements.IsSourceGrouped = false;

            this.InitializeComponent();
            (this.Content as FrameworkElement).DataContext = this;

            ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow);

            SearchBox.DataContext = LibraryManager.Current;

            /////////////////////////////////////////////////////////// NAVIGATION MANAGER INITIALIZATION ////////////////////////////////
            new NavigationManager(ref SheetsFrame, ref scrollViewer);
            NavigationManager.Current.PropertyChanged += NavigationManager_PropertyChanged;

            // Create the SettingsManager
            new SettingsManager(ref MapMain);
            this.RequestedTheme = SettingsManager.Current.AppTheme;
            SettingsManager.Current.PropertyChanged += SettingsManager_PropertyChanged;

            MapInteractionButtons.DataContext = SettingsManager.Current;

            #region TitleBar / StatusBar

            //PC customization
            if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.UI.ViewManagement.ApplicationView"))
            {
                var titleBar = ApplicationView.GetForCurrentView().TitleBar;
                if (titleBar != null)
                {
                    titleBar.BackgroundColor       = Color.FromArgb(255, 30, 30, 30);
                    titleBar.ButtonBackgroundColor = titleBar.BackgroundColor;

                    titleBar.InactiveBackgroundColor       = Colors.Black;
                    titleBar.ButtonInactiveBackgroundColor = titleBar.InactiveBackgroundColor;

                    titleBar.ForegroundColor               = Colors.White;
                    titleBar.InactiveForegroundColor       = titleBar.ForegroundColor;
                    titleBar.ButtonForegroundColor         = titleBar.ForegroundColor;
                    titleBar.ButtonHoverForegroundColor    = titleBar.ForegroundColor;
                    titleBar.ButtonInactiveForegroundColor = titleBar.ForegroundColor;
                    titleBar.ButtonPressedForegroundColor  = titleBar.ForegroundColor;

                    titleBar.ButtonHoverBackgroundColor   = Color.FromArgb(255, 60, 60, 60);
                    titleBar.ButtonPressedBackgroundColor = Color.FromArgb(255, 80, 80, 80);
                }
            }

            // Handle the StatusBar on Mobile
            if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
            {
                statusBar = StatusBar.GetForCurrentView();

                statusBar.BackgroundColor = Colors.Transparent;
                statusBar.ForegroundColor = Colors.Black;
            }

            #endregion

            SearchBox.GotFocus  += SearchBox_GotFocus;
            SearchBox.LostFocus += SearchBox_LostFocus;

            // Center the map to the last position.
            MapMain.Center = new Geopoint(new BasicGeoposition()
            {
                Latitude  = SettingsManager.Current.LastMapCenter.X,
                Longitude = SettingsManager.Current.LastMapCenter.Y
            });
            MapMain.ZoomLevel    = SettingsManager.Current.LastMapZoom;
            MapMain.Heading      = SettingsManager.Current.LastMapHeading;
            MapMain.DesiredPitch = SettingsManager.Current.LastMapPitch;

            MapMain.ZoomInteractionMode   = SettingsManager.Current.ShowZoomControl ? MapInteractionMode.GestureAndControl : MapInteractionMode.GestureOnly;
            MapMain.RotateInteractionMode = SettingsManager.Current.ShowRotationControl ? MapInteractionMode.GestureAndControl : MapInteractionMode.GestureOnly;
            MapMain.TiltInteractionMode   = SettingsManager.Current.ShowTiltControl ? MapInteractionMode.GestureAndControl : MapInteractionMode.GestureOnly;



            GeolocationPin = new MapGeolocationPin();
            MapMain.Children.Add(GeolocationPin);
            MapControl.SetNormalizedAnchorPoint(GeolocationPin, new Point(0.5, 1));
            MapControl.SetLocation(GeolocationPin, SettingsManager.Current.LastGeoPosition.ToGeopoint());

            AccuracyCircle = new MapPolygon()
            {
                FillColor   = Windows.UI.Color.FromArgb(60, 97, 211, 32),
                StrokeColor = Windows.UI.Color.FromArgb(100, 255, 255, 255)
            };

            MapMain.MapElements.Add(AccuracyCircle);

            // Location tracking location and Compass
            StartTracking();


            SetSnapPoints();
        }
Beispiel #26
0
        public IPersistable CreateRIFObject(ObjectType objectType, ref IntermediateFormatReader context)
        {
            IPersistable persistable = null;

            if (objectType == ObjectType.Null)
            {
                return(null);
            }
            IDOwner    parentIDOwner    = this.m_parentIDOwner;
            ReportItem parentReportItem = this.m_parentReportItem;

            switch (objectType)
            {
            case ObjectType.PageSection:
                persistable             = new PageSection(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Line:
                persistable             = new Line(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Rectangle:
                persistable             = new Rectangle(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Image:
                persistable             = new Image(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.TextBox:
                persistable             = new TextBox(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.SubReport:
                persistable             = new SubReport(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Grouping:
                persistable = new Grouping(ConstructionPhase.Deserializing);
                break;

            case ObjectType.Sorting:
                persistable = new Sorting(ConstructionPhase.Deserializing);
                break;

            case ObjectType.ReportItemCollection:
                persistable = new ReportItemCollection();
                break;

            case ObjectType.ReportItemIndexer:
                persistable = (IPersistable)(object)default(ReportItemIndexer);
                break;

            case ObjectType.Style:
                persistable = new Style(ConstructionPhase.Deserializing);
                break;

            case ObjectType.AttributeInfo:
                persistable = new AttributeInfo();
                break;

            case ObjectType.Visibility:
                persistable = new Visibility();
                break;

            case ObjectType.ExpressionInfo:
                persistable = new ExpressionInfo();
                break;

            case ObjectType.ExpressionInfoTypeValuePair:
                persistable = new ExpressionInfoTypeValuePair();
                break;

            case ObjectType.DataAggregateInfo:
                persistable = new DataAggregateInfo();
                break;

            case ObjectType.RunningValueInfo:
                persistable = new RunningValueInfo();
                break;

            case ObjectType.Filter:
                persistable = new Filter();
                break;

            case ObjectType.DataSource:
                persistable = new DataSource();
                break;

            case ObjectType.DataSet:
                persistable = new DataSet();
                break;

            case ObjectType.ReportQuery:
                persistable = new ReportQuery();
                break;

            case ObjectType.Field:
                persistable = new Field();
                break;

            case ObjectType.ParameterValue:
                persistable = new ParameterValue();
                break;

            case ObjectType.ReportSnapshot:
                persistable = new ReportSnapshot();
                break;

            case ObjectType.DocumentMapNode:
                persistable = new DocumentMapNode();
                break;

            case ObjectType.DocumentMapBeginContainer:
                persistable = DocumentMapBeginContainer.Instance;
                break;

            case ObjectType.DocumentMapEndContainer:
                persistable = DocumentMapEndContainer.Instance;
                break;

            case ObjectType.ReportInstance:
                persistable = new ReportInstance();
                break;

            case ObjectType.ParameterInfo:
                persistable = new ParameterInfo();
                break;

            case ObjectType.ValidValue:
                persistable = new ValidValue();
                break;

            case ObjectType.ParameterDataSource:
                persistable = new ParameterDataSource();
                break;

            case ObjectType.ParameterDef:
                persistable = new ParameterDef();
                break;

            case ObjectType.ProcessingMessage:
                persistable = new ProcessingMessage();
                break;

            case ObjectType.CodeClass:
                persistable = (IPersistable)(object)default(CodeClass);
                break;

            case ObjectType.Action:
                persistable = new Action();
                break;

            case ObjectType.RenderingPagesRanges:
                persistable = (IPersistable)(object)default(RenderingPagesRanges);
                break;

            case ObjectType.IntermediateFormatVersion:
                persistable = new IntermediateFormatVersion();
                break;

            case ObjectType.ImageInfo:
                persistable = new ImageInfo();
                break;

            case ObjectType.ActionItem:
                persistable = new ActionItem();
                break;

            case ObjectType.DataValue:
                persistable = new DataValue();
                break;

            case ObjectType.CustomReportItem:
                persistable             = new CustomReportItem(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.SortFilterEventInfoMap:
                persistable = new SortFilterEventInfoMap();
                break;

            case ObjectType.SortFilterEventInfo:
                persistable = new SortFilterEventInfo();
                break;

            case ObjectType.EndUserSort:
                persistable = new EndUserSort();
                break;

            case ObjectType.ScopeLookupTable:
                persistable = new ScopeLookupTable();
                break;

            case ObjectType.Tablix:
                persistable             = new Tablix(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.TablixHeader:
                persistable = new TablixHeader();
                break;

            case ObjectType.TablixMember:
                persistable = new TablixMember();
                break;

            case ObjectType.TablixColumn:
                persistable = new TablixColumn();
                break;

            case ObjectType.TablixRow:
                persistable = new TablixRow();
                break;

            case ObjectType.TablixCornerCell:
                persistable = new TablixCornerCell();
                break;

            case ObjectType.TablixCell:
                persistable = new TablixCell();
                break;

            case ObjectType.Chart:
                persistable             = new Chart(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.ChartMember:
                persistable = new ChartMember();
                break;

            case ObjectType.ChartSeries:
                persistable = new ChartSeries();
                break;

            case ObjectType.ChartDataPoint:
                persistable = new ChartDataPoint();
                break;

            case ObjectType.ChartDataPointValues:
                persistable = new ChartDataPointValues();
                break;

            case ObjectType.ChartArea:
                persistable = new ChartArea();
                break;

            case ObjectType.ChartLegend:
                persistable = new ChartLegend();
                break;

            case ObjectType.ChartLegendTitle:
                persistable = new ChartLegendTitle();
                break;

            case ObjectType.ChartAxis:
                persistable = new ChartAxis();
                break;

            case ObjectType.ThreeDProperties:
                persistable = new ChartThreeDProperties();
                break;

            case ObjectType.ChartDataLabel:
                persistable = new ChartDataLabel();
                break;

            case ObjectType.ChartMarker:
                persistable = new ChartMarker();
                break;

            case ObjectType.ChartTitle:
                persistable = new ChartTitle();
                break;

            case ObjectType.ChartAxisScaleBreak:
                persistable = new ChartAxisScaleBreak();
                break;

            case ObjectType.ChartDerivedSeries:
                persistable = new ChartDerivedSeries();
                break;

            case ObjectType.ChartBorderSkin:
                persistable = new ChartBorderSkin();
                break;

            case ObjectType.ChartNoDataMessage:
                persistable = new ChartNoDataMessage();
                break;

            case ObjectType.ChartItemInLegend:
                persistable = new ChartItemInLegend();
                break;

            case ObjectType.ChartEmptyPoints:
                persistable = new ChartEmptyPoints();
                break;

            case ObjectType.ChartNoMoveDirections:
                persistable = new ChartNoMoveDirections();
                break;

            case ObjectType.ChartFormulaParameter:
                persistable = new ChartFormulaParameter();
                break;

            case ObjectType.ChartLegendColumn:
                persistable = new ChartLegendColumn();
                break;

            case ObjectType.ChartLegendColumnHeader:
                persistable = new ChartLegendColumnHeader();
                break;

            case ObjectType.ChartLegendCustomItem:
                persistable = new ChartLegendCustomItem();
                break;

            case ObjectType.ChartLegendCustomItemCell:
                persistable = new ChartLegendCustomItemCell();
                break;

            case ObjectType.ChartAlignType:
                persistable = new ChartAlignType();
                break;

            case ObjectType.ChartElementPosition:
                persistable = new ChartElementPosition();
                break;

            case ObjectType.ChartSmartLabel:
                persistable = new ChartSmartLabel();
                break;

            case ObjectType.ChartStripLine:
                persistable = new ChartStripLine();
                break;

            case ObjectType.ChartAxisTitle:
                persistable = new ChartAxisTitle();
                break;

            case ObjectType.ChartCustomPaletteColor:
                persistable = new ChartCustomPaletteColor();
                break;

            case ObjectType.GridLines:
                persistable = new ChartGridLines();
                break;

            case ObjectType.ChartTickMarks:
                persistable = new ChartTickMarks();
                break;

            case ObjectType.DataMember:
                persistable = new DataMember();
                break;

            case ObjectType.CustomDataRow:
                persistable = new CustomDataRow();
                break;

            case ObjectType.DataCell:
                persistable = new DataCell();
                break;

            case ObjectType.Variable:
                persistable = new Variable();
                break;

            case ObjectType.Page:
                persistable = new Page();
                break;

            case ObjectType.Paragraph:
                persistable = new Paragraph();
                break;

            case ObjectType.TextRun:
                persistable = new TextRun();
                break;

            case ObjectType.Report:
                persistable             = new Report(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.GaugePanel:
                persistable             = new GaugePanel(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.GaugeMember:
                persistable = new GaugeMember();
                break;

            case ObjectType.GaugeRow:
                persistable = new GaugeRow();
                break;

            case ObjectType.GaugeCell:
                persistable = new GaugeCell();
                break;

            case ObjectType.BackFrame:
                persistable = new BackFrame();
                break;

            case ObjectType.CapImage:
                persistable = new CapImage();
                break;

            case ObjectType.FrameBackground:
                persistable = new FrameBackground();
                break;

            case ObjectType.FrameImage:
                persistable = new FrameImage();
                break;

            case ObjectType.CustomLabel:
                persistable = new CustomLabel();
                break;

            case ObjectType.GaugeImage:
                persistable = new GaugeImage();
                break;

            case ObjectType.GaugeInputValue:
                persistable = new GaugeInputValue();
                break;

            case ObjectType.GaugeLabel:
                persistable = new GaugeLabel();
                break;

            case ObjectType.GaugePanelItem:
                persistable = new GaugePanelItem();
                break;

            case ObjectType.GaugeTickMarks:
                persistable = new GaugeTickMarks();
                break;

            case ObjectType.LinearGauge:
                persistable = new LinearGauge();
                break;

            case ObjectType.LinearPointer:
                persistable = new LinearPointer();
                break;

            case ObjectType.LinearScale:
                persistable = new LinearScale();
                break;

            case ObjectType.NumericIndicator:
                persistable = new NumericIndicator();
                break;

            case ObjectType.PinLabel:
                persistable = new PinLabel();
                break;

            case ObjectType.PointerCap:
                persistable = new PointerCap();
                break;

            case ObjectType.PointerImage:
                persistable = new PointerImage();
                break;

            case ObjectType.RadialGauge:
                persistable = new RadialGauge();
                break;

            case ObjectType.RadialPointer:
                persistable = new RadialPointer();
                break;

            case ObjectType.RadialScale:
                persistable = new RadialScale();
                break;

            case ObjectType.ScaleLabels:
                persistable = new ScaleLabels();
                break;

            case ObjectType.ScalePin:
                persistable = new ScalePin();
                break;

            case ObjectType.ScaleRange:
                persistable = new ScaleRange();
                break;

            case ObjectType.IndicatorImage:
                persistable = new IndicatorImage();
                break;

            case ObjectType.StateIndicator:
                persistable = new StateIndicator();
                break;

            case ObjectType.Thermometer:
                persistable = new Thermometer();
                break;

            case ObjectType.TickMarkStyle:
                persistable = new TickMarkStyle();
                break;

            case ObjectType.TopImage:
                persistable = new TopImage();
                break;

            case ObjectType.LookupInfo:
                persistable = new LookupInfo();
                break;

            case ObjectType.LookupDestinationInfo:
                persistable = new LookupDestinationInfo();
                break;

            case ObjectType.ReportSection:
                persistable = new ReportSection();
                break;

            case ObjectType.MapFieldDefinition:
                persistable = new MapFieldDefinition();
                break;

            case ObjectType.MapFieldName:
                persistable = new MapFieldName();
                break;

            case ObjectType.MapLineLayer:
                persistable = new MapLineLayer();
                break;

            case ObjectType.MapShapefile:
                persistable = new MapShapefile();
                break;

            case ObjectType.MapPolygonLayer:
                persistable = new MapPolygonLayer();
                break;

            case ObjectType.MapSpatialDataRegion:
                persistable = new MapSpatialDataRegion();
                break;

            case ObjectType.MapSpatialDataSet:
                persistable = new MapSpatialDataSet();
                break;

            case ObjectType.MapPointLayer:
                persistable = new MapPointLayer();
                break;

            case ObjectType.MapTile:
                persistable = new MapTile();
                break;

            case ObjectType.MapTileLayer:
                persistable = new MapTileLayer();
                break;

            case ObjectType.MapField:
                persistable = new MapField();
                break;

            case ObjectType.MapLine:
                persistable = new MapLine();
                break;

            case ObjectType.MapPolygon:
                persistable = new MapPolygon();
                break;

            case ObjectType.MapPoint:
                persistable = new MapPoint();
                break;

            case ObjectType.MapLineTemplate:
                persistable = new MapLineTemplate();
                break;

            case ObjectType.MapPolygonTemplate:
                persistable = new MapPolygonTemplate();
                break;

            case ObjectType.MapMarkerTemplate:
                persistable = new MapMarkerTemplate();
                break;

            case ObjectType.Map:
                persistable             = new Map(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.MapBorderSkin:
                persistable = new MapBorderSkin();
                break;

            case ObjectType.MapDataRegion:
                persistable = new MapDataRegion(this.m_parentReportItem);
                break;

            case ObjectType.MapMember:
                persistable = new MapMember();
                break;

            case ObjectType.MapRow:
                persistable = new MapRow();
                break;

            case ObjectType.MapCell:
                persistable = new MapCell();
                break;

            case ObjectType.MapLocation:
                persistable = new MapLocation();
                break;

            case ObjectType.MapSize:
                persistable = new MapSize();
                break;

            case ObjectType.MapGridLines:
                persistable = new MapGridLines();
                break;

            case ObjectType.MapBindingFieldPair:
                persistable = new MapBindingFieldPair();
                break;

            case ObjectType.MapCustomView:
                persistable = new MapCustomView();
                break;

            case ObjectType.MapDataBoundView:
                persistable = new MapDataBoundView();
                break;

            case ObjectType.MapElementView:
                persistable = new MapElementView();
                break;

            case ObjectType.MapViewport:
                persistable = new MapViewport();
                break;

            case ObjectType.MapLimits:
                persistable = new MapLimits();
                break;

            case ObjectType.MapColorScale:
                persistable = new MapColorScale();
                break;

            case ObjectType.MapColorScaleTitle:
                persistable = new MapColorScaleTitle();
                break;

            case ObjectType.MapDistanceScale:
                persistable = new MapDistanceScale();
                break;

            case ObjectType.MapTitle:
                persistable = new MapTitle();
                break;

            case ObjectType.MapLegend:
                persistable = new MapLegend();
                break;

            case ObjectType.MapLegendTitle:
                persistable = new MapLegendTitle();
                break;

            case ObjectType.MapBucket:
                persistable = new MapBucket();
                break;

            case ObjectType.MapColorPaletteRule:
                persistable = new MapColorPaletteRule();
                break;

            case ObjectType.MapColorRangeRule:
                persistable = new MapColorRangeRule();
                break;

            case ObjectType.MapCustomColorRule:
                persistable = new MapCustomColorRule();
                break;

            case ObjectType.MapCustomColor:
                persistable = new MapCustomColor();
                break;

            case ObjectType.MapLineRules:
                persistable = new MapLineRules();
                break;

            case ObjectType.MapPolygonRules:
                persistable = new MapPolygonRules();
                break;

            case ObjectType.MapSizeRule:
                persistable = new MapSizeRule();
                break;

            case ObjectType.MapMarkerImage:
                persistable = new MapMarkerImage();
                break;

            case ObjectType.MapMarker:
                persistable = new MapMarker();
                break;

            case ObjectType.MapMarkerRule:
                persistable = new MapMarkerRule();
                break;

            case ObjectType.MapPointRules:
                persistable = new MapPointRules();
                break;

            case ObjectType.PageBreak:
                persistable = new PageBreak();
                break;

            case ObjectType.DataScopeInfo:
                persistable = new DataScopeInfo();
                break;

            case ObjectType.LinearJoinInfo:
                persistable = new LinearJoinInfo();
                break;

            case ObjectType.IntersectJoinInfo:
                persistable = new IntersectJoinInfo();
                break;

            case ObjectType.BucketedDataAggregateInfos:
                persistable = new BucketedDataAggregateInfos();
                break;

            case ObjectType.DataAggregateInfoBucket:
                persistable = new DataAggregateInfoBucket();
                break;

            case ObjectType.NumericIndicatorRange:
                persistable = new NumericIndicatorRange();
                break;

            case ObjectType.IndicatorState:
                persistable = new IndicatorState();
                break;

            case ObjectType.SharedDataSetQuery:
                persistable = new SharedDataSetQuery();
                break;

            case ObjectType.DataSetCore:
                persistable = new DataSetCore();
                break;

            case ObjectType.DataSetParameterValue:
                persistable = new DataSetParameterValue();
                break;

            case ObjectType.RIFVariantContainer:
                persistable = new RIFVariantContainer();
                break;

            case ObjectType.IdcRelationship:
                persistable = new IdcRelationship();
                break;

            case ObjectType.DefaultRelationship:
                persistable = new DefaultRelationship();
                break;

            case ObjectType.JoinCondition:
                persistable = new Relationship.JoinCondition();
                break;

            case ObjectType.BandLayoutOptions:
                persistable = new BandLayoutOptions();
                break;

            case ObjectType.LabelData:
                persistable = new LabelData();
                break;

            case ObjectType.Slider:
                persistable = new Slider();
                break;

            case ObjectType.Coverflow:
                persistable = new Coverflow();
                break;

            case ObjectType.PlayAxis:
                persistable = new PlayAxis();
                break;

            case ObjectType.BandNavigationCell:
                persistable = new BandNavigationCell();
                break;

            case ObjectType.Tabstrip:
                persistable = new Tabstrip();
                break;

            case ObjectType.NavigationItem:
                persistable = new NavigationItem();
                break;

            case ObjectType.ScopedFieldInfo:
                persistable = new ScopedFieldInfo();
                break;

            default:
                Global.Tracer.Assert(false, "Unsupported object type: " + objectType.ToString());
                break;
            }
            IDOwner iDOwner = persistable as IDOwner;

            if (iDOwner != null)
            {
                iDOwner.ParentInstancePath = this.m_parentIDOwner;
                this.m_parentIDOwner       = iDOwner;
            }
            persistable.Deserialize(context);
            this.m_parentIDOwner    = parentIDOwner;
            this.m_parentReportItem = parentReportItem;
            return(persistable);
        }
        private void DealerSearch(System.Windows.Point point)
        {
            Cursor = Cursors.Wait;
            mapControl.SetMapLocation(point, 12, srid);
            reachableObjectLayer.Shapes.Clear();
            isochroneLayer.Shapes.Clear();

            var waypoint = new WaypointDesc()
            {
                linkType      = LinkType.NEXT_SEGMENT,
                wrappedCoords = new XRoute.Point[]
                {
                    new XRoute.Point()
                    {
                        point = new PlainPoint()
                        {
                            x = point.X,
                            y = point.Y,
                        },
                    },
                },
            };

            var expansionDesc = new ExpansionDescription()
            {
                expansionType   = ExpansionType.EXP_TIME,
                wrappedHorizons = new int[] { 900 },
            };

            var options = new ReachableObjectsOptions()
            {
                expansionDesc      = expansionDesc,
                linkType           = LinkType.NEXT_SEGMENT,
                routingDirection   = RoutingDirectionType.FORWARD,
                geodatasourceLayer = XDealerSample.Properties.Settings.Default.GeoDataSource,
            };

            var cc = new CallerContext()
            {
                wrappedProperties = new CallerContextProperty[]
                {
                    new CallerContextProperty()
                    {
                        key = "CoordFormat", value = "PTV_MERCATOR"
                    },
                    new CallerContextProperty()
                    {
                        key = "Profile", value = "carfast"
                    },
                }
            };

            var isoOptions = new IsochroneOptions()
            {
                expansionDesc          = expansionDesc,
                isoDetail              = IsochroneDetail.POLYS_ONLY,
                polygonCalculationMode = PolygonCalculationMode.NODE_BASED,
            };

            ReachableObjects foundObjects = null;
            Isochrone        isochrone    = null;

            using (var xRouteClient = new XRouteWSClient())
            {
                try
                {
                    foundObjects = xRouteClient.searchForReachableObjects(waypoint, null, null, options, null, cc);
                }
                catch (Exception exception)
                {
                    MessageBox.Show(
                        "Exception while searching for objects.\n\nException type: " + exception.GetType().ToString() +
                        "\nMessage: " + exception.Message);
                    Cursor = null;
                    return;
                }
                try
                {
                    isochrone = xRouteClient.calculateIsochrones(waypoint, null, isoOptions, cc);
                }
                catch (Exception exception)
                {
                    MessageBox.Show(
                        "Exception while calculating isochrone.\n\nException type: " + exception.GetType().ToString() +
                        "\nMessage: " + exception.Message);
                    Cursor = null;
                    return;
                }
            }

            foreach (var foundObject in foundObjects.wrappedReachableObject)
            {
                var ball = new Ball()
                {
                    Height  = 10,
                    Width   = 10,
                    Tag     = [email protected],
                    ToolTip = "",
                    Color   = Colors.Blue,
                };
                ball.ToolTipOpening += ball_ToolTipOpening;

                var winPoint = new System.Windows.Point()
                {
                    X = [email protected],
                    Y = [email protected],
                };
                ShapeCanvas.SetLocation(ball, winPoint);
                reachableObjectLayer.Shapes.Add(ball);
            }

            var linearRing = new NetTopologySuite.Geometries.LinearRing(
                isochrone.wrappedIsochrones[0].polys.lineString.wrappedPoints
                .Select(p => new GeoAPI.Geometries.Coordinate(p.x, p.y))
                .ToArray()
                );

            linearRing.Normalize();

            var geom = new NetTopologySuite.Geometries.Polygon(linearRing);

            var bufferedGeom = geom.Buffer(100);
            var polygon      = new MapPolygon()
            {
                Points  = new PointCollection(bufferedGeom.Boundary.Coordinates.Select(c => new System.Windows.Point(c.X, c.Y))),
                Fill    = new SolidColorBrush(Colors.AliceBlue),
                Opacity = 0.75,
                Stroke  = new SolidColorBrush(Colors.DarkSlateGray)
            };

            isochroneLayer.Shapes.Add(polygon);

            Cursor = null;
        }
Beispiel #28
0
        //Fonction pour importer les Polygons d'un ficher .CSV
        private void Polygon_Import_Button(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog
            {
                InitialDirectory = "c:\\",
                Filter           = "csv files (*.csv)|*.csv"
            };

            if (openFileDialog.ShowDialog() == true)
            {
                try
                {
                    using (StreamReader sr = new StreamReader(openFileDialog.FileName))
                    {
                        string line = "";

                        while ((line = sr.ReadLine()) != null)
                        {
                            string[] list = Regex.Split(line, @";+");
                            //C'est que c'est un POI donc ajout du POI
                            if (list[2] != String.Empty)
                            {
                                Pushpin  pin         = new Pushpin();
                                Location pinLocation = new Location();

                                POI TmpPoi = new POI(Convert.ToDouble(list[0]), Convert.ToDouble(list[1]), list[2]);

                                pin.Tag = TmpPoi;
                                pinLocation.Latitude  = TmpPoi.Latitude;
                                pinLocation.Longitude = TmpPoi.Longitude;

                                pin.Location = pinLocation;

                                //Ajoute le pin a la carte
                                map.Children.Add(pin);

                                //Ajoute à la liste
                                User.Liste.Add(TmpPoi);
                            }

                            if (ListeTmp == null)
                            {
                                ListeTmp   = new List <Coordonnees>();
                                PolygonTpm = new MapPolygon
                                {
                                    Fill            = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.LightBlue),
                                    Stroke          = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Blue),
                                    StrokeThickness = 3,
                                    Opacity         = 0.6,
                                    Locations       = new LocationCollection()
                                };
                            }
                            ListeTmp.Add(new Coordonnees(Convert.ToDouble(list[0]), Convert.ToDouble(list[1])));

                            PolygonTpm.Locations.Add(new Location(Convert.ToDouble(list[0]), Convert.ToDouble(list[1])));
                        }

                        Polygon TmpPolygon = new Polygon
                        {
                            Coordonnees = ListeTmp
                        };
                        TmpPolygon.Description = openFileDialog.SafeFileName;

                        //Ajoute à la liste
                        User.Liste.Add(TmpPolygon);
                        map.Children.Add(PolygonTpm);

                        PolygonTpm = null;
                        ListeTmp   = null;
                    }
                    StatBar.Text = "Path imported"; //Affichage dans la StatusBar
                }
                catch (Exception)
                {
                    ErrorWindow error = new ErrorWindow("The file could not be read");
                    error.ShowDialog(); //bloque la page
                }
            }
        }
Beispiel #29
0
        /// <summary>
        /// Calls WKT Service 
        ///     Initializes input parameters
        ///     Calls Asynch service
        /// </summary>
        /// <remarks>
        /// Drawtools leaves the area of interest definition on MapLayer 'layerDraw'
        /// </remarks>
        public void ShowLayers()
        {
            // get list of checked layers
            List<string> layers = GetLayers();
            layerCnt = layers.Count;
            if (layers.Count > 0)
            {
                totalFeatures = 0;
                totalPoints = 0;
                totalByteSize = 0;

                string queryType = null;
                string area = null;
                double radius = 0.0;
                double reduce = 4000 - MainMap.ZoomLevel * 500;
                if (reduce < 0) reduce = 0;
                if ((bool)drawtools.Proximity.IsChecked)
                {
                    queryType = "buffer";
                    Ellipse pt = (Ellipse)layerDraw.FindName("Proximity");
                    if (pt != null && pt.Tag != null)
                    {
                        Location loc = MapLayer.GetPosition(pt);
                        //radius(meters) longitude,latitude
                        if (pt.Tag != null) radius = Double.Parse(pt.Tag.ToString());
                        else radius = 1.0;
                        area = loc.Longitude + " " + loc.Latitude;
                    }
                }
                else if ((bool)drawtools.PolyBuffer.IsChecked)
                {
                    queryType = "buffer";
                    //buffer width(meters)  lon,lat lon,lat ... lon,lat
                    MapPolyline poly = (MapPolyline)layerDraw.FindName("Buffer");
                    if (poly != null)
                    {
                        Slider s = (Slider)drawtools.FindName("BufferSlider");
                        radius = (s.Value * 1000);
                        StringBuilder sb = new StringBuilder();
                        bool first = true;
                        foreach (Location l in poly.Locations)
                        {
                            if (!first) sb.Append(",");
                            sb.Append(l.Longitude + " " + l.Latitude);
                            first = false;
                        }
                        area = sb.ToString();
                    }
                }
                else if ((bool)drawtools.AOI.IsChecked)
                {
                    queryType = "bbox";
                    StringBuilder sb = new StringBuilder();
                    MapPolygon drawrect = ((MapPolygon)layerDraw.FindName("AOI"));

                    if (drawrect != null)
                    {
                        // check for hemisphere overrun
                        if (validAOI(drawrect.Locations[0], drawrect.Locations[2]) && 
                            WithinHemisphere(drawrect.Locations[0], drawrect.Locations[2]))
                        {
                            foreach (Location l in drawrect.Locations)
                            {
                                sb.Append(l.Longitude + " " + l.Latitude + ",");
                            }
                            sb.Append(drawrect.Locations[0].Longitude + " " + drawrect.Locations[0].Latitude);
                            area = sb.ToString();
                        }
                        else
                        {
                            drawtools.draw = true;
                        }
                    }
                }
                else if ((bool)drawtools.Viewport.IsChecked)
                {
                    queryType = "bbox";
                    StringBuilder sb = new StringBuilder();
                    LocationRect bounds = MainMap.BoundingRectangle;
                    // check for hemisphere overrun
                    if (validAOI(bounds.Southeast, bounds.Northwest) && 
                        WithinHemisphere(bounds.Southeast, bounds.Northwest))
                    {
                        sb.Append(bounds.Southeast.Longitude + " ");
                        sb.Append(bounds.Southeast.Latitude + ",");
                        sb.Append(bounds.Northeast.Longitude + " ");
                        sb.Append(bounds.Northeast.Latitude + ",");
                        sb.Append(bounds.Northwest.Longitude + " ");
                        sb.Append(bounds.Northwest.Latitude + ",");
                        sb.Append(bounds.Southwest.Longitude + " ");
                        sb.Append(bounds.Southwest.Latitude + ",");
                        sb.Append(bounds.Southeast.Longitude + " ");
                        sb.Append(bounds.Southeast.Latitude);
                        area = sb.ToString();
                    }
                    else
                    {
                        drawtools.draw = true;
                    }
                }
                if (area != null)
                {
                    // disable side menu and start load spinner until call returns
                    SidePanelBorder.IsHitTestVisible = false;
                    loaderStart();

                    foreach (string layer in layers)
                    {
                        XAMLClient svc = new XAMLClient("CustomBinding_IXAML");
                        svc.GetSQLDataXAMLCompleted += new EventHandler<GetSQLDataXAMLCompletedEventArgs>(XAMLService_GetSQLDataXAMLCompleted);
                        XAMLParameters parameters = new XAMLParameters();
                        parameters.table = layer.Replace("layer", "").ToLower();
                        parameters.querytype = queryType;
                        parameters.reduce = reduce;
                        parameters.radius = radius;
                        parameters.points = area;
                        svc.GetSQLDataXAMLAsync(parameters,layer);
                    }
                }
            }
            else
            {
                drawtools.draw = true;
            }
        }
Beispiel #30
0
 public void AddCell(MapPolygon cell)
 {
     PokeMap.MapElements.Add(cell);
 }
Beispiel #31
0
        public ViewModelMapObject(MapImporter.MapObject obj)
        {
            mapitems = new List <MapItem>();

            groupname = obj.groupname;
            name      = obj.name;

            try
            {
                altitude = Double.Parse(obj.altitude);
            }
            catch (Exception e)
            {
                altitude = 0;
            }

            active = obj.active;

            try
            {
                startDate = DateTime.Parse(obj.startDate + " " + obj.startTime);
            }
            catch (Exception e)
            {
                startDate = DateTime.MinValue;
            }

            try
            {
                endDate = DateTime.Parse(obj.endDate + " " + obj.endTime);
            }
            catch (Exception e)
            {
                endDate = DateTime.MaxValue;
            }

            //Initialize a list of map items
            List <MapItem> map = new List <MapItem>();

            //Convert from Insero's map objects to our
            foreach (MapImporter.Shape s in obj.shapes)
            {
                //Convert circle to DevExpress MapDot
                if (s is MapImporter.Circle)
                {
                    MapImporter.Circle circle = (MapImporter.Circle)s;

                    MapDot tempDot = new MapDot();
                    tempDot.Size = circle.Radius;

                    mapitems.Add(tempDot);
                }

                //Convert Polygon to DevExpress Polygon
                else if (s is MapImporter.Polygon)
                {
                    MapImporter.Polygon polygon = (MapImporter.Polygon)s;

                    MapPolygon tempPolygon = new MapPolygon();

                    for (int i = 0; i < polygon.Points.Count; i++)
                    {
                        GeoPoint newGeoPoint = new GeoPoint();

                        var split = polygon.Points[i].Split(',');

                        newGeoPoint.Latitude  = Double.Parse(split[0], System.Globalization.CultureInfo.InvariantCulture);
                        newGeoPoint.Longitude = Double.Parse(split[1], System.Globalization.CultureInfo.InvariantCulture);

                        tempPolygon.Points.Add(newGeoPoint);
                    }
                    mapitems.Add(tempPolygon);
                }

                //Convert Polyline to DevExpress Polyline
                else if (s is MapImporter.Polyline)
                {
                    MapImporter.Polyline polyline = (MapImporter.Polyline)s;

                    MapPolyline tempPolyline = new MapPolyline();

                    for (int i = 0; i < polyline.Points.Count; i++)
                    {
                        GeoPoint newGeoPoint = new GeoPoint();

                        var split = polyline.Points[i].Split(',');

                        newGeoPoint.Latitude  = Double.Parse(split[0], System.Globalization.CultureInfo.InvariantCulture);
                        newGeoPoint.Longitude = Double.Parse(split[1], System.Globalization.CultureInfo.InvariantCulture);

                        tempPolyline.Points.Add(newGeoPoint);
                    }
                    mapitems.Add(tempPolyline);
                }
            }
        }
        void AddItem()
        {
            if (selected_shape == "Rectangle")
            {
                if (Rectangle1 == null)
                {
                    Rectangle1 = new MapLayer();

                    Rectangle rectanggle = new Rectangle();
                    rectanggle.Opacity = 0.7;

                    //Set the Rectangle properties
                    rectanggle.Name = "jukka";
                    rectanggle.Fill = new SolidColorBrush(Colors.Green);
                    rectanggle.Stroke = new SolidColorBrush(Colors.Blue);
                    rectanggle.StrokeThickness = 4;
                    rectanggle.Width = 200;
                    rectanggle.Height = 200;

                    Rectangepoint = new GeoCoordinate(60.22, 24.81);

                    MapOverlay pin1 = new MapOverlay();
                    pin1.GeoCoordinate = Rectangepoint;
                   // pin1.PositionOrigin = PositionOrigin.Center;
                    pin1.Content = rectanggle;

                    Rectangle1.Add(pin1);
                    map1.Layers.Add(Rectangle1);
                }
            }
            else if (selected_shape == "Circle")
            {
                if (Circle == null)
                {
                    Circle = new MapLayer();

                    Ellipse Circhegraphic = new Ellipse();
                    Circhegraphic.Fill = new SolidColorBrush(Colors.Yellow);
                    Circhegraphic.Stroke = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red);
                    Circhegraphic.StrokeThickness = 10;
                    Circhegraphic.Opacity = 0.8;
                    Circhegraphic.Height = 100;
                    Circhegraphic.Width = 100;

                    Circlepoint = new GeoCoordinate(60.22, 24.81);

                    MapOverlay circc = new MapOverlay();
                    circc.GeoCoordinate = Circlepoint;
                    // pin1.PositionOrigin = PositionOrigin.Center;
                    circc.Content = Circhegraphic;

                    Circle.Add(circc);
                    map1.Layers.Add(Circle);
                }
            }
            else if (selected_shape == "Polygons")
            {
                if (PolyCircle == null)
                {

                    PolyCircle = new MapPolygon();

                    GeoCoordinateCollection boundingLocations = CreateCircle(new GeoCoordinate(60.30, 24.70), 10);

                    //Set the polygon properties
                    PolyCircle.Path = boundingLocations;
                    PolyCircle.FillColor = Color.FromArgb(0x55, 0xFF, 0xFF, 0x00);
                    PolyCircle.StrokeColor = Color.FromArgb(0xFF, 0xFF, 0x00, 0xFF);
                    PolyCircle.StrokeThickness = 4;

                    map1.MapElements.Add(PolyCircle);

                    PolyRect = new MapPolygon();

                    GeoCoordinateCollection RectLocations = CreateRectangle(new GeoCoordinate(60.35, 24.60), new GeoCoordinate(60.25, 24.80));

                    //Set the polygon properties
                    PolyRect.Path = RectLocations;
                    PolyRect.FillColor = Color.FromArgb(0x55, 0x00, 0x00, 0x00);
                    PolyRect.StrokeColor = Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF);
                    PolyRect.StrokeThickness = 4;

                    map1.MapElements.Add(PolyRect);

                }
            }
        }
 public void ConvertPointLocations(MapPolygon NewPolygon, ArrayList GMPointLocations)
 {
     foreach(GISMapPoint testPoint in GMPointLocations)
     {
         NewPolygon.Locations.Add(testPoint.PointLocation);
     }
 }
        public WindowItemProperty(int index)
        {
            id = index;
            InitializeComponent();
            tIContour.Visibility     = Visibility.Hidden;
            tIRemplissage.Visibility = Visibility.Hidden;

            ListBoxPropertyX.ItemsSource    = MainWindow.mP.CartoCollection[index].lCoord;
            ListBoxPropertyY.ItemsSource    = MainWindow.mP.CartoCollection[index].lCoord;
            ListBoxPropertyDesc.ItemsSource = MainWindow.mP.CartoCollection[index].lCoord;
            lCoordBase = new List <ICoord>(MainWindow.mP.CartoCollection[index].lCoord);

            if (MainWindow.mP.CartoCollection[index] is POI)
            {
                pin          = new Pushpin();
                pin.Location = new Location(MainWindow.mP.CartoCollection[index].lCoord[0].X, MainWindow.mP.CartoCollection[index].lCoord[0].Y);
                myMapProperty.Children.Add(pin);
                tiMore.Visibility = Visibility.Hidden;
            }
            else
            {
                if (MainWindow.mP.CartoCollection[index] is ProjectLibraryClass.Polygon)
                {
                    polTmp    = MainWindow.mP.CartoCollection[index] as ProjectLibraryClass.Polygon;
                    maPolygon = new MapPolygon();
                    myMapProperty.Children.Add(maPolygon);
                    maPolygon.Locations = new LocationCollection();
                    for (int i = 0; i < MainWindow.mP.CartoCollection[index].lCoord.Count(); i++)
                    {
                        maPolygon.Locations.Add(new Location(MainWindow.mP.CartoCollection[index].lCoord[i].X, MainWindow.mP.CartoCollection[index].lCoord[i].Y));
                    }

                    maPolygon.Fill            = MainWindow.ToBrush(polTmp.Rempli);
                    maPolygon.Stroke          = MainWindow.ToBrush(polTmp.Contour);
                    remplissageBase           = polTmp.Rempli;
                    contourBase               = polTmp.Contour;
                    maPolygon.Opacity         = polTmp.Opacite;
                    maPolygon.StrokeThickness = polTmp.Epaisseur;
                    tIContour.Visibility      = Visibility.Visible;
                    tIRemplissage.Visibility  = Visibility.Visible;

                    SliderContourR.Value            = polTmp.Contour.R;
                    SliderContourG.Value            = polTmp.Contour.G;
                    SliderContourB.Value            = polTmp.Contour.B;
                    PreviewColorContour.DataContext = MainWindow.ToBrush(polTmp.Contour);

                    SliderRemplirR.Value = polTmp.Rempli.R;
                    SliderRemplirG.Value = polTmp.Rempli.G;
                    SliderRemplirB.Value = polTmp.Rempli.B;
                    PreviewColorRemplissage.DataContext = MainWindow.ToBrush(polTmp.Rempli);

                    SliderEpaisseur.Value = ((ProjectLibraryClass.Polygon)MainWindow.mP.CartoCollection[index]).Epaisseur;
                    SliderOpacite.Value   = ((ProjectLibraryClass.Polygon)MainWindow.mP.CartoCollection[index]).Opacite;
                }
                if (MainWindow.mP.CartoCollection[index] is ProjectLibraryClass.Polyline)
                {
                    polyTmp = MainWindow.mP.CartoCollection[index] as ProjectLibraryClass.Polyline;

                    contourBase = polyTmp.Couleur;

                    maPolyline = new MapPolyline();
                    myMapProperty.Children.Add(maPolyline);
                    maPolyline.Locations = new LocationCollection();
                    for (int i = 0; i < MainWindow.mP.CartoCollection[index].lCoord.Count(); i++)
                    {
                        maPolyline.Locations.Add(new Location(MainWindow.mP.CartoCollection[index].lCoord[i].X, MainWindow.mP.CartoCollection[index].lCoord[i].Y));
                    }
                    maPolyline.StrokeThickness = polyTmp.Epaisseur;
                    maPolyline.Stroke          = MainWindow.ToBrush(polyTmp.Couleur);
                    maPolyline.Opacity         = polyTmp.Opacite;
                    myMapProperty.Center       = new Location(MainWindow.mP.CartoCollection[index].lCoord[0].X, MainWindow.mP.CartoCollection[index].lCoord[0].Y);
                    myMapProperty.ZoomLevel    = 2;
                    tIContour.Visibility       = Visibility.Visible;

                    SliderContourR.Value            = polyTmp.Couleur.R;
                    SliderContourG.Value            = polyTmp.Couleur.G;
                    SliderContourB.Value            = polyTmp.Couleur.B;
                    PreviewColorContour.DataContext = MainWindow.ToBrush(polyTmp.Couleur);
                    SliderEpaisseur.Value           = ((ProjectLibraryClass.Polyline)MainWindow.mP.CartoCollection[index]).Epaisseur;
                    SliderOpacite.Value             = ((ProjectLibraryClass.Polyline)MainWindow.mP.CartoCollection[index]).Opacite;
                }
            }
        }
        private void FileOpen_Click(object sender, RoutedEventArgs e)
        {
            string path = "";

            try
            {
                OpenFileDialog openDlg = new OpenFileDialog
                {
                    DefaultExt       = ".dat",
                    InitialDirectory = CurrentDir
                };
                openDlg.ShowDialog();
                path = openDlg.FileName;                    // get filepath

                if (path != "")
                {
                    currentUser.Load(path);                     // loads but list doesn't update without next line
                    lb_objects.ItemsSource = currentUser.OcICartoObj;
                    //MessageBox.Show(currentUser.ToString());	// DEBUG
                    foreach (ICartoObj obj in currentUser.OcICartoObj)
                    {
                        if (obj is POI)
                        {
                            temppoi = obj as POI;
                            Pushpin newPin = new Pushpin();
                            newPin.Location = new Location(temppoi.Latitude, temppoi.Longitude);
                            bingmap.Children.Add(newPin);
                        }
                        if (obj is Polyline)
                        {
                            temppl = obj as Polyline;
                            MapPolyline newMPL = new MapPolyline();
                            newMPL.Stroke          = new SolidColorBrush(temppl.Couleur);
                            newMPL.StrokeThickness = temppl.Epaisseur;
                            newMPL.Opacity         = 1;
                            newMPL.Locations       = new LocationCollection();
                            foreach (Coordonnees cd in temppl.ListeCoord)
                            {
                                newMPL.Locations.Add(new Location(cd.Latitude, cd.Longitude));
                            }
                            bingmap.Children.Add(newMPL);
                        }
                        if (obj is Polygon)
                        {
                            temppg = obj as Polygon;
                            MapPolygon newMPG = new MapPolygon();
                            newMPG.Fill      = new SolidColorBrush(temppg.Remplissage);
                            newMPG.Stroke    = new SolidColorBrush(temppg.Contour);
                            newMPG.Opacity   = temppg.Opacite;
                            newMPG.Locations = new LocationCollection();
                            foreach (Coordonnees cd in temppg.ListeCoord)
                            {
                                newMPG.Locations.Add(new Location(cd.Latitude, cd.Longitude));
                            }
                            bingmap.Children.Add(newMPG);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Beispiel #36
0
        async void Load_Click(object sender, RoutedEventArgs e)
        {
            var picker = new Windows.Storage.Pickers.FileOpenPicker();

            picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
            picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
            picker.FileTypeFilter.Add(".geojson");
            picker.FileTypeFilter.Add(".geoJSON");
            picker.FileTypeFilter.Add(".csv");

            Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

            if (file != null)
            {
                try
                {
                    using (StreamReader sr = new StreamReader(file.Path))
                    {
                        string content = sr.ReadToEnd();
                        if (file.FileType == ".csv")
                        {
                            string[] lines = content.Split('\n');
                            for (int i = 0; i < lines.Length; i++)
                            {
                                var item = lines[i];

                                if (String.IsNullOrWhiteSpace(item))
                                {
                                    continue;
                                }

                                string[] info = item.Split(',');
                                double   lat  = 0;
                                double   lon  = 0;

                                if (!Double.TryParse(info[info.Length - 2], out lon) || !Double.TryParse(info[info.Length - 3], out lat))
                                {
                                    if (i == 0)
                                    {
                                        continue;
                                    }
                                    var messageDialog = new MessageDialog("Zeile " + i + " (" + item + ") hat nicht das richtige Format!");
                                    messageDialog.Commands.Add(new UICommand("OK", new UICommandInvokedHandler(this.CommandInvokedHandler)));
                                    messageDialog.DefaultCommandIndex = 0;
                                    messageDialog.Title = "Fehlerhafte Datei";
                                    await messageDialog.ShowAsync();

                                    return;
                                }

                                StringBuilder sb = new StringBuilder("");

                                for (int j = 0; j < info.Length - 3; j++)
                                {
                                    sb.Append(info[j]);
                                }

                                PointOfInterest poi = new PointOfInterest()
                                {
                                    Location = new Geopoint(new BasicGeoposition()
                                    {
                                        Latitude = lat, Longitude = lon
                                    }),
                                    DisplayName           = sb.ToString(),
                                    NormalizedAnchorPoint = AnchorPoints[2],
                                    Flag = PointOfInterest.PORTAL,
                                    Leaf = FindExactCell(new BasicGeoposition()
                                    {
                                        Latitude = lat, Longitude = lon
                                    }, 30).Id.Id
                                };

                                portals.Add(poi);
                                //DataAccess.AddData(poi);
                            }
                        }
                        else
                        {
                            var features = JsonConvert.DeserializeObject <FeatureCollection>(content).Features;

                            foreach (var p in features)
                            {
                                double lon  = ((Point)p.Geometry).Coordinates.Longitude;
                                double lat  = ((Point)p.Geometry).Coordinates.Latitude;
                                int    flag = PointOfInterest.PORTAL;
                                if (p.Properties.ContainsKey("Flag"))
                                {
                                    flag = (int)p.Properties["Flag"];
                                }

                                PointOfInterest poi = new PointOfInterest()
                                {
                                    Location = new Geopoint(new BasicGeoposition()
                                    {
                                        Latitude = lat, Longitude = lon
                                    }),
                                    DisplayName           = (string)p.Properties["name"],
                                    NormalizedAnchorPoint = AnchorPoints[flag],
                                    Flag = flag,
                                    Leaf = FindExactCell(new BasicGeoposition()
                                    {
                                        Latitude = lat, Longitude = lon
                                    }, 30).Id.Id
                                };

                                portals.Add(poi);
                                //DataAccess.AddData(poi);
                            }
                        }
                        AddLayers();
                    }
                }
                catch (UnauthorizedAccessException)
                {
                    Windows.Storage.StorageFolder installedLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;
                    var messageDialog = new MessageDialog("Zugriff auf den Pfad " + file.Path +
                                                          " wurde verweigert.\nBitte gewähren Sie Zugriff unter \n\nEinstellungen -> Privatsphäre -> Dateisystem\n\noder bewegen Sie die Datei an diesen Ort:\n"
                                                          + installedLocation.Path);
                    messageDialog.Commands.Add(new UICommand("OK", new UICommandInvokedHandler(this.CommandInvokedHandler)));
                    messageDialog.DefaultCommandIndex = 0;
                    messageDialog.Title = "Keine Zugriffsrechte";
                    await messageDialog.ShowAsync();

                    return;
                }

                // outermost bounds
                double maxLat = -360;
                double maxLon = -360;
                double minLat = 360;
                double minLon = 360;

                // Find out all Lvl17 cells
                foreach (var p in portals)
                {
                    double lat = p.Location.Position.Latitude;
                    double lon = p.Location.Position.Longitude;

                    if (lon < minLon)
                    {
                        minLon = lon;
                    }
                    if (lon > maxLon)
                    {
                        maxLon = lon;
                    }
                    if (lat < minLat)
                    {
                        minLat = lat;
                    }
                    if (lat > maxLat)
                    {
                        maxLat = lat;
                    }

                    var cell = FindExactCell(p.Location.Position, 17);

                    MapPolygon polygon = new MapPolygon
                    {
                        Path = new Geopath(new List <BasicGeoposition>()
                        {
                            FromS2Point(cell.GetVertex(0)),
                            FromS2Point(cell.GetVertex(1)),
                            FromS2Point(cell.GetVertex(2)),
                            FromS2Point(cell.GetVertex(3))
                        }),

                        ZIndex          = 1,
                        FillColor       = Color.FromArgb(50, 50, 50, 50),
                        StrokeColor     = Colors.Black,
                        StrokeThickness = 2,
                        StrokeDashed    = false
                    };
                    lvl17Cells.Add(polygon);
                    AddCell(polygon);
                }

                // Find out Lvl14 cells
                var area = S2LatLngRect.FromPointPair(
                    S2LatLng.FromDegrees(minLat, minLon),
                    S2LatLng.FromDegrees(maxLat, maxLon)
                    );

                var cells14 = new List <S2CellId>();
                lvl14Coverer.GetCovering(area, cells14);

                for (int i = 0; i < cells14.Count; i++)
                {
                    S2Cell cell = new S2Cell(cells14[i]);

                    MapPolygon polygon = new MapPolygon
                    {
                        Path = new Geopath(new List <BasicGeoposition>()
                        {
                            FromS2Point(cell.GetVertex(0)),
                            FromS2Point(cell.GetVertex(1)),
                            FromS2Point(cell.GetVertex(2)),
                            FromS2Point(cell.GetVertex(3))
                        }),

                        ZIndex          = 1,
                        FillColor       = Color.FromArgb(50, 0, 0, 50),
                        StrokeColor     = Colors.Blue,
                        StrokeThickness = 2,
                        StrokeDashed    = false
                    };
                    lvl14Cells.Add(polygon);
                    AddCell(polygon);
                }

                BasicGeoposition newCenter = new BasicGeoposition();
                newCenter.Latitude  = (minLat + maxLat) / 2;
                newCenter.Longitude = (minLon + maxLon) / 2;
                PokeMap.Center      = new Geopoint(newCenter);
            }
        }
        public void Polygon_TouchDown(object sender, TouchEventArgs e)
        {
            MapPolygon TouchPolygon = sender as MapPolygon;

            if (TouchPolygon.Equals(SelectedPolygon))
            {
                DeselectAll();
            }
            else
            {
                SelectedPolygon = TouchPolygon;
                UpdateColors(TouchPolygon);

                /*
                 * this is the if statement where we are trying to make it so that when a polygon is selected it redraws its points so that the points, in the future,
                 * the points and polygons can be edited.
                 * right now the idea is that the foreach loop takes the locations of the SelectedPolygons points and redraws the points using the locations from the SelectedPolygon.
                 * See GISMapPoints Class under AddPoints Method.
                 */

                //if (TouchPolygon.Equals(SelectedPolygon))
                //{
                //    foreach (Location TempLocation in SelectedPolygon.Locations)
                //    {
                //        GMPoint.AddPoint(TempLocation, mapwindow);
                //    }
                //}

                int pointCounter = 1;

                foreach (Location p in TouchPolygon.Locations)
                {
                    pointCounter++;
                }
            }
        }
Beispiel #38
0
        private void Form1_Load(object sender, System.EventArgs e)
        {
            #region #MapDotExample
            ItemStorage.Items.Add(new MapDot()
            {
                Location = new GeoPoint(-10, 10), Size = 18, Stroke = Color.Blue
            });
            #endregion #MapDotExample

            #region #MapEllipseExample
            ItemStorage.Items.Add(new MapEllipse()
            {
                Location = new GeoPoint(40, 40), Height = 300, Width = 600
            });
            #endregion #MapEllipseExample

            #region #MapLineExample
            ItemStorage.Items.Add(new MapLine {
                Point1 = new GeoPoint(-30, 20), Point2 = new GeoPoint(-35, 25), Stroke = Color.Red, StrokeWidth = 4
            });
            #endregion #MapLineExample

            #region #MapCalloutExample
            ItemStorage.Items.Add(new MapCallout()
            {
                Location = new GeoPoint(10, 10), Text = "This is a MapCallout object"
            });
            #endregion #MapCalloutExample

            #region #MapPathExample
            var path    = new MapPath();
            var segment = new MapPathSegment();
            segment.Points.AddRange(new GeoPoint[] {
                new GeoPoint(20, 20),
                new GeoPoint(20, 30),
                new GeoPoint(30, 30)
            });
            path.Segments.Add(segment);
            segment = new MapPathSegment();
            segment.Points.AddRange(new GeoPoint[] {
                new GeoPoint(30, 32),
                new GeoPoint(20, 32),
                new GeoPoint(20, 42)
            });
            path.Segments.Add(segment);
            ItemStorage.Items.Add(path);
            #endregion #MapPathExample

            #region #MapPolygonExample
            var polygon = new MapPolygon();
            polygon.Points.AddRange(new GeoPoint[] {
                new GeoPoint(70, 80),
                new GeoPoint(75, 90),
                new GeoPoint(75, 130)
            });
            ItemStorage.Items.Add(polygon);
            #endregion #MapPolygonExample

            #region #MapPolylineExample
            var polyline = new MapPolyline()
            {
                StrokeWidth = 4, Stroke = Color.Yellow
            };
            polyline.Points.AddRange(new GeoPoint[] {
                new GeoPoint(-29, 130),
                new GeoPoint(-40, 140),
                new GeoPoint(-20, 150)
            });
            ItemStorage.Items.Add(polyline);
            #endregion #MapPolylineExample

            #region #MapPushpinExample
            ItemStorage.Items.Add(new MapPushpin()
            {
                Location = new GeoPoint(70, -100), Text = "1"
            });
            #endregion #MapPushpinExample

            #region #MapRectangleExample
            ItemStorage.Items.Add(new MapRectangle()
            {
                Location = new GeoPoint(-70, -100), Width = 500, Height = 750
            });
            #endregion #MapRectangleExample

            #region #MapCustomElementExample
            var customElement = new MapCustomElement()
            {
                Location = new GeoPoint(50, 50), Text = "This is a MapCustomElement object"
            };
            var image = new Bitmap(imageFilePath);
            customElement.Image = new Bitmap(image, new Size(40, 40));
            ItemStorage.Items.Add(customElement);
            #endregion #MapCustomElementExample

            #region #MapBubbleExample
            ItemStorage.Items.Add(new MapBubble()
            {
                Location = new GeoPoint(30, 20), Value = 400, Argument = "A", Size = 100
            });
            #endregion #MapBubbleExample

            #region #MapPieExample
            var pie = new MapPie()
            {
                Location = new GeoPoint(-20, -30), Size = 100
            };
            pie.Segments.AddRange(new PieSegment[] {
                new PieSegment()
                {
                    Argument = "A", Value = 2
                },
                new PieSegment()
                {
                    Argument = "B", Value = 3
                },
                new PieSegment()
                {
                    Argument = "C", Value = 4
                }
            });
            ItemStorage.Items.Add(pie);
            #endregion #MapPieExample
        }
        private void UpdateColors(MapPolygon Polygon)
        {
            for (int i = 0; i < MapPolygons.Count; i++)
            {

                MapPolygon test = MapPolygons[i] as MapPolygon;
                if (Polygon.Equals(MapPolygons[i]) && Polygon != null)
                {
                    test.Stroke = new SolidColorBrush(Colors.Wheat);
                    test.Fill = new SolidColorBrush(Colors.Blue);
                }
                else // not the selected polygon... reset it's color
                {
                    test.Stroke = new SolidColorBrush(Colors.Gold);
                    test.Fill = new SolidColorBrush(Colors.Maroon);
                }
            }
        }
Beispiel #40
0
        /* public XmlDocument ReadXMLData(XmlDocument xmlDoc, string FullPath)
         * {
         *   xmlDoc.Load(FullPath);
         *
         *   return xmlDoc;
         * } */

        public void ImageItem_selected(object sender, RoutedEventArgs e)
        {
            SurfaceListBoxItem Item = e.Source as SurfaceListBoxItem;

            System.Windows.Point Center = new System.Windows.Point(950.0, 450.0);
            string          ScatterName = Item.Name;
            ScatterViewItem Obj         = LogicalTreeHelper.FindLogicalNode(scatterView1, ScatterName) as ScatterViewItem;

            if (Obj == null)  // if the object does not already exists create it
            {
                XmlDocument xmlDoc = new XmlDocument();

                int index = Convert.ToInt32(Item.Name.Substring(5, 2));

                if (Item.Name.Substring(0, 5) == "Local")
                {
                    XML_IO.ReadXMLData(xmlDoc, LocalFileNames[index - 1].ToString());
                }
                else
                {
                    XML_IO.ReadXMLData(xmlDoc, FileNames[index - 1].ToString());
                }

                ScatterViewItem newScatterViewItem = new ScatterViewItem();
                newScatterViewItem.Name       = Item.Name;
                newScatterViewItem.Background = Item.Background;
                newScatterViewItem.Height     = 270;
                newScatterViewItem.Width      = 360;

                newScatterViewItem.Center = Center;

                // add a resize event to scale the grid
                newScatterViewItem.SizeChanged += new SizeChangedEventHandler(newScatterViewItem_SizeChanged);

                //  Grid newGrid = new Grid();
                SURGISControl1 newGrid = new SURGISControl1(this);

                XmlNode GISData = xmlDoc.SelectSingleNode("//GISData/MapLoc");

                newGrid.Longitude   = Convert.ToDouble(GISData.Attributes["long"].Value);
                newGrid.Lattitude   = Convert.ToDouble(GISData.Attributes["lat"].Value);
                newGrid.CameraLevel = Convert.ToDouble(GISData.Attributes["alt"].Value);

                XmlNodeList Polygons = xmlDoc.SelectNodes("//GISData/Polygons/Polygon");

                foreach (XmlNode Polygon in Polygons)
                {
                    MapPolygon NewGridPoly = new MapPolygon();
                    NewGridPoly.Locations = new LocationCollection();
                    NewGridPoly.Name      = Item.Name + Polygon.Attributes.GetNamedItem("name").Value;

                    XmlNodeList Points = Polygon.ChildNodes;

                    foreach (XmlNode Point in Points)
                    {
                        Location NewGridPolyPoint = new Location();

                        NewGridPolyPoint.Latitude  = Convert.ToDouble(Point.Attributes.GetNamedItem("lat").Value);
                        NewGridPolyPoint.Longitude = Convert.ToDouble(Point.Attributes.GetNamedItem("long").Value);

                        NewGridPoly.Locations.Add(NewGridPolyPoint);
                    }

                    newGrid.Polygons.Add(NewGridPoly);
                }

                newGrid.Background = Item.Background;

                newScatterViewItem.Content = newGrid;

                scatterView1.Items.Add(newScatterViewItem);
            }    // if obj== null

            else /// object exists
            {
                if (Obj.Visibility == Visibility.Collapsed)
                {
                    Obj.Visibility = Visibility.Visible;
                    Obj.Width      = 360;
                    Obj.Height     = 270;
                }
            }
            Item.IsSelected = false;
        }
 public void ClearMapPolies()
 {
     MapPolygons.Clear();
     MapPolygon Dummy = new MapPolygon();
     SelectedPolygon = null;
 }
Beispiel #42
0
        void StartDraw(Location location)
        {
            if (DwType == DrawType.DrawLine || DwType == DrawType.DrawCalLength)
            {
                if (!locationList.Any())
                {
                    line           = new MapPolyline();
                    line.Locations = new LocationCollection()
                    {
                        location
                    };
                    line.StrokeThickness = 2;
                    line.Opacity         = 1;
                    line.Stroke          = new SolidColorBrush(Color.FromArgb(200, 253, 128, 68));
                    line.StrokeLineJoin  = PenLineJoin.Round;
                    locationList.Add(location);
                    lyr.Children.Add(line);
                    currentLine.Add(line);

                    AddToMapLayer(CreatePanel(null, "起点"), location, PositionOrigin.TopLeft);
                }
                else
                {
                    locationList.Add(location);
                    if (DwType == DrawType.DrawCalLength)
                    {
                        var panel = CreatePanel(null, GetDistanceStringFromLocations(locationList));
                        AddToMapLayer(panel, location, PositionOrigin.TopLeft);
                    }

                    if (line.Locations.Count == locationList.Count)
                    {
                        line.Locations[line.Locations.Count - 1] = location;
                    }
                }

                AddToMapLayer(CreatePoint(), location, PositionOrigin.Center);
            }
            else if (DwType == DrawType.DrawPolygon || DwType == DrawType.DrawCalArea)
            {
                if (!locationList.Any())
                {
                    poly           = new MapPolygon();
                    poly.Locations = new LocationCollection()
                    {
                        location
                    };
                    poly.StrokeThickness = 2;
                    poly.Opacity         = 0.5;
                    poly.Stroke          = new SolidColorBrush(Colors.Red);
                    poly.Fill            = new SolidColorBrush(Color.FromArgb(200, 253, 128, 68));
                    poly.StrokeLineJoin  = PenLineJoin.Round;
                    locationList.Add(location);
                    lyr.Children.Add(poly);
                    currentLine.Add(poly);
                }
                else
                {
                    locationList.Add(location);
                    if (poly.Locations.Count == locationList.Count)
                    {
                        poly.Locations[poly.Locations.Count - 1] = location;
                    }
                }
                AddToMapLayer(CreatePoint(), location, PositionOrigin.Center);
            }
            else if (DwType == DrawType.DrawRect)
            {
                if (!locationList.Any())
                {
                    poly           = new MapPolygon();
                    poly.Locations = new LocationCollection()
                    {
                        location, location, location, location
                    };
                    poly.StrokeThickness = 2;
                    poly.Opacity         = 0.5;
                    poly.Stroke          = new SolidColorBrush(Colors.Red);
                    poly.Fill            = new SolidColorBrush(Color.FromArgb(200, 253, 128, 68));
                    poly.StrokeLineJoin  = PenLineJoin.Round;

                    locationList.Add(location);
                    lyr.Children.Add(poly);
                    currentLine.Add(poly);
                }
                else
                {
                    locationList.Add(location);

                    var del = CreateDeleteButton();
                    lyr.AddChild(del, location, new System.Windows.Point(-13, 6));
                    currentLine.Add(del);
                    dicLines.Add(_tag, currentLine);

                    if (EndDrawRect != null)
                    {
                        EndDrawRect(this, locationList, -1, _tag);
                    }
                    DwType = DrawType.None;
                }
            }
            else if (DwType == DrawType.DrawCustomPoint)
            {
                locationList.Add(location);

                UpdateMovePanel(null, "", location);
                AddToMapLayer(CreatePoint(), location, PositionOrigin.Center);
                var del = CreateDeleteButton();
                lyr.AddChild(del, location, new System.Windows.Point(-13, 6));
                currentLine.Add(del);
                dicLines.Add(_tag, currentLine);

                if (EndDrawCustomPoint != null)
                {
                    EndDrawCustomPoint(this, locationList, -1, _tag);
                }
                DwType = DrawType.None;
            }
        }
        void OnPositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
        {
            SecondsCounter = 0; //reset counter
            double accuracy = e.Position.Location.HorizontalAccuracy;

            if (accuracy < e.Position.Location.VerticalAccuracy)
            {
                accuracy = e.Position.Location.VerticalAccuracy;
            }

            if (PolyCircle == null)
            {
                PolyCircle = new MapPolygon();

                PolyCircle.FillColor = Color.FromArgb(0x55, 0x00, 0xFF, 0x00);
                PolyCircle.StrokeColor = Color.FromArgb(0xFF, 0x00, 0x00, 0xFF);
                PolyCircle.StrokeThickness = 4;

                map1.MapElements.Add(PolyCircle);
            }
            Debug.WriteLine("locationa ccuracy :" +accuracy);
            
            if(accuracy < 50){
                accuracy = 50; // to be able to show the polygon
            }

            PolyCircle.Path = CreateCircle(e.Position.Location, accuracy);

            map1.Center = e.Position.Location;

            if (accuracy < 100)
            {
                map1.ZoomLevel = 16;
            }
            else
            {
                map1.ZoomLevel = 10;
            }
            if (latitudeText != null)
            {
                latitudeText.Text = "Lat: " + e.Position.Location.Latitude.ToString();
            }
            if (longitudeText != null)
            {
                longitudeText.Text = "Lon: " + e.Position.Location.Longitude.ToString();
            }
            if (accurazyText != null)
            {
                accurazyText.Text = "Acc: " + accuracy.ToString();
            }
            if (headingText != null)
            {
                headingText.Text = "Head: " + e.Position.Location.Course.ToString();
            }
        }
Beispiel #44
0
 /// <summary>
 /// Converts a MapPolygon into a Polygon object.
 /// </summary>
 /// <param name="polygon">A Bing Maps MapPolygon object</param>
 /// <returns>A Polygon representation of the MapPolygon object</returns>
 public static Polygon ToGeometry(this MapPolygon polygon)
 {
     return(new Polygon(polygon.Locations.ToGeometry()));
 }
        void RevomeItem()
        {
            if (selected_shape == "Rectangle")
            {
                if (Rectangle1 != null)
                {
                    map1.Layers.Remove(Rectangle1);
                    Rectangle1 = null;
                }
            }
            else if (selected_shape == "Circle")
            {
                if (Circle != null)
                {
                    map1.Layers.Remove(Circle);
                    Circle = null;
                }
            }
            else if (selected_shape == "Polygons")
            {
                if (PolyCircle != null)
                {
                    map1.MapElements.Remove(PolyCircle);
                    PolyCircle = null;

                    map1.MapElements.Remove(PolyRect);
                    PolyRect = null;
                }
            }
        }
    private void DrawShapes(object sender, RoutedEventArgs e)
    {
      if (!DeleteShapesFromLevel(1))
      {
        var strokeColor = Colors.DarkBlue;
        strokeColor.A = 100;
        var fillColor = Colors.Blue;
        fillColor.A = 100;

        foreach (var dataObject in PointList.GetAreas())
        {
          var shape = new MapPolygon
          {
            StrokeThickness = 3,
            StrokeColor = strokeColor,
            FillColor = fillColor,
            StrokeDashed = true,
            ZIndex = 1,
            Path = new Geopath(dataObject.Points)
          };
          shape.AddData(dataObject);

          MyMap.MapElements.Add(shape);
        }
      }
    }
        private void DrawAlarmsOnMap()
        {
            Map.MapElements.Clear();

            foreach (var alarm in ViewModel.Alarms.Select(alarmViewModel => alarmViewModel.Alarm))
            {
                var mapCircle = new MapPolygon
                {
                    StrokeThickness = 1,
                    StrokeColor = alarm.Enabled ? AlarmColors.ActiveAlarmDarkColor : AlarmColors.InactiveAlarmDarkColor,
                    FillColor = alarm.Enabled ? AlarmColors.ActiveAlarmLightColor : AlarmColors.InactiveAlarmLightColor,
                    StrokeDashed = false,
                    Path = new Geopath(alarm.GetPointsForCirle())
                };
                Map.MapElements.Add(mapCircle);
            }
        }
        public MainPage()
        {
            // Check is the instance doesnt already exist.
            if (Current != null)
            {
                //if there is an instance in the app already present then simply throw an error.
                throw new Exception("Only one MainPage can exist in a App.");
            }

            // This is a static public property that allows downstream pages to get a handle to the MainPage instance
            // in order to call methods that are in this class.
            Current = this;

            // Create the LibraryManager
            new LibraryManager();
            LibraryManager.Current.PropertyChanged += LibraryManager_PropertyChanged;

            MapElements.IsSourceGrouped = false;

            this.InitializeComponent();
            (this.Content as FrameworkElement).DataContext = this;
            
            ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow);
            
            SearchBox.DataContext = LibraryManager.Current;

            /////////////////////////////////////////////////////////// NAVIGATION MANAGER INITIALIZATION ////////////////////////////////
            new NavigationManager(ref SheetsFrame, ref scrollViewer );
            NavigationManager.Current.PropertyChanged += NavigationManager_PropertyChanged;
            
            // Create the SettingsManager
            new SettingsManager(ref MapMain);
            this.RequestedTheme = SettingsManager.Current.AppTheme;
            SettingsManager.Current.PropertyChanged += SettingsManager_PropertyChanged;

            MapInteractionButtons.DataContext = SettingsManager.Current;

            #region TitleBar / StatusBar

            //PC customization
            if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.UI.ViewManagement.ApplicationView"))
            {
                var titleBar = ApplicationView.GetForCurrentView().TitleBar;
                if (titleBar != null)
                {
                    titleBar.BackgroundColor = Color.FromArgb(255, 30, 30, 30);
                    titleBar.ButtonBackgroundColor = titleBar.BackgroundColor;

                    titleBar.InactiveBackgroundColor = Colors.Black;
                    titleBar.ButtonInactiveBackgroundColor = titleBar.InactiveBackgroundColor;

                    titleBar.ForegroundColor = Colors.White;
                    titleBar.InactiveForegroundColor = titleBar.ForegroundColor;
                    titleBar.ButtonForegroundColor = titleBar.ForegroundColor;
                    titleBar.ButtonHoverForegroundColor = titleBar.ForegroundColor;
                    titleBar.ButtonInactiveForegroundColor = titleBar.ForegroundColor;
                    titleBar.ButtonPressedForegroundColor = titleBar.ForegroundColor;

                    titleBar.ButtonHoverBackgroundColor = Color.FromArgb(255, 60, 60, 60);
                    titleBar.ButtonPressedBackgroundColor = Color.FromArgb(255,80, 80,80);
                }
            }

            // Handle the StatusBar on Mobile
            if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
            {
                statusBar = StatusBar.GetForCurrentView();

                statusBar.BackgroundColor = Colors.Transparent;
                statusBar.ForegroundColor = Colors.Black;
            }

            #endregion
            
            SearchBox.GotFocus += SearchBox_GotFocus;
            SearchBox.LostFocus += SearchBox_LostFocus;

            // Center the map to the last position.
            MapMain.Center = new Geopoint(new BasicGeoposition() {
                Latitude = SettingsManager.Current.LastMapCenter.X,
                Longitude = SettingsManager.Current.LastMapCenter.Y
            });
            MapMain.ZoomLevel = SettingsManager.Current.LastMapZoom;
            MapMain.Heading = SettingsManager.Current.LastMapHeading;
            MapMain.DesiredPitch = SettingsManager.Current.LastMapPitch;

            MapMain.ZoomInteractionMode = SettingsManager.Current.ShowZoomControl ? MapInteractionMode.GestureAndControl : MapInteractionMode.GestureOnly;
            MapMain.RotateInteractionMode = SettingsManager.Current.ShowRotationControl ? MapInteractionMode.GestureAndControl : MapInteractionMode.GestureOnly;
            MapMain.TiltInteractionMode = SettingsManager.Current.ShowTiltControl ? MapInteractionMode.GestureAndControl : MapInteractionMode.GestureOnly;



            GeolocationPin = new MapGeolocationPin();
            MapMain.Children.Add(GeolocationPin);
            MapControl.SetNormalizedAnchorPoint(GeolocationPin, new Point(0.5, 1));
            MapControl.SetLocation(GeolocationPin, SettingsManager.Current.LastGeoPosition.ToGeopoint());

            AccuracyCircle = new MapPolygon()
            {
                FillColor = Windows.UI.Color.FromArgb(60, 97, 211, 32),
                StrokeColor = Windows.UI.Color.FromArgb(100, 255, 255, 255)
            };

            MapMain.MapElements.Add(AccuracyCircle);

            // Location tracking location and Compass
            StartTracking();


            SetSnapPoints();
        }
        void UpDateMyPositionCircle()
        {
            if (myPosition != null)
            {
                double accuracy = myPosition.HorizontalAccuracy;

                if (accuracy < myPosition.VerticalAccuracy)
                {
                    accuracy = myPosition.VerticalAccuracy;
                }

                if (PolyCircle == null)
                {
                    PolyCircle = new MapPolygon();

                    PolyCircle.FillColor = Color.FromArgb(0x55, 0x00, 0xFF, 0x00);
                    PolyCircle.StrokeColor = Color.FromArgb(0xFF, 0x00, 0xFF, 0x00);
                    PolyCircle.StrokeThickness = 1;

                    map1.MapElements.Add(PolyCircle);
                }

                if (accuracy < 50)
                {
                    accuracy = 50; // to be able to show the polygon
                }

                PolyCircle.Path = CreateCircle(myPosition, accuracy);
            }
            else if (PolyCircle != null)
            {
                map1.MapElements.Remove(PolyCircle);
                PolyCircle = null;
            }
        }
Beispiel #50
0
        private void myMap_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            listBox.UnselectAll();
            X_box.Text = "";
            Y_box.Text = "";

            Point mousepnt = e.GetPosition(this);

            mousepnt.Y -= 47;
            mousepnt.X -= 105;
            Location mapMouse = myMap.ViewportPointToLocation(mousepnt);

            if (add)
            {
                coord.Add(new Coordonnees(mapMouse.Longitude, mapMouse.Latitude));
                loc.Add(new Location(coord[nbCoord].Y, coord[nbCoord].X));

                StatusText.Text = coord[nbCoord].ToString();

                if (!(bool)RadioPOI.IsChecked)
                {
                    nbCoord++;
                }

                if ((bool)RadioLine.IsChecked)
                {
                    Boutton_valider.Visibility = Visibility.Hidden;

                    if (prevRadio != 1)
                    {
                        Desc_Box.Text = "";
                        listBox.UnselectAll();
                    }

                    if ((Keyboard.Modifiers & ModifierKeys.Control) > 0 && coord.Count > 1)
                    {
                        nbItems++;
                        SolidColorBrush newBrush = (SolidColorBrush)superCombo.SelectedColor;
                        Polyline        polyline = new Polyline(coord, newBrush.Color, 2);
                        userData.Add(polyline);

                        MapPolyline mapPolyline = new MapPolyline
                        {
                            Locations           = loc,
                            Stroke              = newBrush,
                            SnapsToDevicePixels = true
                        };

                        coord   = new List <Coordonnees>();
                        loc     = new LocationCollection();
                        nbCoord = 0;
                        myMap.Children.Add(mapPolyline);

                        if (String.IsNullOrEmpty(Desc_Box.Text))
                        {
                            listBox.Items.Add("Polyline" + nbItems);
                        }
                        else
                        {
                            listBox.Items.Add(Desc_Box.Text);
                        }

                        Desc_Box.Text = "";

                        StatusText.Text = "Polyline ajouté";
                    }
                }

                if ((bool)RadioGone.IsChecked)
                {
                    Boutton_valider.Visibility = Visibility.Hidden;

                    if (prevRadio != 2)
                    {
                        Desc_Box.Text = "";
                        listBox.UnselectAll();
                    }

                    if ((Keyboard.Modifiers & ModifierKeys.Control) > 0 && coord.Count > 1)
                    {
                        nbItems++;
                        coord.Add(coord[0]);
                        loc.Add(loc[0]);
                        SolidColorBrush newBrush = (SolidColorBrush)superCombo.SelectedColor;
                        Polygon         polygon  = new Polygon(coord, newBrush.Color, newBrush.Color, 0.3);
                        userData.Add(polygon);

                        MapPolygon mapPolygon = new MapPolygon
                        {
                            Locations           = loc,
                            Stroke              = newBrush,
                            SnapsToDevicePixels = true,
                        };

                        mapPolygon.Fill = new SolidColorBrush(polygon.Bgcolor)
                        {
                            Opacity = 0.3
                        };

                        coord   = new List <Coordonnees>();
                        loc     = new LocationCollection();
                        nbCoord = 0;
                        myMap.Children.Add(mapPolygon);

                        if (String.IsNullOrEmpty(Desc_Box.Text))
                        {
                            listBox.Items.Add("Polygon" + nbItems);
                        }
                        else
                        {
                            listBox.Items.Add(Desc_Box.Text);
                        }

                        Desc_Box.Text   = "";
                        StatusText.Text = "Polygone ajouté";
                    }
                }

                if ((bool)RadioPOI.IsChecked)
                {
                    if (prevRadio != 3)
                    {
                        Desc_Box.Text = "";
                        listBox.UnselectAll();
                        superCombo.Visibility = Visibility.Hidden;
                    }

                    Pushpin pin = new Pushpin();
                    POI     poi = new POI();

                    pin.Location = loc[0];
                    poi          = new POI(Desc_Box.Text, coord[nbCoord].X, coord[nbCoord].Y);

                    if (String.IsNullOrEmpty(poi.Description))
                    {
                        poi.Description = "POI" + nbPoi;
                    }

                    userData.Add(poi);

                    coord   = new List <Coordonnees>();
                    loc     = new LocationCollection();
                    nbCoord = 0;
                    myMap.Children.Add(pin);

                    listBox.Items.Add(poi.Description);

                    Desc_Box.Text = "";
                    nbPoi++;

                    StatusText.Text = "POI ajouté";
                }
            }

            if (modify)
            {
                int i = 0;


                foreach (CartoObj o in userData.Liste)
                {
                    if (o.IsPointClose(mapMouse.Longitude, mapMouse.Latitude, 0.2))
                    {
                        break;
                    }
                    else
                    {
                        i++;
                    }
                }

                listBox.SelectedIndex = i;

                Boutton_valider.Visibility = Visibility.Visible;

                if (listBox.SelectedIndex >= 0)
                {
                    Desc_Box.Text = listBox.SelectedItem.ToString();
                    if (userData.Liste[listBox.SelectedIndex] is POI)
                    {
                        superCombo.Visibility = Visibility.Hidden;
                    }
                }
            }

            if (delete && userData.Liste.Count > 0)
            {
                int i = 0;

                foreach (CartoObj o in userData.Liste)
                {
                    if (o.IsPointClose(mapMouse.Longitude, mapMouse.Latitude, 0.2))
                    {
                        break;
                    }
                    else
                    {
                        i++;
                    }
                }

                Console.WriteLine(i);

                if (i <= listBox.Items.Count - 1)
                {
                    if (myMap.Children[i] is MapShapeBase)
                    {
                        nbItems--;
                    }
                    else
                    if (myMap.Children[i] is Pushpin)
                    {
                        nbPoi--;
                    }

                    StatusText.Text = listBox.Items[i].ToString() + " supprimé";

                    listBox.Items.RemoveAt(i);
                    myMap.Children.RemoveAt(i);
                    userData.Liste.RemoveAt(i);
                    listBox.UnselectAll();

                    Desc_Box.Text = "";
                }
                else
                {
                    StatusText.Text = "Aucun objet a proximité";
                }
            }
        }
        void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            double latitude = -25.292; 
            double longitude = -65.353;

            //Agregar un Hexágono
            MapPolygon polygon = new MapPolygon();
            polygon.Fill = new LinearGradientBrush(new GradientStopCollection() 
            { 
                new GradientStop { Color = Colors.Black, Offset = 0 },
                new GradientStop { Color = Colors.White, Offset = 1 }
            }, 0);
            //polygon.Fill = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red);
            polygon.Stroke = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Yellow);
            polygon.StrokeThickness = 5;
            polygon.Opacity = 0.7;
            polygon.Locations = RenderHexagon(latitude, longitude);

            mapControl.Children.Add(polygon);

            MapLayer imageLayer = new MapLayer();
            imageLayer.Name = "ImageLayer";

            /*
            Pushpin pin = new Pushpin();
            pin.ContentTemplate = this.Resources["PinTemplate"] as DataTemplate;
            pin.Location = new Location(latitude, longitude);
            mapControl.Children.Add(pin);
             * */

            
            Image image = new Image();
            image.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri("G.png", UriKind.Relative));
            image.Opacity = 1;
            image.Stretch = System.Windows.Media.Stretch.None;
            image.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
            image.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
            image.RenderTransformOrigin = new Point(0.5, 0.5);
            imageLayer.AddChild(image, new Location(latitude, longitude), PositionOrigin.Center);
            //Add the image layer to the map
            mapControl.Children.Add(imageLayer);
            

            /*
            //Agrego un Tile Layer
            tileLayer = new MapTileLayer();

            // The source of the overlay.
            LocationRectTileSource tileSource = new LocationRectTileSource();
            tileSource.UriFormat = "https://guardianes.blob.core.windows.net/landsat/20130603_NEW/";
            // The zoom range that the tile overlay is visibile within
            tileSource.ZoomRange = new Range<double>(6, 13);
            // The bounding rectangle area that the tile overaly is valid in.
            tileSource.BoundingRectangle = mapControl.BoundingRectangle;

            // Adds the tile overlay to the map layer
            tileLayer.TileSources.Add(tileSource);

            // Adds the map layer to the map
            if (!mapControl.Children.Contains(tileLayer))
            {
                mapControl.Children.Add(tileLayer);
            }



            var topLeft = FromLonLat(mapControl.BoundingRectangle.West, mapControl.BoundingRectangle.North);
            var bottomRight = FromLonLat(mapControl.BoundingRectangle.East, mapControl.BoundingRectangle.South);

            var extent = new BruTile.Extent(topLeft.X, bottomRight.Y, bottomRight.X, topLeft.Y);

            var schema = new SphericalMercatorWorldSchema();
            schema.Extent = extent;

            var tiles = schema.GetTilesInView(extent, 12);
            foreach (var tile in tiles)
            {

            }
             * */

        }
 /**
  * (Ignore)
  */
 public LuaMapPolygon(MapPolygon polygon)
 {
     this.polygon = polygon;
 }
Beispiel #53
0
        void AddItem()
        {
            if (selected_shape == "Rectangle")
            {
                if (Rectangle1 == null)
                {
                    Rectangle1 = new MapLayer();

                    Rectangle rectanggle = new Rectangle();
                    rectanggle.Opacity = 0.7;

                    //Set the Rectangle properties
                    rectanggle.Name            = "jukka";
                    rectanggle.Fill            = new SolidColorBrush(Colors.Green);
                    rectanggle.Stroke          = new SolidColorBrush(Colors.Blue);
                    rectanggle.StrokeThickness = 4;
                    rectanggle.Width           = 200;
                    rectanggle.Height          = 200;

                    Rectangepoint = new GeoCoordinate(60.22, 24.81);

                    MapOverlay pin1 = new MapOverlay();
                    pin1.GeoCoordinate = Rectangepoint;
                    // pin1.PositionOrigin = PositionOrigin.Center;
                    pin1.Content = rectanggle;

                    Rectangle1.Add(pin1);
                    map1.Layers.Add(Rectangle1);
                }
            }
            else if (selected_shape == "Circle")
            {
                if (Circle == null)
                {
                    Circle = new MapLayer();

                    Ellipse Circhegraphic = new Ellipse();
                    Circhegraphic.Fill            = new SolidColorBrush(Colors.Yellow);
                    Circhegraphic.Stroke          = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red);
                    Circhegraphic.StrokeThickness = 10;
                    Circhegraphic.Opacity         = 0.8;
                    Circhegraphic.Height          = 100;
                    Circhegraphic.Width           = 100;

                    Circlepoint = new GeoCoordinate(60.22, 24.81);

                    MapOverlay circc = new MapOverlay();
                    circc.GeoCoordinate = Circlepoint;
                    // pin1.PositionOrigin = PositionOrigin.Center;
                    circc.Content = Circhegraphic;

                    Circle.Add(circc);
                    map1.Layers.Add(Circle);
                }
            }
            else if (selected_shape == "Polygons")
            {
                if (PolyCircle == null)
                {
                    PolyCircle = new MapPolygon();

                    GeoCoordinateCollection boundingLocations = CreateCircle(new GeoCoordinate(60.30, 24.70), 10);

                    //Set the polygon properties
                    PolyCircle.Path            = boundingLocations;
                    PolyCircle.FillColor       = Color.FromArgb(0x55, 0xFF, 0xFF, 0x00);
                    PolyCircle.StrokeColor     = Color.FromArgb(0xFF, 0xFF, 0x00, 0xFF);
                    PolyCircle.StrokeThickness = 4;

                    map1.MapElements.Add(PolyCircle);

                    PolyRect = new MapPolygon();

                    GeoCoordinateCollection RectLocations = CreateRectangle(new GeoCoordinate(60.35, 24.60), new GeoCoordinate(60.25, 24.80));

                    //Set the polygon properties
                    PolyRect.Path            = RectLocations;
                    PolyRect.FillColor       = Color.FromArgb(0x55, 0x00, 0x00, 0x00);
                    PolyRect.StrokeColor     = Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF);
                    PolyRect.StrokeThickness = 4;

                    map1.MapElements.Add(PolyRect);
                }
            }
        }
Beispiel #54
0
    private void    DragSelect(MapPolygon path)
    {
        List <Vector3> pathVerts = path.GetVertsRaw();

        if (Event.current.type == EventType.Repaint)
        {
            if (drag)
            {
                Vector3 pt1 = HandleUtility.GUIPointToWorldRay(dragStart).GetPoint(0.2f);
                Vector3 pt2 = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition).GetPoint(0.2f);
                Vector3 pt3 = HandleUtility.GUIPointToWorldRay(new Vector2(dragStart.x, Event.current.mousePosition.y)).GetPoint(0.2f);
                Vector3 pt4 = HandleUtility.GUIPointToWorldRay(new Vector2(Event.current.mousePosition.x, dragStart.y)).GetPoint(0.2f);
                Handles.DrawSolidRectangleWithOutline(new Vector3[] { pt1, pt3, pt2, pt4 }, new Color(0, 0.5f, 0.25f, 0.25f), new Color(0, 0.5f, 0.25f, 0.5f));
            }
        }

        if (Event.current.shift && Event.current.control)
        {
            switch (Event.current.type)
            {
            case EventType.MouseDrag:
                SceneView.RepaintAll();
                break;

            case EventType.MouseMove:
                SceneView.RepaintAll();
                break;

            case EventType.MouseDown:
                if (Event.current.button != 0)
                {
                    break;
                }

                dragStart = Event.current.mousePosition;
                drag      = true;

                break;

            case EventType.MouseUp:
                if (Event.current.button != 0)
                {
                    break;
                }

                Vector2 dragEnd = Event.current.mousePosition;

                selectedPoints.Clear();
                for (int i = 0; i < pathVerts.Count; i++)
                {
                    float left   = Mathf.Min(dragStart.x, dragEnd.x);
                    float right  = Mathf.Max(dragStart.x, dragEnd.x);
                    float top    = Mathf.Min(dragStart.y, dragEnd.y);
                    float bottom = Mathf.Max(dragStart.y, dragEnd.y);

                    Rect r = new Rect(left, top, right - left, bottom - top);
                    if (r.Contains(HandleUtility.WorldToGUIPoint(path.transform.TransformPoint(pathVerts[i]))))
                    {
                        selectedPoints.Add(i);
                    }
                }

                HandleUtility.AddDefaultControl(0);
                drag = false;
                SceneView.RepaintAll();
                break;

            case EventType.Layout:
                HandleUtility.AddDefaultControl(GetHashCode());
                break;
            }
        }
        else if (drag == true)
        {
            drag = false;
            Repaint();
        }
    }