/// <summary>
        /// Returns the Lat/Lon geo-coordinates for a tile
        /// </summary>
        /// <param name="zoom">The zoom level the tile is at</param>
        /// <param name="tile">The tile coordinates in X/Y</param>
        /// <returns>The Geo-Point the top-left corner of the tile is at.</returns>
        public MapPointLatLon GetPointForTile(int zoom, MapVector tile)
        {
            double n = GetTileCount(zoom);

            if (tile.X > n || tile.Y > n)
            {
                throw new ArgumentException("Coordinates of the tile are out of the given zoom's range.", nameof(tile));
            }

            double projectedlon = (tile.X / n) * 360 - 180;
            double projectedlat = (-2 * (tile.Y / n) + 1) * 180;

            return(_projection.FromProjection(new MapPointLatLon()
            {
                Lat = projectedlat, Lon = projectedlon
            }));
        }