protected override async void OnAppearing()
        {
            base.OnAppearing();
            try
            {
                var position = await Utilities.GetCurrentGeolocationAsync();

                MyPosition = new Position(position.Latitude, position.Longitude);
                PinCollection.Add(new CustomPin()
                {
                    Id       = "Ryan",
                    Position = MyPosition,
                    Label    = "Ryan",
                    Type     = PinType.Generic,
                    Url      = "http://www.ryanrauch.com/"
                });

                PolygonCollection.Add(new Position(30.39983, -97.723719));
                PolygonCollection.Add(new Position(30.40182, -97.722989));
                PolygonCollection.Add(new Position(30.402172, -97.724245));
                PolygonCollection.Add(new Position(30.403236, -97.72374));
                PolygonCollection.Add(new Position(30.402606, -97.721659));
                PolygonCollection.Add(new Position(30.399562, -97.723011));

                //UpdateMapGrid();
                //UpdateLocation();
                //UpdatePolygons();
                //MapContent.PropertyChanged += MapContent_PropertyChanged; //this has not worked yet, but used to change grids when zoomed by user
                //UpdateRestService();
            }
            catch (Exception ex)
            {
                await DisplayAlert(ex.Message, ex.StackTrace, "OK");
            }
        }
        /*public async void UpdateRestService()
         * {
         *  try
         *  {
         *      RestService svc = new RestService();
         *      var regions = await svc.GetRegionsAsync();
         *      await DisplayAlert(regions.Count.ToString(), "regions count", "OK");
         *  }
         *  catch (Exception ex)
         *  {
         *      await DisplayAlert(ex.Message, ex.StackTrace, "OK");
         *  }
         * }*/

        public void UpdatePolygons()
        {
            //ObservableCollection<Position> rockrose = new ObservableCollection<Position>();
            PolygonCollection.Add(new Position(30.39983, -97.723719));
            PolygonCollection.Add(new Position(30.40182, -97.722989));
            PolygonCollection.Add(new Position(30.402172, -97.724245));
            PolygonCollection.Add(new Position(30.403236, -97.72374));
            PolygonCollection.Add(new Position(30.402606, -97.721659));
            PolygonCollection.Add(new Position(30.399562, -97.723011));
            //6 original coordinates

            /*
             * // Intersection removing an interior polygon
             * PolygonCollection.Add(new Position(30.401807, -97.722484));
             * PolygonCollection.Add(new Position(30.402455, -97.722248));
             * PolygonCollection.Add(new Position(30.402561, -97.722623));
             * PolygonCollection.Add(new Position(30.402302, -97.722784));
             */
            //TODO: look into xamarin and mvvmlight
            //also look into collectionchanged event??


            //OnPropertyChanged("PolygonCollection");
            //PolygonCollection = rockrose;
        }
        private static IMultiPolygon FlattenMultiPolygon(IMultiPolygon mpoly, FgfGeometryFactory factory)
        {
            PolygonCollection polys = new PolygonCollection();

            for (int i = 0; i < mpoly.Count; i++)
            {
                polys.Add(FlattenPolygon(mpoly[i], factory));
            }
            return(factory.CreateMultiPolygon(polys));
        }
示例#4
0
        public void UpdatePolygons()
        {
            //ObservableCollection<Position> rockrose = new ObservableCollection<Position>();
            PolygonCollection.Add(new Position(30.39983, -97.723719));
            PolygonCollection.Add(new Position(30.40182, -97.722989));
            PolygonCollection.Add(new Position(30.402172, -97.724245));
            PolygonCollection.Add(new Position(30.403236, -97.72374));
            PolygonCollection.Add(new Position(30.402606, -97.721659));
            PolygonCollection.Add(new Position(30.399562, -97.723011));

            //TODO: look into xamarin and mvvmlight
            //also look into collectionchanged event??


            //OnPropertyChanged("PolygonCollection");
            //PolygonCollection = rockrose;
        }
 private static IMultiPolygon FlattenMultiPolygon(IMultiPolygon mpoly, FgfGeometryFactory factory)
 {
     PolygonCollection polys = new PolygonCollection();
     for (int i = 0; i < mpoly.Count; i++)
     {
         polys.Add(FlattenPolygon(mpoly[i], factory));
     }
     return factory.CreateMultiPolygon(polys);
 }