internal void DrawLine(SKMapPosition start, SKMapPosition end, SKPaint paint, bool shortLine = true) { Tuple <SKMapPosition, SKMapPosition> line = new Tuple <SKMapPosition, SKMapPosition>(start, end); Tuple <SKPoint, SKPoint> canvasLine = ConvertLineToLocal(line, shortLine); _Canvas.DrawLine(canvasLine.Item1.X, canvasLine.Item1.Y, canvasLine.Item2.X, canvasLine.Item2.Y, ScaleStrokeForPlatform(paint)); }
public static CLLocationCoordinate2D ToLocationCoordinate(this SKMapPosition self) { Position position = new Position(self.Latitude, (self.Longitude + MapSpanExtensions.MaxLongitude) % MapSpanExtensions.WorldLongitude + MapSpanExtensions.MinLongitude); return(position.ToLocationCoordinate()); }
public static Point ToMercator(this SKMapPosition gpsCoords) { double x = (gpsCoords.Longitude + MapSpanExtensions.MaxLongitude) / MapSpanExtensions.WorldLongitude * MercatorMapSize; double y = MercatorCenterOffset - MercatorRadius * Math.Log((1 + Math.Sin(gpsCoords.Latitude * Math.PI / 180.0)) / (1 - Math.Sin(gpsCoords.Latitude * Math.PI / 180.0))) / 2.0; return(new Point(x, y)); }
public static Rectangle ToMercator(this SKMapSpan gpsSpan) { SKMapPosition topLeftGps = gpsSpan.TopLeft; SKMapPosition bottomRightGps = gpsSpan.BottomRight; Point canvasTopLeft = topLeftGps.ToMercator(); Point canvasBottomRight = bottomRightGps.ToMercator(); return(new Rectangle(canvasTopLeft.X, canvasTopLeft.Y, canvasBottomRight.X - canvasTopLeft.X, canvasBottomRight.Y - canvasTopLeft.Y)); }
public static LatLng ToLatLng(this SKMapPosition self) { return(new LatLng(self.Latitude, self.Longitude)); }
public static Position ToGps(this Point mercatorCoords) { SKMapPosition mapPosition = mercatorCoords.ToSKMapPosition(); return(new Position(mapPosition.Latitude, mapPosition.Longitude)); }