+
+
+
+
+
+ );
+}
+
+export default ComplexIcon;
diff --git a/src/components/icons/InfrastructureIcon.tsx b/src/components/icons/InfrastructureIcon.tsx
new file mode 100644
index 0000000..3b5f331
--- /dev/null
+++ b/src/components/icons/InfrastructureIcon.tsx
@@ -0,0 +1,28 @@
+function InfrastructureIcon() {
+ return (
+
+ );
+}
+
+export default InfrastructureIcon;
diff --git a/src/components/icons/ParkIcon.tsx b/src/components/icons/ParkIcon.tsx
new file mode 100644
index 0000000..f567ddf
--- /dev/null
+++ b/src/components/icons/ParkIcon.tsx
@@ -0,0 +1,20 @@
+function ParkIcon() {
+ return (
+
+ );
+}
+
+export default ParkIcon;
diff --git a/src/components/icons/StylobateIcon.tsx b/src/components/icons/StylobateIcon.tsx
new file mode 100644
index 0000000..1f9474b
--- /dev/null
+++ b/src/components/icons/StylobateIcon.tsx
@@ -0,0 +1,27 @@
+function StylobateIcon() {
+ return (
+
+ );
+}
+
+export default StylobateIcon;
diff --git a/src/components/icons/marks/MarkSportIcon.tsx b/src/components/icons/marks/MarkSportIcon.tsx
new file mode 100644
index 0000000..58e6b3b
--- /dev/null
+++ b/src/components/icons/marks/MarkSportIcon.tsx
@@ -0,0 +1,28 @@
+const MarkSportIcon = () => {
+ return (
+
+ );
+};
+export { MarkSportIcon };
diff --git a/src/images.json b/src/images.json
index 51da256..ea7a033 100644
--- a/src/images.json
+++ b/src/images.json
@@ -1,7 +1,7 @@
[
{
"id": "Dvor_0",
- "src": "/images/Dvor/Panoram_Dvor.0001.jpg",
+ "src": "/images/Dvor/Panoram_Dvor.0000.jpg",
"position": [-23.12, 0, -13.4],
"links": [
{ "toId": "Dvor_16", "label": "" },
@@ -121,8 +121,8 @@
"src": "/images/Dvor/Panoram_Dvor.0012.jpg",
"position": [-122.41, 0, -66.02],
"links": [
- { "toId": "Dvor_11", "label": "" },
- { "toId": "Dvor_13", "label": "" }
+ { "toId": "Dvor_13", "label": "" },
+ { "toId": "Hall_5", "label": "Лифты" }
]
},
{
@@ -180,13 +180,13 @@
{
"id": "Hall_0",
"icon": "Elevator",
- "src": "/images/Hall/NKS_360_Hall00.jpg",
+ "src": "/images/Hall/NKS_360_Lobby_0.jpg",
"position": [-103.29, 0, -67.74],
"links": [{ "toId": "Hall_5", "label": "Лифты" }]
},
{
"id": "Hall_2",
- "src": "/images/Hall/NKS_360_Hall02.jpg",
+ "src": "/images/Hall/NKS_360_Lobby_2.jpg",
"position": [-104.21, 0, -76.41],
"links": [
{ "toId": "Hall_4", "label": "Лифты" },
@@ -196,7 +196,7 @@
{
"id": "Hall_4",
"icon": "Elevator",
- "src": "/images/Hall/NKS_360_Hall04.jpg",
+ "src": "/images/Hall/NKS_360_Lobby_4.jpg",
"position": [-109.93, 0, -74.76],
"links": [
{ "toId": "Hall_5", "label": "Лифты" },
@@ -206,16 +206,17 @@
{
"id": "Hall_5",
"icon": "Elevator",
- "src": "/images/Hall/NKS_360_Hall05.jpg",
+ "src": "/images/Hall/NKS_360_Lobby_5.jpg",
"position": [-108.74, 0, -66.61],
"links": [
{ "toId": "Hall_0", "label": "Лифты" },
- { "toId": "Hall_4", "label": "Лифты" }
+ { "toId": "Hall_4", "label": "Лифты" },
+ { "toId": "Dvor_12", "label": "" }
]
},
{
"id": "Hall_1",
- "src": "/images/Hall/NKS_360_Hall01.jpg",
+ "src": "/images/Hall/NKS_360_Lobby_1.jpg",
"position": [-6.51, 0, 26.3],
"links": [
{ "toId": "Hall_3", "label": "Лифты" },
@@ -225,7 +226,7 @@
{
"id": "Hall_3",
"icon": "Elevator",
- "src": "/images/Hall/NKS_360_Hall03.jpg",
+ "src": "/images/Hall/NKS_360_Lobby_3.jpg",
"position": [7.94, 0, 23.95],
"links": [{ "toId": "Hall_1", "label": "Лобби" }]
}
diff --git a/src/images2.json b/src/images2.json
new file mode 100644
index 0000000..bb7b84a
--- /dev/null
+++ b/src/images2.json
@@ -0,0 +1,65 @@
+[
+ {
+ "id": "Niz_Dvor_1",
+ "src": "/images/NizDvor/NKS_360_NizDvor01.jpg",
+ "position": [-135.4, 0, -62.6],
+ "links": [
+ { "toId": "Niz_Dvor_6", "label": "" },
+ { "toId": "Niz_Dvor_2", "label": "" }
+ ]
+ },
+ {
+ "id": "Niz_Dvor_2",
+ "src": "/images/NizDvor/NKS_360_NizDvor02.jpg",
+ "position": [-46.7, 0, 7.7],
+ "links": [
+ { "toId": "Niz_Dvor_1", "label": "" },
+ { "toId": "Niz_Dvor_3", "label": "" }
+ ]
+ },
+ {
+ "id": "Niz_Dvor_3",
+ "src": "/images/NizDvor/NKS_360_NizDvor03.jpg",
+ "position": [-0.8, 0, 54.2],
+ "links": [
+ { "toId": "Niz_Dvor_2", "label": "" },
+ { "toId": "Niz_Dvor_4", "label": "" }
+ ]
+ },
+ {
+ "id": "Niz_Dvor_4",
+ "src": "/images/NizDvor/NKS_360_NizDvor04.jpg",
+ "position": [60.5, 0, 22.7],
+ "links": [
+ { "toId": "Niz_Dvor_3", "label": "" },
+ { "toId": "Niz_Dvor_5", "label": "" }
+ ]
+ },
+ {
+ "id": "Niz_Dvor_5",
+ "src": "/images/NizDvor/NKS_360_NizDvor05.jpg",
+ "position": [3.3, 0, -24.9],
+ "links": [
+ { "toId": "Niz_Dvor_4", "label": "" },
+ { "toId": "Niz_Dvor_0", "label": "" }
+ ]
+ },
+ {
+ "id": "Niz_Dvor_0",
+ "src": "/images/NizDvor/NKS_360_NizDvor00.jpg",
+ "position": [-61.9, 0, -76.4],
+ "links": [
+ { "toId": "Niz_Dvor_5", "label": "" },
+ { "toId": "Niz_Dvor_6", "label": "" }
+ ]
+ },
+ {
+ "id": "Niz_Dvor_6",
+ "src": "/images/NizDvor/NKS_360_NizDvor06.jpg",
+ "position": [-119.7, 0, -121.6],
+ "links": [
+ { "toId": "Niz_Dvor_0", "label": "" },
+ { "toId": "Niz_Dvor_1", "label": "" }
+ ]
+ }
+]
diff --git a/src/index.css b/src/index.css
index 94c72da..1aedfc7 100644
--- a/src/index.css
+++ b/src/index.css
@@ -29,3 +29,37 @@ body {
.exited {
opacity: 0;
}
+
+::-webkit-scrollbar {
+ width: 2px;
+ height: 2px;
+}
+::-webkit-scrollbar-button {
+ width: 0px;
+ height: 0px;
+}
+::-webkit-scrollbar-thumb {
+ background: #e1e1e1;
+ border: 0px none #ffffff;
+ border-radius: 50px;
+}
+::-webkit-scrollbar-thumb:hover {
+ background: #ffffff;
+}
+::-webkit-scrollbar-thumb:active {
+ background: #000000;
+}
+::-webkit-scrollbar-track {
+ background: #666666;
+ border: 0px none #ffffff;
+ border-radius: 50px;
+}
+::-webkit-scrollbar-track:hover {
+ background: #666666;
+}
+::-webkit-scrollbar-track:active {
+ background: #333333;
+}
+::-webkit-scrollbar-corner {
+ background: transparent;
+}
diff --git a/src/main.tsx b/src/main.tsx
index 32345f6..f4f9d71 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -4,6 +4,7 @@ import { createBrowserRouter, RouterProvider } from "react-router-dom";
import VirtualTourPage from "./pages/VirtualTourPage.tsx";
import MainPage from "./pages/MainPage.tsx";
import Infra2Page from "./pages/Infra2Page.tsx";
+import VirtualTour2Page from "./pages/VirtualTour2Page.tsx";
const router = createBrowserRouter([
{
@@ -14,6 +15,10 @@ const router = createBrowserRouter([
path: "/virtual-tour",
element:
,
},
+ {
+ path: "/virtual-tour-2",
+ element:
,
+ },
{
path: "/infra2",
element:
,
diff --git a/src/marks.json b/src/marks.json
index 6a2a077..81e0c7e 100644
--- a/src/marks.json
+++ b/src/marks.json
@@ -350,5 +350,205 @@
"y": 1080,
"icon": "education",
"distance": 500
+ },
+ {
+ "id": "education_6",
+ "label": "Гимназия №9",
+ "x": 1620,
+ "y": 940,
+ "icon": "education",
+ "distance": 800
+ },
+ {
+ "id": "education_7",
+ "label": "УрФУ ИНЭУ",
+ "x": 1360,
+ "y": 1230,
+ "icon": "education",
+ "distance": 500
+ },
+ {
+ "id": "education_8",
+ "label": "Империя",
+ "x": 1320,
+ "y": 1280,
+ "icon": "education",
+ "distance": 500
+ },
+ {
+ "id": "education_9",
+ "label": "Гимназия №2",
+ "x": 1080,
+ "y": 1350,
+ "icon": "education",
+ "distance": 400
+ },
+ {
+ "id": "education_10",
+ "label": "Детский сад №472",
+ "x": 730,
+ "y": 1180,
+ "icon": "education",
+ "distance": 500
+ },
+ {
+ "id": "education_11",
+ "label": "Детский сад №251",
+ "x": 760,
+ "y": 1120,
+ "icon": "education",
+ "distance": 400
+ },
+ {
+ "id": "education_12",
+ "label": "Детский сад №252 Кораблик",
+ "x": 550,
+ "y": 1110,
+ "icon": "education",
+ "distance": 700
+ },
+ {
+ "id": "education_13",
+ "label": "Детский сад №414",
+ "x": 640,
+ "y": 1310,
+ "icon": "education",
+ "distance": 700
+ },
+ {
+ "id": "sport_1",
+ "label": "Clinch",
+ "x": 700,
+ "y": 1130,
+ "icon": "sport",
+ "distance": 500
+ },
+ {
+ "id": "sport_2",
+ "label": "Точка",
+ "x": 970,
+ "y": 1180,
+ "icon": "sport",
+ "distance": 250
+ },
+ {
+ "id": "sport_3",
+ "label": "Aversfit",
+ "x": 1160,
+ "y": 1220,
+ "icon": "sport",
+ "distance": 300
+ },
+ {
+ "id": "sport_4",
+ "label": "Локомотив-изумруд",
+ "x": 1260,
+ "y": 1320,
+ "icon": "sport",
+ "distance": 450
+ },
+ {
+ "id": "sport_5",
+ "label": "Powerhouse Gym",
+ "x": 1470,
+ "y": 1340,
+ "icon": "sport",
+ "distance": 700
+ },
+ {
+ "id": "sport_6",
+ "label": "Бассейн Дворца Молодежи",
+ "x": 1030,
+ "y": 1450,
+ "icon": "sport",
+ "distance": 550
+ },
+ {
+ "id": "sport_7",
+ "label": "Happy Gymnastic",
+ "x": 660,
+ "y": 1230,
+ "icon": "sport",
+ "distance": 600
+ },
+ {
+ "id": "sport_8",
+ "label": "Encore Fitness",
+ "x": 1100,
+ "y": 910,
+ "icon": "sport",
+ "distance": 250
+ },
+ {
+ "id": "sport_9",
+ "label": "Реформа",
+ "x": 1090,
+ "y": 790,
+ "icon": "sport",
+ "distance": 400
+ },
+ {
+ "id": "sport_10",
+ "label": "Topstretching",
+ "x": 1010,
+ "y": 820,
+ "icon": "sport",
+ "distance": 350
+ },
+ {
+ "id": "sport_11",
+ "label": "Динамо",
+ "x": 1410,
+ "y": 580,
+ "icon": "sport",
+ "distance": 850
+ },
+ {
+ "id": "sport_12",
+ "label": "ДИВС",
+ "x": 1050,
+ "y": 570,
+ "icon": "sport",
+ "distance": 650
+ },
+ {
+ "id": "sport_13",
+ "label": "New Fit",
+ "x": 1250,
+ "y": 990,
+ "icon": "sport",
+ "distance": 400
+ },
+ {
+ "id": "sport_14",
+ "label": "Облака",
+ "x": 1360,
+ "y": 1030,
+ "icon": "sport",
+ "distance": 450
+ },
+ {
+ "id": "sport_15",
+ "label": "Bright Fit",
+ "x": 1540,
+ "y": 1200,
+ "icon": "sport",
+ "distance": 700
+ },
+ {
+ "id": "sport_15",
+ "label": "Bright Fit",
+ "x": 1540,
+ "y": 1200,
+ "icon": "sport",
+ "distance": 700
+ },
+ {
+ "id": "sport_16",
+ "label": "Bright Fit",
+ "x": 1540,
+ "y": 1200,
+ "icon": "sport",
+ "distance": 700
}
]
diff --git a/src/pages/Infra2Page.tsx b/src/pages/Infra2Page.tsx
index 12af7ad..6471d52 100644
--- a/src/pages/Infra2Page.tsx
+++ b/src/pages/Infra2Page.tsx
@@ -6,15 +6,18 @@ import DistanceCircle from "../components/DistanceCircle";
import Button from "../components/Button";
import InfrastructureFilters from "../components/InfrastructurePage/InfrastructureFilters";
import ArrowLeftIcon from "../components/icons/ArrowLeftIcon";
-import CrossIcon from "../components/icons/CrossIcon";
+// import CrossIcon from "../components/icons/CrossIcon";
+import { useNavigate } from "react-router-dom";
+import ComplexIcon from "../components/icons/ComplexIcon";
const marks = _marks as Mark[];
function Infra2Page() {
- const [selectedRange, setSelectedRange] = useState
(800);
+ const [selectedRange, setSelectedRange] = useState(850);
const [width, setWidth] = useState();
const [top, setTop] = useState();
const [filteredMarks, setFilteredMarks] = useState(marks);
+ const navigate = useNavigate();
function handleResize() {
setWidth(window.innerWidth);
@@ -44,11 +47,11 @@ function Infra2Page() {
-