condorhacker commited on
Commit
ff9f13e
·
verified ·
1 Parent(s): b38c2b3

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +410 -19
  3. prompts.txt +2 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Navi
3
- emoji: 📚
4
- colorFrom: yellow
5
- colorTo: indigo
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: navi
3
+ emoji: ⚛️
4
+ colorFrom: gray
5
+ colorTo: gray
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - QwenSite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,410 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="it">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
6
+ <title>Android Auto - Navigatore Italia</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
9
+ <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
10
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" rel="stylesheet" />
11
+ <style>
12
+ body, html {
13
+ margin: 0;
14
+ padding: 0;
15
+ width: 100%;
16
+ height: 100%;
17
+ background: #000;
18
+ color: white;
19
+ font-family: 'Google Sans', 'Segoe UI', sans-serif;
20
+ overflow: hidden;
21
+ }
22
+
23
+ #map {
24
+ position: absolute;
25
+ top: 0;
26
+ left: 0;
27
+ width: 100%;
28
+ height: 100%;
29
+ z-index: 1;
30
+ }
31
+
32
+ /* Overlay per Android Auto */
33
+ .android-auto-overlay {
34
+ position: absolute;
35
+ bottom: 0;
36
+ left: 0;
37
+ width: 100%;
38
+ background: linear-gradient(to top, rgba(0,0,0,0.8), transparent 70%);
39
+ height: 240px;
40
+ z-index: 10;
41
+ pointer-events: none;
42
+ }
43
+
44
+ /* Voice Assistant */
45
+ .voice-assistant {
46
+ position: absolute;
47
+ top: 50%;
48
+ left: 50%;
49
+ transform: translate(-50%, -50%);
50
+ background: rgba(33, 33, 33, 0.9);
51
+ border-radius: 20px;
52
+ padding: 20px;
53
+ width: 90%;
54
+ max-width: 320px;
55
+ text-align: center;
56
+ box-shadow: 0 4px 20px rgba(0,0,0,0.5);
57
+ z-index: 50;
58
+ backdrop-filter: blur(10px);
59
+ opacity: 0;
60
+ pointer-events: none;
61
+ transition: opacity 0.3s ease;
62
+ }
63
+
64
+ .voice-assistant.active {
65
+ opacity: 1;
66
+ pointer-events: auto;
67
+ }
68
+
69
+ .voice-wave {
70
+ height: 40px;
71
+ display: flex;
72
+ align-items: center;
73
+ justify-content: center;
74
+ gap: 2px;
75
+ }
76
+
77
+ .wave-bar {
78
+ width: 4px;
79
+ background: #1DB954;
80
+ height: 8px;
81
+ border-radius: 2px;
82
+ animation: pulse 1s infinite ease-in-out;
83
+ }
84
+
85
+ .wave-bar:nth-child(1) { animation-delay: 0s; height: 12px; }
86
+ .wave-bar:nth-child(2) { animation-delay: 0.1s; height: 6px; }
87
+ .wave-bar:nth-child(3) { animation-delay: 0.2s; height: 16px; }
88
+ .wave-bar:nth-child(4) { animation-delay: 0.3s; height: 10px; }
89
+ .wave-bar:nth-child(5) { animation-delay: 0.4s; height: 14px; }
90
+ .wave-bar:nth-child(6) { animation-delay: 0.5s; height: 8px; }
91
+
92
+ @keyframes pulse {
93
+ 0%, 100% { opacity: 0.5; transform: scaleY(1); }
94
+ 50% { opacity: 1; transform: scaleY(1.5); }
95
+ }
96
+
97
+ .voice-text {
98
+ margin-top: 16px;
99
+ font-size: 14px;
100
+ color: #ccc;
101
+ }
102
+
103
+ /* Top Bar */
104
+ .top-bar {
105
+ position: absolute;
106
+ top: 0;
107
+ left: 0;
108
+ width: 100%;
109
+ padding: 16px;
110
+ z-index: 10;
111
+ display: flex;
112
+ justify-content: space-between;
113
+ align-items: flex-start;
114
+ pointer-events: none;
115
+ }
116
+
117
+ .time {
118
+ font-size: 18px;
119
+ font-weight: 500;
120
+ background: rgba(0,0,0,0.6);
121
+ padding: 4px 12px;
122
+ border-radius: 16px;
123
+ pointer-events: auto;
124
+ }
125
+
126
+ .search-button {
127
+ background: rgba(255,255,255,0.2);
128
+ padding: 8px 16px;
129
+ border-radius: 16px;
130
+ font-size: 14px;
131
+ display: flex;
132
+ align-items: center;
133
+ gap: 8px;
134
+ pointer-events: auto;
135
+ }
136
+
137
+ /* Bottom Control */
138
+ .bottom-control {
139
+ position: absolute;
140
+ bottom: 20px;
141
+ left: 0;
142
+ width: 100%;
143
+ padding: 0 16px;
144
+ z-index: 10;
145
+ display: flex;
146
+ justify-content: space-between;
147
+ align-items: center;
148
+ }
149
+
150
+ .nav-button {
151
+ background: #202124;
152
+ width: 64px;
153
+ height: 64px;
154
+ border-radius: 50%;
155
+ display: flex;
156
+ align-items: center;
157
+ justify-content: center;
158
+ box-shadow: 0 4px 12px rgba(0,0,0,0.3);
159
+ color: white;
160
+ font-size: 20px;
161
+ }
162
+
163
+ .mic-button {
164
+ background: #1DB954;
165
+ width: 72px;
166
+ height: 72px;
167
+ border-radius: 50%;
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ color: white;
172
+ font-size: 24px;
173
+ box-shadow: 0 4px 16px rgba(29, 185, 84, 0.4);
174
+ }
175
+
176
+ /* Navigation UI */
177
+ .navigation-ui {
178
+ position: absolute;
179
+ top: 0;
180
+ right: 0;
181
+ width: 100%;
182
+ height: 100%;
183
+ z-index: 20;
184
+ display: none;
185
+ flex-direction: column;
186
+ }
187
+
188
+ .nav-header {
189
+ padding: 70px 20px 0 20px;
190
+ background: linear-gradient(to bottom, rgba(0,0,0,0.8), transparent);
191
+ text-align: center;
192
+ }
193
+
194
+ .nav-distance {
195
+ font-size: 42px;
196
+ font-weight: 300;
197
+ }
198
+
199
+ .nav-time {
200
+ font-size: 16px;
201
+ color: #aaa;
202
+ }
203
+
204
+ .next-instruction {
205
+ padding: 16px 20px;
206
+ background: rgba(32, 32, 32, 0.9);
207
+ border-top: 1px solid #333;
208
+ font-size: 18px;
209
+ display: flex;
210
+ align-items: center;
211
+ gap: 12px;
212
+ }
213
+
214
+ .turn-icon {
215
+ width: 32px;
216
+ height: 32px;
217
+ border-radius: 50%;
218
+ background: #1DB954;
219
+ display: flex;
220
+ align-items: center;
221
+ justify-content: center;
222
+ font-weight: bold;
223
+ font-size: 14px;
224
+ }
225
+
226
+ .speed-display {
227
+ position: absolute;
228
+ right: 20px;
229
+ top: 80px;
230
+ font-size: 36px;
231
+ font-weight: bold;
232
+ color: #1DB954;
233
+ z-index: 10;
234
+ }
235
+
236
+ .direction-arrow {
237
+ position: absolute;
238
+ top: 150px;
239
+ left: 50%;
240
+ transform: translateX(-50%);
241
+ width: 40px;
242
+ height: 40px;
243
+ background: white;
244
+ clip-path: polygon(50% 0%, 0% 100%, 50% 75%, 100% 100%);
245
+ z-index: 10;
246
+ opacity: 0;
247
+ transition: opacity 0.3s;
248
+ }
249
+
250
+ .direction-arrow.show {
251
+ opacity: 1;
252
+ }
253
+ </style>
254
+ </head>
255
+ <body class="relative">
256
+
257
+ <!-- Mappa -->
258
+ <div id="map"></div>
259
+
260
+ <!-- Frecce direzionali (simulazione svolta) -->
261
+ <div class="direction-arrow" id="direction-arrow"></div>
262
+
263
+ <!-- Display velocità -->
264
+ <div class="speed-display" id="speed">0</div>
265
+
266
+ <!-- Top Bar -->
267
+ <div class="top-bar">
268
+ <div class="time" id="current-time">12:34</div>
269
+ <button class="search-button" id="search-btn">
270
+ <i class="fas fa-search"></i>
271
+ <span>Cerca destinazione</span>
272
+ </button>
273
+ </div>
274
+
275
+ <!-- Android Auto Overlay -->
276
+ <div class="android-auto-overlay"></div>
277
+
278
+ <!-- Bottom Control Bar -->
279
+ <div class="bottom-control">
280
+ <a href="#" class="nav-button"><i class="fas fa-apple-alt"></i></a>
281
+ <div class="mic-button" id="voice-mic"><i class="fas fa-microphone"></i></div>
282
+ <a href="#" class="nav-button"><i class="fas fa-compass"></i></a>
283
+ </div>
284
+
285
+ <!-- Voice Assistant Overlay -->
286
+ <div class="voice-assistant" id="voice-assistant">
287
+ <div class="voice-wave">
288
+ <div class="wave-bar"></div>
289
+ <div class="wave-bar"></div>
290
+ <div class="wave-bar"></div>
291
+ <div class="wave-bar"></div>
292
+ <div class="wave-bar"></div>
293
+ <div class="wave-bar"></div>
294
+ </div>
295
+ <div class="voice-text" id="voice-text">Ascolto…</div>
296
+ </div>
297
+
298
+ <!-- Schermo Navigazione Attiva -->
299
+ <div class="navigation-ui" id="nav-ui">
300
+ <div class="nav-header">
301
+ <div class="nav-distance" id="nav-distance">4.2 km</div>
302
+ <div class="nav-time" id="nav-time">6 min</div>
303
+ </div>
304
+ <div class="next-instruction">
305
+ <div class="turn-icon">L</div>
306
+ <span id="next-instruction-text">Svoltare a sinistra su Via Cavour</span>
307
+ </div>
308
+ </div>
309
+
310
+ <script>
311
+ // Aggiorna ora
312
+ setInterval(() => {
313
+ const now = new Date();
314
+ document.getElementById('current-time').textContent = now.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
315
+ }, 1000);
316
+
317
+ // Inizializza mappa
318
+ const map = L.map('map', { zoomControl: false }).setView([41.9028, 12.4964], 14);
319
+ L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
320
+ attribution: '© OpenStreetMap contributors'
321
+ }).addTo(map);
322
+
323
+ // Posizione utente
324
+ let userPos = [41.9028, 12.4964];
325
+ let userMarker = L.marker(userPos, {
326
+ icon: L.divIcon({
327
+ html: '<i class="fas fa-car text-red-600" style="font-size:24px; transform:rotate(45deg);"></i>',
328
+ iconSize: [32, 32],
329
+ iconAnchor: [16, 16]
330
+ })
331
+ }).addTo(map);
332
+
333
+ // Simulazione movimento
334
+ setInterval(() => {
335
+ userPos[0] += (Math.random() - 0.5) * 0.0002;
336
+ userPos[1] += (Math.random() - 0.5) * 0.0002;
337
+ userMarker.setLatLng(userPos);
338
+ }, 2000);
339
+
340
+ // Bottone Microfono
341
+ const voiceAssistant = document.getElementById('voice-assistant');
342
+ const voiceMic = document.getElementById('voice-mic');
343
+ const voiceText = document.getElementById('voice-text');
344
+
345
+ const commands = {
346
+ "dove sono": "Sei a Roma, centro città.",
347
+ "trova ristorante": "Cerco un ristorante nelle vicinanze…",
348
+ "a casa": () => startNavigation("Casa, Via Garibaldi 45, Roma"),
349
+ "a lavoro": () => startNavigation("Ufficio, Piazza del Popolo, Roma"),
350
+ "inizia navigazione": () => startNavigation("Stazione Termini, Roma"),
351
+ "navigatore": "Avvio il navigatore.",
352
+ "silenzio": "Ok, silenzio attivo."
353
+ };
354
+
355
+ voiceMic.addEventListener('click', () => {
356
+ voiceAssistant.classList.add('active');
357
+ voiceText.textContent = "Ascolto…";
358
+ setTimeout(() => {
359
+ voiceText.textContent = "Riconoscimento vocale…";
360
+ setTimeout(() => simulateVoiceCommand(), 1500);
361
+ }, 1000);
362
+ });
363
+
364
+ function simulateVoiceCommand() {
365
+ const possibleCommands = Object.keys(commands);
366
+ const randomCommand = possibleCommands[Math.floor(Math.random() * possibleCommands.length)];
367
+ voiceText.textContent = `Hai detto: "${randomCommand}"`;
368
+ setTimeout(() => {
369
+ const action = commands[randomCommand];
370
+ if (typeof action === 'function') {
371
+ action();
372
+ } else {
373
+ voiceText.textContent = action;
374
+ setTimeout(() => voiceAssistant.classList.remove('active'), 2000);
375
+ }
376
+ }, 1500);
377
+ }
378
+
379
+ function startNavigation(destination) {
380
+ voiceText.textContent = `Navigazione verso ${destination} avviata.`;
381
+ document.getElementById('next-instruction-text').textContent = `Verso ${destination}`;
382
+ document.getElementById('nav-ui').style.display = 'flex';
383
+
384
+ // Mostra freccia direzionale
385
+ setTimeout(() => {
386
+ document.getElementById('direction-arrow').classList.add('show');
387
+ }, 1000);
388
+
389
+ // Altri messaggi simulati
390
+ setTimeout(() => {
391
+ document.getElementById('next-instruction-text').textContent = "Svoltare a destra tra 300 metri";
392
+ document.getElementById('nav-distance').textContent = "3.1 km";
393
+ document.getElementById('nav-time').textContent = "4 min";
394
+ }, 5000);
395
+
396
+ // Simula velocità
397
+ setInterval(() => {
398
+ const speeds = [0, 10, 20, 40, 60, 80];
399
+ document.getElementById('speed').textContent = speeds[Math.floor(Math.random() * speeds.length)] + ' km/h';
400
+ }, 3000);
401
+ }
402
+
403
+ // Pulsante cerca
404
+ document.getElementById('search-btn').addEventListener('click', () => {
405
+ startNavigation("Piazza Navona, Roma");
406
+ });
407
+ </script>
408
+
409
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-qwensite.hf.space/logo.svg" alt="qwensite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-qwensite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >QwenSite</a> - 🧬 <a href="https://enzostvs-qwensite.hf.space?remix=condorhacker/navi" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
410
+ </html>
prompts.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ non e' un app per android ed e' molto scarna questa e' un mappa non e' simile ad un navigatore satellitare
2
+ questo non ha nulla a vedere con android auto per automobile