# react-marzipano-component

> A React component wrapped with Marzipano

Latest version **0.1.3** (published 2023-11-26) · MIT license · 0 weekly downloads

## Install

```sh
npm install react-marzipano-component
pnpm add react-marzipano-component
yarn add react-marzipano-component
bun add react-marzipano-component
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.3 |
| Published | 2023-11-26 |
| First published | 2023-11-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=16.0.0 |
| Dependencies | 3 |
| Unpacked size | 582.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | geekcj12 |
| Maintainers | geekcj12 |
| Keywords | react, marzipano |

## Links

- npm: https://www.npmjs.com/package/react-marzipano-component
- Homepage: https://github.com/geekcj12/react-marzipano-component
- npm.io page: https://npm.io/package/react-marzipano-component

## Dependencies (3)

- [marzipano](https://npm.io/package/marzipano.md) ^0.10.2
- [@rollup/plugin-typescript](https://npm.io/package/@rollup/plugin-typescript.md) 8.5.0
- [react-marzipano-component](https://npm.io/package/react-marzipano-component.md) ^0.0.1

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 0.1.3 (latest) — 2023-11-26
- 0.1.2 — 2023-11-26
- 0.1.0 — 2023-11-13
- 0.0.2 — 2023-11-06
- 0.0.1 — 2023-11-06

## README

# React Marzipano Component

Use Marzipano in React through JSX syntax and components.

## Installation

```bash
npm install react-marzipano-component
# or
yarn add react-marzipano-component
# or
pnpm add react-marzipano-component
```

## Usage

### Single Resolution Cube

```tsx
import { Viewer, Scene, CubeGeometry, ImageUrlSource, RectilinearView } from 'react-marzipano-component'

export default function App() {  
  return (
    <Viewer style={{ position: 'absolute', inset: 0 }}>
      <Scene>
        <ImageUrlSource source="//www.marzipano.net/media/cubemap/{f}.jpg" />
        <CubeGeometry levelPropertiesList={[{ tileSize: 1024, size: 1024 }]} />
        <RectilinearView
          limiters={(limit) => ([
            limit.traditional(4096, 100 * Math.PI / 180)
          ])}
        />
      </Scene>
    </Viewer>
  );
}
```

### Multiresolution Flat

```tsx
import { Viewer, Scene, FlatGeometry, FlatView, ImageUrlSource } from 'react-marzipano-component'

export default function App() {
  const urlPrefix = '//www.marzipano.net/media/lisboa';

  const tileUrl = (z: number, x: number, y: number) => {
    return urlPrefix + "/l" + z + "/" + y + "/l" + z + '_' + y + '_' + x + ".jpg";
  };
  
  return (
    <Viewer style={{ position: 'absolute', inset: 0 }}>
      <Scene>
        <ImageUrlSource
          source={(tile) => ({ url: tileUrl(tile.z+1, tile.x+1, tile.y+1) })}
        />
        <FlatGeometry
          levelPropertiesList={[
            { width: 756,   height: 312,   tileWidth: 756, tileHeight: 756 },
            { width: 1512,  height: 624,   tileWidth: 756, tileHeight: 756 },
            { width: 3024,  height: 1248,  tileWidth: 756, tileHeight: 756 },
            { width: 6048,  height: 2496,  tileWidth: 756, tileHeight: 756 },
            { width: 12096, height: 4992,  tileWidth: 756, tileHeight: 756 },
            { width: 24192, height: 9984,  tileWidth: 756, tileHeight: 756 },
            { width: 48384, height: 19968, tileWidth: 756, tileHeight: 756 }
          ]}
        />

        <FlatView
          params={{ mediaAspectRatio: 48384/19968 }}
          limiters={(limit) => ([
            limit.resolution(48384),
            limit.letterbox(),
          ])}
        />
      </Scene>
    </Viewer>
  );
}
```

### Equirectangular

```tsx
import { Viewer, Scene, EquirectGeometry, ImageUrlSource, RectilinearView } from 'react-marzipano-component'

export default function App() {  
  return (
    <Viewer style={{ position: 'absolute', inset: 0 }}>
      <Scene>
        <ImageUrlSource source="//www.marzipano.net/media/equirect/angra.jpg" />
        <EquirectGeometry levelPropertiesList={[{ width: 4000 }]} />
        <RectilinearView
          params={{ yaw: Math.PI }}
          limiters={(limit) => ([
            limit.traditional(1024, 100 * Math.PI / 180)
          ])}
        />
      </Scene>
    </Viewer>
  );
}
```

### Video

```tsx
import { VideoViewer } from 'react-marzipano-component';

const videoSrc = '//www.marzipano.net/media/video/mercedes-f1-1280x640.mp4';

function App() {
  return (
    <VideoViewer
      source={videoSrc}
      style={{ position: 'absolute', inset: 0 }}
    />
  )
}

export default App
```

## License

MIT

---
_Source: https://npm.io/package/react-marzipano-component · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
