示例#1
0
        /// <summary>
        /// Add a temporary geometry to the map
        /// </summary>
        /// <param name="screenPt"></param>
        public void AddTempPoint(Mapsui.UI.Forms.Position screenPt)
        {
            if (CanAddMapGeometry)
            {
                if (TempCoordinates.Count == 0)
                {
                    MessagingCenter.Send <MapPageVM>(this, "SelectGeometryType");
                }
                if (Map.Layers[Map.Layers.Count - 1] == TempLayer)
                {
                    Map.Layers.Remove(TempLayer);
                }
                var mapPt = new Mapsui.Geometries.Point(Convert.ToDouble(screenPt.Longitude), Convert.ToDouble(screenPt.Latitude));
                if (GeometryType == "Punkt")
                {
                    TempCoordinates = new List <Mapsui.Geometries.Point>()
                    {
                        mapPt
                    };
                }
                else if (GeometryType == "Polygon" && TempCoordinates.Count > 0)
                {
                    var prevCoords = new List <Mapsui.Geometries.Point>(TempCoordinates);
                    if (TempCoordinates.Count == 1)
                    {
                        //Complete the polygon
                        TempCoordinates.Add(TempCoordinates[0]);
                    }
                    TempCoordinates.Insert(TempCoordinates.Count - 1, mapPt);
                }
                else
                {
                    TempCoordinates.Add(mapPt);
                }

                TempLayer = MapModel.CreateTempLayer(TempCoordinates);
                Map.Layers.Insert(Map.Layers.Count, TempLayer);
                (SaveGeomCommand as Command).ChangeCanExecute();
            }
        }
示例#2
0
 public Location(Mapsui.UI.Forms.Position position)
 {
     Latitude  = position.Latitude;
     Longitude = position.Longitude;
 }