summaryrefslogtreecommitdiff
path: root/src/Map.tsx
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2022-08-29 10:24:51 +0300
committerYuval Adam <_@yuv.al>2022-08-29 10:24:51 +0300
commit44a1c5b7e62e83af4d670e011f5998b9b8aedfef (patch)
tree4ad1299c0f5ba83a6d7783bdc0d6d649c037072b /src/Map.tsx
parent5e346930cb9e0672e15fbda4621a9b72e8b072e4 (diff)
Update all .tsx files and remove unused
Diffstat (limited to 'src/Map.tsx')
-rw-r--r--src/Map.tsx65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/Map.tsx b/src/Map.tsx
new file mode 100644
index 0000000..c39e1ac
--- /dev/null
+++ b/src/Map.tsx
@@ -0,0 +1,65 @@
+import React, { Fragment, useState } from "react";
+import ReactMapboxGl, { Layer, Source } from "react-mapbox-gl";
+
+import {
+ MAPBOX_ACCESS_TOKEN,
+ IMAGE_COORDINATES,
+ IMAGES_BASE_URL
+} from "./config";
+
+import "mapbox-gl/dist/mapbox-gl.css";
+
+const Mapbox = ReactMapboxGl({
+ accessToken: MAPBOX_ACCESS_TOKEN,
+ minZoom: 5,
+ maxZoom: 10,
+ hash: false
+});
+
+function Map(props) {
+ const [center] = useState([35, 31.9]);
+ const [zoom] = useState([6.3]);
+
+ return (
+ <Mapbox
+ style="mapbox://styles/mapbox/dark-v9"
+ center={center}
+ zoom={zoom}
+ containerStyle={{
+ height: "100vh",
+ width: "100vw"
+ }}
+ >
+ {props.images.map((img, i) => {
+ const id = `radar-280-${i}`;
+ return (
+ <Fragment key={`image-${id}`}>
+ <Source
+ id={id}
+ key={`source-${id}`}
+ tileJsonSource={{
+ type: "image",
+ url: `${IMAGES_BASE_URL}/${img}`,
+ coordinates: IMAGE_COORDINATES
+ }}
+ />
+ <Layer
+ id={id}
+ key={`layer-${id}`}
+ sourceId={id}
+ type="raster"
+ paint={{
+ "raster-opacity": i === props.slider ? 0.85 : 0,
+ "raster-opacity-transition": {
+ duration: 0
+ }
+ }}
+ />
+ </Fragment>
+ );
+ })}
+ </Mapbox>
+ );
+}
+
+export default Map;