public GPoint FromLatLngToLocal(PointLatLng latlng) { GPoint pLocal = Provider.Projection.FromLatLngToPixel(latlng, Zoom); pLocal.Offset(renderOffset); pLocal.OffsetNegative(compensationOffset); return(pLocal); }
public PointLatLng FromLocalToLatLng(long x, long y) { GPoint p = new GPoint(x, y); p.OffsetNegative(renderOffset); p.Offset(compensationOffset); return(Provider.Projection.FromPixelToLatLng(p, Zoom)); }
internal void GoToCurrentPositionOnZoom() { compensationOffset = positionPixel; // TODO: fix // reset stuff renderOffset = GPoint.Empty; dragPoint = GPoint.Empty; // goto location and centering if (MouseWheelZooming) { if (MouseWheelZoomType != MouseWheelZoomType.MousePositionWithoutCenter) { GPoint pt = new GPoint(-(positionPixel.X - Width / 2), -(positionPixel.Y - Height / 2)); pt.Offset(compensationOffset); renderOffset.X = pt.X - dragPoint.X; renderOffset.Y = pt.Y - dragPoint.Y; } else // without centering { renderOffset.X = -positionPixel.X - dragPoint.X; renderOffset.Y = -positionPixel.Y - dragPoint.Y; renderOffset.Offset(mouseLastZoom); renderOffset.Offset(compensationOffset); } } else // use current map center { mouseLastZoom = GPoint.Empty; GPoint pt = new GPoint(-(positionPixel.X - Width / 2), -(positionPixel.Y - Height / 2)); pt.Offset(compensationOffset); renderOffset.X = pt.X - dragPoint.X; renderOffset.Y = pt.Y - dragPoint.Y; } UpdateCenterTileXYLocation(); }