react-three-map 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +14 -13
- package/dist/cjs/main.js.js +1 -1318
- package/dist/es/main.js2.mjs +24 -20
- package/dist/es/main.js2.mjs.map +1 -1
- package/dist/es/main.js3.mjs.map +1 -1
- package/dist/es/main.js4.mjs +12 -24
- package/dist/es/main.js4.mjs.map +1 -1
- package/dist/es/main.js5.mjs +55 -23532
- package/dist/es/main.js5.mjs.map +1 -1
- package/dist/es/main.js6.mjs +13 -2
- package/dist/es/main.js6.mjs.map +1 -1
- package/dist/es/main.js7.mjs +53 -2
- package/dist/es/main.js7.mjs.map +1 -1
- package/dist/es/main.js8.mjs +6 -57
- package/dist/es/main.js8.mjs.map +1 -1
- package/dist/maplibre/cjs/main.js.js +1 -1
- package/dist/maplibre/es/main.js2.mjs +24 -20
- package/dist/maplibre/es/main.js2.mjs.map +1 -1
- package/dist/maplibre/es/main.js3.mjs.map +1 -1
- package/dist/maplibre/es/main.js4.mjs +12 -24
- package/dist/maplibre/es/main.js4.mjs.map +1 -1
- package/dist/maplibre/es/main.js5.mjs.map +1 -1
- package/dist/maplibre/es/main.js6.mjs.map +1 -1
- package/dist/maplibre/es/main.js7.mjs.map +1 -1
- package/dist/maplibre/es/main.js8.mjs.map +1 -1
- package/example-mapbox/package.json +29 -0
- package/example-mapbox/sandbox.config.json +3 -0
- package/example-mapbox/src/canvas.basic.stories.tsx +69 -0
- package/example-mapbox/src/comparison.stories.tsx +24 -0
- package/example-mapbox/src/html-on-top.stories.tsx +24 -0
- package/example-mapbox/src/my-scene.tsx +96 -0
- package/example-mapbox/src/render-on-demand.stories.tsx +32 -0
- package/example-mapbox/src/story-map.tsx +46 -0
- package/example-mapbox/src/vite-env.d.ts +1 -0
- package/example-mapbox/tsconfig.json +27 -0
- package/example-mapbox/tsconfig.node.json +10 -0
- package/example-mapbox/yarn.lock +4154 -0
- package/example-maplibre/package.json +29 -0
- package/example-maplibre/sandbox.config.json +3 -0
- package/example-maplibre/src/canvas.basic.stories.tsx +61 -0
- package/example-maplibre/src/comparison.stories.tsx +22 -0
- package/example-maplibre/src/html-on-top.stories.tsx +24 -0
- package/example-maplibre/src/my-scene.tsx +97 -0
- package/example-maplibre/src/render-on-demand.stories.tsx +32 -0
- package/example-maplibre/src/story-map.tsx +38 -0
- package/example-maplibre/src/vite-env.d.ts +1 -0
- package/example-maplibre/tsconfig.json +25 -0
- package/example-maplibre/tsconfig.node.json +10 -0
- package/example-maplibre/yarn.lock +4181 -0
- package/maplibre/package.json +3 -3
- package/package.json +9 -6
- package/src/{canvas/core → core}/generic-map.ts +15 -2
- package/src/{canvas/core → core}/state-ref.ts +2 -2
- package/src/{canvas/core/internal-canvas.tsx → core/use-canvas.tsx} +6 -18
- package/src/{canvas/core → core}/use-on-add.ts +3 -3
- package/src/{canvas/canvas-mapbox.tsx → mapbox/canvas.tsx} +15 -9
- package/src/mapbox/index.ts +1 -0
- package/src/{canvas/canvas-maplibre.tsx → maplibre/canvas.tsx} +13 -7
- package/src/maplibre/index.ts +1 -0
- package/src/stories/comparison.stories.tsx +13 -30
- package/src/stories/html-on-top.stories.tsx +11 -16
- package/src/stories/mapbox/story-mapbox.tsx +43 -0
- package/src/stories/mapbox-example.stories.tsx +69 -0
- package/src/stories/maplibre/story-maplibre.tsx +32 -0
- package/src/stories/{canvas.basic.stories.tsx → maplibre-example.stories.tsx} +28 -30
- package/src/stories/my-scene.tsx +0 -1
- package/src/stories/render-on-demand.stories.tsx +18 -37
- package/src/stories/story-map.tsx +26 -24
- package/tsconfig.json +5 -0
- package/dist/es/main.js10.mjs +0 -56
- package/dist/es/main.js10.mjs.map +0 -1
- package/dist/es/main.js11.mjs +0 -9
- package/dist/es/main.js11.mjs.map +0 -1
- package/dist/es/main.js9.mjs +0 -16
- package/dist/es/main.js9.mjs.map +0 -1
- package/src/main-mapbox.ts +0 -1
- package/src/main-maplibre.ts +0 -1
- /package/src/{canvas/core → core}/coords-to-matrix.ts +0 -0
- /package/src/{canvas/core → core}/create-events.ts +0 -0
- /package/src/{canvas/core → core}/generic-map.test.ts +0 -0
- /package/src/{canvas/core → core}/use-function.ts +0 -0
- /package/src/{canvas/core → core}/use-render.ts +0 -0
package/dist/es/main.js2.mjs
CHANGED
|
@@ -1,34 +1,38 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { extend as
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { extend as d } from "@react-three/fiber";
|
|
3
|
+
import { MercatorCoordinate as c } from "mapbox-gl";
|
|
4
|
+
import { memo as L, useMemo as x } from "react";
|
|
5
|
+
import { Layer as M } from "react-map-gl";
|
|
6
|
+
import * as v from "three";
|
|
7
|
+
import { coordsToMatrix as y } from "./main.js3.mjs";
|
|
8
|
+
import { useCanvas as C } from "./main.js4.mjs";
|
|
9
|
+
d(v);
|
|
10
|
+
const A = L(({
|
|
10
11
|
longitude: o,
|
|
11
12
|
latitude: r,
|
|
12
13
|
altitude: m = 0,
|
|
13
|
-
frameloop:
|
|
14
|
-
...
|
|
14
|
+
frameloop: e = "always",
|
|
15
|
+
...t
|
|
15
16
|
}) => {
|
|
16
|
-
const
|
|
17
|
+
const n = x(() => y({
|
|
17
18
|
latitude: r,
|
|
18
19
|
longitude: o,
|
|
19
20
|
altitude: m,
|
|
20
|
-
fromLngLat:
|
|
21
|
-
}), [r, o, m]);
|
|
22
|
-
return /* @__PURE__ */
|
|
23
|
-
|
|
21
|
+
fromLngLat: c.fromLngLat
|
|
22
|
+
}), [r, o, m]), { id: s, onAdd: a, onRemove: f, render: p } = C({ m4: n, frameloop: e, ...t });
|
|
23
|
+
return /* @__PURE__ */ i(
|
|
24
|
+
M,
|
|
24
25
|
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
id: s,
|
|
27
|
+
type: "custom",
|
|
28
|
+
renderingMode: "3d",
|
|
29
|
+
onAdd: a,
|
|
30
|
+
onRemove: f,
|
|
31
|
+
render: p
|
|
28
32
|
}
|
|
29
33
|
);
|
|
30
34
|
});
|
|
31
35
|
export {
|
|
32
|
-
|
|
36
|
+
A as Canvas
|
|
33
37
|
};
|
|
34
38
|
//# sourceMappingURL=main.js2.mjs.map
|
package/dist/es/main.js2.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js2.mjs","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"main.js2.mjs","sources":["../../src/mapbox/canvas.tsx"],"sourcesContent":["import { RenderProps, extend } from \"@react-three/fiber\";\nimport { MercatorCoordinate } from \"mapbox-gl\";\nimport { PropsWithChildren, memo, useMemo } from \"react\";\nimport { Layer } from \"react-map-gl\";\nimport * as THREE from \"three\";\nimport { coordsToMatrix } from \"../core/coords-to-matrix\";\nimport { useCanvas } from \"../core/use-canvas\";\n\nextend(THREE);\n\nexport interface CanvasProps extends Omit<RenderProps<HTMLCanvasElement>, 'frameloop'>, PropsWithChildren {\n longitude: number,\n latitude: number,\n altitude?: number,\n frameloop?: 'always' | 'demand',\n}\n\n/** react`-three-fiber` canvas inside `MapLibre` */\nexport const Canvas = memo<CanvasProps>(({\n longitude, latitude, altitude = 0,\n frameloop = 'always', ...renderProps\n}) => {\n\n const m4 = useMemo(() => coordsToMatrix({\n latitude, longitude, altitude, fromLngLat: MercatorCoordinate.fromLngLat,\n }), [latitude, longitude, altitude]);\n\n const { id, onAdd, onRemove, render } = useCanvas({ m4, frameloop, ...renderProps });\n\n return <Layer\n id={id}\n type=\"custom\"\n renderingMode=\"3d\"\n onAdd={onAdd}\n onRemove={onRemove}\n render={render}\n />\n})"],"names":["extend","THREE","Canvas","memo","longitude","latitude","altitude","frameloop","renderProps","m4","useMemo","coordsToMatrix","MercatorCoordinate","id","onAdd","onRemove","render","useCanvas","jsx","Layer"],"mappings":";;;;;;;;AAQAA,EAAOC,CAAK;AAUC,MAAAC,IAASC,EAAkB,CAAC;AAAA,EACvC,WAAAC;AAAA,EAAW,UAAAC;AAAA,EAAU,UAAAC,IAAW;AAAA,EAChC,WAAAC,IAAY;AAAA,EAAU,GAAGC;AAC3B,MAAM;AAEE,QAAAC,IAAKC,EAAQ,MAAMC,EAAe;AAAA,IACtC,UAAAN;AAAA,IAAU,WAAAD;AAAA,IAAW,UAAAE;AAAA,IAAU,YAAYM,EAAmB;AAAA,EAC/D,CAAA,GAAG,CAACP,GAAUD,GAAWE,CAAQ,CAAC,GAE7B,EAAE,IAAAO,GAAI,OAAAC,GAAO,UAAAC,GAAU,QAAAC,EAAO,IAAIC,EAAU,EAAE,IAAAR,GAAI,WAAAF,GAAW,GAAGC,EAAa,CAAA;AAE5E,SAAA,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACN,IAAAN;AAAA,MACA,MAAK;AAAA,MACL,eAAc;AAAA,MACd,OAAAC;AAAA,MACA,UAAAC;AAAA,MACA,QAAAC;AAAA,IAAA;AAAA,EAAA;AAEJ,CAAC;"}
|
package/dist/es/main.js3.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js3.mjs","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"main.js3.mjs","sources":["../../src/core/coords-to-matrix.ts"],"sourcesContent":["import { Euler, Matrix4, Quaternion, Vector3 } from \"three\";\nimport { FromLngLat } from \"./generic-map\";\n\nconst quat = new Quaternion();\nconst euler = new Euler();\nconst pos = new Vector3();\nconst scale = new Vector3();\nconst m4 = new Matrix4();\n\n/** calculate Matrix4 from coordinates */\nexport function coordsToMatrix({ longitude, latitude, altitude, fromLngLat }: {\n longitude: number, latitude: number, altitude: number, fromLngLat: FromLngLat\n}) {\n const center = fromLngLat([longitude, latitude], altitude);\n const scaleUnit = center.meterInMercatorCoordinateUnits();\n pos.set(center.x, center.y, center.z || 0);\n scale.set(scaleUnit, -scaleUnit, scaleUnit);\n quat.setFromEuler(euler.set(-Math.PI * .5, 0, 0));\n return m4.compose(pos, quat, scale).toArray();\n}\n"],"names":["quat","Quaternion","euler","Euler","pos","Vector3","scale","m4","Matrix4","coordsToMatrix","longitude","latitude","altitude","fromLngLat","center","scaleUnit"],"mappings":";AAGA,MAAMA,IAAO,IAAIC,KACXC,IAAQ,IAAIC,KACZC,IAAM,IAAIC,KACVC,IAAQ,IAAID,KACZE,IAAK,IAAIC;AAGR,SAASC,EAAe,EAAE,WAAAC,GAAW,UAAAC,GAAU,UAAAC,GAAU,YAAAC,KAE7D;AACD,QAAMC,IAASD,EAAW,CAACH,GAAWC,CAAQ,GAAGC,CAAQ,GACnDG,IAAYD,EAAO;AACzB,SAAAV,EAAI,IAAIU,EAAO,GAAGA,EAAO,GAAGA,EAAO,KAAK,CAAC,GACzCR,EAAM,IAAIS,GAAW,CAACA,GAAWA,CAAS,GACrCf,EAAA,aAAaE,EAAM,IAAI,CAAC,KAAK,KAAK,KAAI,GAAG,CAAC,CAAC,GACzCK,EAAG,QAAQH,GAAKJ,GAAMM,CAAK,EAAE;AACtC;"}
|
package/dist/es/main.js4.mjs
CHANGED
|
@@ -1,31 +1,19 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
m4: m,
|
|
1
|
+
import { jsx as c, Fragment as i } from "react/jsx-runtime";
|
|
2
|
+
import { useId as p, useRef as R, useEffect as a } from "react";
|
|
3
|
+
import { useOnAdd as v } from "./main.js5.mjs";
|
|
4
|
+
import { useRender as x } from "./main.js6.mjs";
|
|
5
|
+
const E = ({
|
|
6
|
+
m4: o,
|
|
8
7
|
children: r,
|
|
9
8
|
frameloop: t,
|
|
10
9
|
...s
|
|
11
10
|
}) => {
|
|
12
|
-
const
|
|
13
|
-
return
|
|
14
|
-
n && e.current && e.current.root.render(/* @__PURE__ */
|
|
15
|
-
}, [e, n, r]),
|
|
16
|
-
|
|
17
|
-
{
|
|
18
|
-
id: d,
|
|
19
|
-
type: "custom",
|
|
20
|
-
renderingMode: "3d",
|
|
21
|
-
onAdd: u,
|
|
22
|
-
onRemove: a,
|
|
23
|
-
render: f
|
|
24
|
-
}
|
|
25
|
-
);
|
|
26
|
-
});
|
|
27
|
-
x.displayName = "InternalCanvas";
|
|
11
|
+
const u = p(), e = R(), { onAdd: m, onRemove: d, mounted: n } = v(e, { frameloop: t, ...s }), f = x(o, e, t);
|
|
12
|
+
return a(() => {
|
|
13
|
+
n && e.current && e.current.root.render(/* @__PURE__ */ c(i, { children: r }));
|
|
14
|
+
}, [e, n, r]), { id: u, onAdd: m, onRemove: d, render: f };
|
|
15
|
+
};
|
|
28
16
|
export {
|
|
29
|
-
|
|
17
|
+
E as useCanvas
|
|
30
18
|
};
|
|
31
19
|
//# sourceMappingURL=main.js4.mjs.map
|
package/dist/es/main.js4.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js4.mjs","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"main.js4.mjs","sources":["../../src/core/use-canvas.tsx"],"sourcesContent":["import { RenderProps } from \"@react-three/fiber\";\nimport { PropsWithChildren, useEffect, useId, useRef } from \"react\";\nimport { Matrix4Tuple } from \"three\";\nimport { StateRef } from \"./state-ref\";\nimport { useOnAdd } from \"./use-on-add\";\nimport { useRender } from \"./use-render\";\n\nexport interface useCanvasProps extends Omit<RenderProps<HTMLCanvasElement>, 'frameloop'>, PropsWithChildren {\n frameloop: 'always' | 'demand',\n m4: Matrix4Tuple;\n}\n\nexport const useCanvas = (({\n m4, children, frameloop, ...renderProps\n}: useCanvasProps) => {\n const id = useId();\n\n const stateRef: StateRef = useRef();\n\n const { onAdd, onRemove, mounted } = useOnAdd(stateRef, { frameloop, ...renderProps });\n\n const render = useRender(m4, stateRef, frameloop);\n\n useEffect(() => {\n if (!mounted) return;\n if (!stateRef.current) return;\n stateRef.current.root.render(<>{children}</>);\n }, [stateRef, mounted, children])\n\n return { id, onAdd, onRemove, render }\n})"],"names":["useCanvas","m4","children","frameloop","renderProps","id","useId","stateRef","useRef","onAdd","onRemove","mounted","useOnAdd","render","useRender","useEffect","jsx","Fragment"],"mappings":";;;;AAYO,MAAMA,IAAa,CAAC;AAAA,EACzB,IAAAC;AAAA,EAAI,UAAAC;AAAA,EAAU,WAAAC;AAAA,EAAW,GAAGC;AAC9B,MAAsB;AACpB,QAAMC,IAAKC,KAELC,IAAqBC,KAErB,EAAE,OAAAC,GAAO,UAAAC,GAAU,SAAAC,MAAYC,EAASL,GAAU,EAAE,WAAAJ,GAAW,GAAGC,EAAA,CAAa,GAE/ES,IAASC,EAAUb,GAAIM,GAAUJ,CAAS;AAEhD,SAAAY,EAAU,MAAM;AACd,IAAKJ,KACAJ,EAAS,WACdA,EAAS,QAAQ,KAAK,OAAO,gBAAAS,EAAAC,GAAA,EAAG,UAAAf,EAAS,CAAA,CAAG;AAAA,EAC3C,GAAA,CAACK,GAAUI,GAAST,CAAQ,CAAC,GAEzB,EAAE,IAAAG,GAAI,OAAAI,GAAO,UAAAC,GAAU,QAAAG,EAAO;AACvC;"}
|