public static Point fromLatLngToPixel(GeoLatLng latLng, int zoomLevel) { double latitude = latLng.latitude; double longitude = latLng.longitude; double power = 8 + zoomLevel; double mapsize = Math.Pow(2, power); double origin = mapsize / 2; double longdeg = Math.Abs(-180 - longitude); double longppd = mapsize / 360; double longppdrad = mapsize / (2 * Math.PI); double pixelx = longdeg * longppd; double e = Math.Sin(latitude * (1 / 180.0 * Math.PI)); if (e > 0.9999) { e = 0.9999; } if (e < -0.9999) { e = -0.9999; } double pixely = origin + 0.5 * Math.Log((1 + e) / (1 - e)) * (-longppdrad); return(new Point((int)pixelx, (int)pixely)); }
public static Point fromLatLngToPixel(GeoLatLng latLng, int zoomLevel) { double latitude = latLng.latitude; double longitude = latLng.longitude; double power = 8 + zoomLevel; double mapsize = Math.Pow(2, power); double origin = mapsize / 2; double longdeg = Math.Abs(-180 - longitude); double longppd = mapsize / 360; double longppdrad = mapsize / (2 * Math.PI); double pixelx = longdeg * longppd; double e = Math.Sin(latitude * (1 / 180.0 * Math.PI)); if (e > 0.9999) { e = 0.9999; } if (e < -0.9999) { e = -0.9999; } double pixely = origin + 0.5 * Math.Log((1 + e) / (1 - e)) * (-longppdrad); return new Point((int)pixelx, (int)pixely); }