예제 #1
0
     /// <summary>
     /// regenerates shape of polygon
     /// </summary>
     public virtual void RegenerateShape(GMapControl map)
     {
          if(map != null)
          {
             this.Map = map;
              
             if(Points.Count > 1)
             {
                Position = Points[0];
                
                var localPath = new List<System.Windows.Point>(Points.Count);
                var offset = Map.FromLatLngToLocal(Points[0]);
                foreach(var i in Points)
                {
                   var p = Map.FromLatLngToLocal(i);
                   localPath.Add(new System.Windows.Point(p.X - offset.X, p.Y - offset.Y));
                }
 
                var shape = map.CreatePolygonPath(localPath);
 
                if(this.Shape is Path)
                {
                   (this.Shape as Path).Data = shape.Data;
                }
                else
                {
                   this.Shape = shape;
                }
             }
             else
             {
                this.Shape = null;
             }
          }
     }
예제 #2
0
      /// <summary>
      /// regenerates shape of polygon
      /// </summary>
      public virtual void RegeneratePolygonShape(GMapControl map)
      {
         this.map = map;

         if(map != null && Polygon.Count > 1)
         {
            var localPath = new List<System.Windows.Point>();
            var offset = Map.FromLatLngToLocal(Polygon[0]);
            foreach(var i in Polygon)
            {
               var p = Map.FromLatLngToLocal(new PointLatLng(i.Lat, i.Lng));
               localPath.Add(new System.Windows.Point(p.X - offset.X, p.Y - offset.Y));
            }

            var shape = map.CreatePolygonPath(localPath);

            if(this.Shape != null && this.Shape is Path)
            {
               (this.Shape as Path).Data = shape.Data;
            }
            else
            {
               this.Shape = shape;
            }
         }
      }