Пример #1
0
 private bool IsInsideMap(PixelCoordinates pixelCoordinates)
 {
     return(pixelCoordinates.X < (Width - _pinRadius) &&
            pixelCoordinates.X > _pinRadius &&
            pixelCoordinates.Y < Height &&
            pixelCoordinates.Y > (_pinRadius * 2 + _pinOffset));
 }
Пример #2
0
 public virtual LatLonCoordinates PixelToLatLon(PixelCoordinates pixelCoordinates)
 {
     return(new LatLonCoordinates()
     {
         Longitude = _formulae.XToLongitude(pixelCoordinates.X),
         Latitude = _formulae.YToLatitude(pixelCoordinates.Y)
     });
 }
Пример #3
0
        private PixelCoordinates GetMarkerPixelCoordinates(Coordinates coordinates, int zoomLevel)
        {
            var worldCoords = new WorldCoordinates(coordinates);

            var deltaFromCentre = worldCoords - WorldCentre;

            var pixelDeltaFromCentre = new PixelCoordinates(deltaFromCentre, zoomLevel);

            return(GetPixelCentre(zoomLevel) + pixelDeltaFromCentre);
        }
        public void BsonValueInCorrectFormatConvertsToPixelFormat()
        {
            var coord = new PixelCoordinates()
            {
                X = 1, Y = 2
            };
            var bson   = coord.ToBsonDocument().AsBsonValue;
            var result = bson.toPixelCoordinate();

            Assert.AreEqual(1, result.X);
            Assert.AreEqual(2, result.Y);
        }
Пример #5
0
        public virtual LatLonCoordinates GetLatLonCenterForZoom(PixelCoordinates fixedPoint, double newLonSpan, double newLatSpan, double lonFactor, double latFactor)
        {
            var xFactor          = fixedPoint.X / this.Map.Size.Width;
            var yFactor          = fixedPoint.Y / this.Map.Size.Height;
            var latLonFixedPoint = this.PixelToLatLon(fixedPoint);

            return(new LatLonCoordinates()
            {
                Latitude = latLonFixedPoint.Latitude + newLatSpan * (yFactor - .5d),
                Longitude = latLonFixedPoint.Longitude + newLonSpan * (.5d - xFactor)
            });
        }
Пример #6
0
 public virtual LatLonCoordinates PixelToLatLon(PixelCoordinates pixelCoordinates)
 {
     if (this.Map.RotateReference)
     {
         var result = new LatLonCoordinates()
         {
             Longitude = pixelCoordinates.X * this.Map.Boundaries.LongitudeSpan / this.Map.Size.Width - this.Map.Boundaries.LongitudeHalfSpan,
             Latitude  = this.Map.Boundaries.LatitudeHalfSpan - pixelCoordinates.Y * this.Map.Boundaries.LatitudeSpan / this.Map.Size.Height
         };
         return(this.Map.Boundaries.Center.GetOldCoordinates(result));
     }
     else
     {
         return(new LatLonCoordinates()
         {
             Longitude = this.Map.Boundaries.LeftNotBound + pixelCoordinates.X * this.Map.Boundaries.LongitudeSpan / this.Map.Size.Width,
             Latitude = this.Map.Boundaries.TopNotBound - pixelCoordinates.Y * this.Map.Boundaries.LatitudeSpan / this.Map.Size.Height
         });
     }
 }
Пример #7
0
        private IEnumerable <IEnumerable <PixelCoordinates> > getPoints(PolygonObject polygonObject, bool crossesLeftToRight, bool crossesRightToLeft)
        {
            var points = polygonObject.Polygon.Points;

            if (points == null)
            {
                return(new IEnumerable <PixelCoordinates> [0]);
            }
            else if (!crossesLeftToRight && !crossesRightToLeft)
            {
                return(new IEnumerable <PixelCoordinates>[]
                {
                    points.Select(point => this.Map.Projection.LatLonToPixel(new LatLonCoordinates()
                    {
                        Latitude = point.Latitude, Longitude = point.Longitude.FixCoordinate(false)
                    })).ToList()
                });
            }
            else
            {
                var left  = new PixelCoordinates[points.Length];
                var right = new PixelCoordinates[points.Length];
                for (int i = 0; i < points.Length; i++)
                {
                    var point      = points[i];
                    var rightPoint = crossesLeftToRight ? point : new LatLonCoordinates()
                    {
                        Latitude = point.Latitude, Longitude = point.Longitude + 360
                    };
                    var leftPoint = crossesRightToLeft ? point : new LatLonCoordinates()
                    {
                        Latitude = point.Latitude, Longitude = point.Longitude - 360
                    };
                    right[i] = this.Map.Projection.LatLonToPixel(rightPoint);
                    left[i]  = this.Map.Projection.LatLonToPixel(leftPoint);
                }
                return(new IEnumerable <PixelCoordinates>[] { right, left });
            }
        }
Пример #8
0
 public static System.Drawing.Point AsGdiPoint(this PixelCoordinates point)
 {
     return(new System.Drawing.Point((int)Math.Round(point.X), (int)Math.Round(point.Y)));
 }
Пример #9
0
 public static System.Drawing.PointF AsGdiPointF(this PixelCoordinates point)
 {
     return(new System.Drawing.PointF((float)point.X, (float)point.Y));
 }