I am learning sveltekit and I would like to use svelte-canvas in my project. I have a component called Globe.svelte
<script> import { onMount } from "svelte"; import { Canvas, Layer } from "svelte-canvas"; import { feature } from "topojson-client"; import { geoOrthographic, geoPath, geoGraticule10 } from "d3-geo"; let map, width; const projection = geoOrthographic(), path = geoPath(projection); onMount(() => fetch("https://cdn.jsdelivr.net/npm/world-atlas@2/land-110m.json") .then((data) => data.json()) .then((data) => (map = feature(data, "land"))), ); $: graticule = ({ context, width, time }) => { projection .fitSize([width, width], { type: "Sphere" }) .rotate([time / 50, -10]); context.strokeStyle = "#ccc"; context.beginPath(), path(geoGraticule10()), context.stroke(); }; $: globe = ({ context }) => { context.fillStyle = "green"; context.beginPath(), path(map), context.fill(); };</script><Canvas autoplay><Layer setup={({ context }) => path.context(context)} render={graticule} /><Layer render={globe} /></Canvas>
in my +page.svelte I import the component as follow:
<script> import Globe from "../../components/Globe.svelte";</script><Globe />
I was expecting to see the Globe spinning as in here but nothing. I am not sure if this is the correct way to use svelte-canvas. Any help?