diff --git a/.gitignore b/.gitignore index 65ad9b9..516088e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ # Ignore the virtual environment folder -track/ \ No newline at end of file +track/ +resurces/projects/ diff --git a/CLEANUP_SUMMARY.md b/CLEANUP_SUMMARY.md deleted file mode 100644 index 6091fba..0000000 --- a/CLEANUP_SUMMARY.md +++ /dev/null @@ -1,45 +0,0 @@ -# Project Cleanup Summary - -## What Was Cleaned Up - -### Moved to `junk_files/` -- Documentation files (*.md) that were cluttering the root directory -- `3D_VIDEO_DOCUMENTATION.md` -- `PAUSE_EDIT_IMPROVEMENTS.md` -- `PROJECT_MODERNIZATION_SUMMARY.md` -- `TEST_MODE_DOCUMENTATION.md` - -### Removed -- All `__pycache__` directories and compiled Python bytecode files -- Duplicate and test files that were no longer needed - -### Fixed -- Fixed typo in requirements.txt (`reqirements.txt` was corrected to `requirements.txt`) -- Ensured proper import structure (app uses `py_scripts.video_3d_generator` correctly) - -## Current Clean Structure -``` -traccar_animation/ -├── .git/ # Git repository files -├── .gitignore # Git ignore rules -├── config.py # Application configuration -├── main.py # Main application entry point -├── traccar.kv # Kivy UI layout file -├── requirements.txt # Python dependencies (fixed) -├── py_scripts/ # Python modules -│ ├── __init__.py -│ ├── utils.py -│ ├── video_3d_generator.py -│ └── webview.py -├── screens/ # Kivy screen modules -├── resources/ # Application resources -├── track/ # Virtual environment -└── junk_files/ # Non-essential files moved here -``` - -## Verification -- ✅ Utils module imports correctly -- ✅ Video 3D generator module imports correctly -- ✅ No duplicate files remain -- ✅ All dependencies properly listed in requirements.txt -- ✅ Clean project structure maintained diff --git a/junk_files/PROJECT_MODERNIZATION_SUMMARY.md b/junk_files/PROJECT_MODERNIZATION_SUMMARY.md index 715d861..e69de29 100644 --- a/junk_files/PROJECT_MODERNIZATION_SUMMARY.md +++ b/junk_files/PROJECT_MODERNIZATION_SUMMARY.md @@ -1,105 +0,0 @@ -# Traccar Animation App - Modernization Complete - -## Project Overview -The Traccar Animation App has been successfully modernized with enhanced 3D video animation capabilities, improved code structure, and streamlined codebase. - -## Completed Modernization Tasks - -### 1. Code Structure Cleanup ✅ -- **Removed duplicate pause edit screens**: Deleted `pause_edit_screen.py` and `pause_edit_screen_legacy.py` -- **Single source of truth**: Only `pause_edit_screen_improved.py` remains -- **Organized utilities**: Moved utility modules to `py_scripts/` folder -- **Updated all imports**: All references updated to new module locations - -### 2. Enhanced 3D Video Animation ✅ -- **Google Earth-style camera**: Dynamic camera following with realistic perspective -- **Advanced visual effects**: Atmospheric perspective, terrain rendering, depth effects -- **Professional UI**: Enhanced information panels, compass, progress indicators -- **High-quality output**: 1920x1080 HD video at 30 FPS - -### 3. Project Structure Improvements ✅ -``` -traccar_animation/ -├── main.py # Main application entry -├── config.py # Configuration management -├── traccar.kv # UI layout definitions -├── reqirements.txt # Dependencies (fixed typo, added new deps) -├── py_scripts/ # Utility modules (new organization) -│ ├── utils.py # Core utilities -│ ├── video_3d_generator.py # Enhanced 3D video engine -│ ├── webview.py # Web integration -│ └── 3D_VIDEO_DOCUMENTATION.md # Technical documentation -├── screens/ # UI screen modules -│ ├── create_animation_screen.py -│ ├── get_trip_from_server.py -│ ├── home_screen.py -│ ├── login_screen.py -│ ├── pause_edit_screen_improved.py # Single pause edit implementation -│ └── settings_screen.py -└── resources/ # Static resources and data - ├── images/ - ├── projects/ - └── trip_archive/ -``` - -### 4. Technical Enhancements ✅ -- **Spectacular space entry sequence**: 3-second cinematic descent from 50km altitude -- **Optimized aerial camera system**: 1000-3000m height range for perfect aerial perspective -- **Enhanced Earth curvature rendering**: Realistic planetary view at high altitudes -- **Atmospheric transition effects**: Smooth space-to-atmosphere visual progression -- **Dynamic camera system**: Intelligent positioning and smooth transitions -- **Advanced 3D projection**: True perspective with depth-aware rendering -- **Enhanced terrain**: Multi-layer elevation with atmospheric effects -- **Professional UI elements**: Gradients, shadows, and cinematic effects -- **Optimized performance**: View frustum culling and efficient rendering - -### 5. Documentation Updates ✅ -- **Comprehensive 3D documentation**: Technical specifications and usage guide -- **Code comments**: Enhanced inline documentation -- **Requirements**: Updated and corrected dependency list - -## Key Features - -### Enhanced 3D Video Animation -- **Spectacular Space Entry**: 3-second cinematic descent from 50km altitude to route start -- **Google Earth-style flythrough**: Dynamic camera following route with look-ahead -- **Optimized Aerial Perspective**: Camera height range of 1000-3000m for perfect aerial views -- **Enhanced Visual Effects**: Earth curvature, atmospheric transitions, and space-to-sky gradients -- **Realistic terrain and atmospheric perspective**: Multi-layer terrain with atmospheric effects -- **Professional UI**: Speed, bearing, altitude, and progress indicators with gradients -- **High-definition output**: 1920x1080, 30 FPS with spectacular entry sequence - -### Improved Pause Editing -- Single, comprehensive pause edit screen -- Intuitive interface for route modification -- Enhanced user experience - -### Clean Architecture -- Modular code organization -- Clear separation of concerns -- Easy maintenance and extensibility - -## Dependencies -All required packages are listed in `reqirements.txt`: -- Core: `kivy`, `kivy-garden` -- Animation: `opencv-python`, `moviepy`, `imageio`, `ffmpeg-python` -- Data processing: `numpy`, `matplotlib`, `scipy` -- Mapping: `folium`, `geopy` -- Security: `cryptography` -- Web integration: `selenium`, `requests` -- Image processing: `pillow` - -## Verification Status -- ✅ All Python files compile without syntax errors -- ✅ All imports are correctly updated -- ✅ No duplicate or legacy code remains -- ✅ Documentation is comprehensive and up-to-date -- ✅ Project structure is clean and organized - -## Usage -1. Install dependencies: `pip install -r reqirements.txt` -2. Run the application: `python main.py` -3. Use the enhanced 3D animation features for professional video output -4. Leverage the improved pause editing for precise route modifications - -The Traccar Animation App is now fully modernized with a professional codebase, enhanced 3D video capabilities, and optimal project structure. diff --git a/junk_files/TEST_MODE_DOCUMENTATION.md b/junk_files/TEST_MODE_DOCUMENTATION.md index 8188aec..e69de29 100644 --- a/junk_files/TEST_MODE_DOCUMENTATION.md +++ b/junk_files/TEST_MODE_DOCUMENTATION.md @@ -1,108 +0,0 @@ -# 3D Video Generation Test Mode - -## Overview - -The 3D video generation now supports two modes to balance quality and generation speed: - -### 🏃♂️ 720p Test Mode (Fast) -- **Resolution**: 1280x720 pixels -- **Frame Rate**: 30 FPS -- **Entry Sequence**: 60 frames (2 seconds) -- **Route Frames**: 2x per GPS point -- **Generation Speed**: ~3x faster than production mode -- **File Size**: ~1/4 of production mode -- **Best For**: Quick previews, debugging routes, testing changes - -### 🎯 2K Production Mode (High Quality) -- **Resolution**: 2560x1440 pixels (2K) -- **Frame Rate**: 60 FPS -- **Entry Sequence**: 120 frames (4 seconds) -- **Route Frames**: 3x per GPS point -- **Generation Speed**: Full quality processing -- **File Size**: Full size for maximum quality -- **Best For**: Final videos, presentations, high-quality output - -## How to Use - -### In the App UI -1. Click "Generate 3D Video" button -2. Choose from the popup: - - **"Generate 720p Test Video"** for fast testing - - **"Generate 2K Production Video"** for final quality - -### In Code -```python -# Test mode (720p, faster) -generate_3d_video_animation(project_name, resources_folder, label, progress, popup, clock, test_mode=True) - -# Production mode (2K, high quality) -generate_3d_video_animation(project_name, resources_folder, label, progress, popup, clock, test_mode=False) - -# Or use convenience functions -generate_3d_video_animation_test_mode(...) -generate_3d_video_animation_production_mode(...) -``` - -## Performance Comparison - -| Aspect | 720p Test Mode | 2K Production Mode | -|--------|----------------|-------------------| -| Resolution | 1280x720 | 2560x1440 | -| Total Pixels | ~0.9 megapixels | ~3.7 megapixels | -| Frame Rate | 30 FPS | 60 FPS | -| Space Entry | 2 seconds | 4 seconds | -| Processing Time | ~3x faster | Full quality | -| File Size | ~1/4 size | Full size | -| Quality | Good for preview | Cinema quality | - -## When to Use Each Mode - -### Use 720p Test Mode When: -- ✅ Testing route visualization -- ✅ Debugging GPS data issues -- ✅ Iterating on video parameters -- ✅ Quick previews for clients -- ✅ Development and testing -- ✅ Limited storage space -- ✅ Faster upload/sharing needed - -### Use 2K Production Mode When: -- ✅ Creating final deliverable videos -- ✅ Professional presentations -- ✅ High-quality demos -- ✅ Maximum visual impact needed -- ✅ Detailed route analysis required -- ✅ Large screen display planned - -## File Naming Convention - -Generated videos will include the mode in the filename: -- Test mode: `project_720p_test_20250708_142815.mp4` -- Production mode: `project_2K_production_20250708_142815.mp4` - -## Technical Details - -### Test Mode Optimizations: -- Reduced frame generation (60 vs 120 for entry) -- Lower resolution reduces processing per frame -- Fewer intermediate frames per GPS point -- 30 FPS reduces total frame count -- Optimized rendering pipeline - -### Production Mode Features: -- Ultra-high resolution Earth rendering -- Extended space entry sequence -- Maximum detail in atmospheric effects -- Professional-grade visual effects -- Cinema-quality color grading -- Smooth 60 FPS motion - -## Tips for Best Results - -1. **Start with Test Mode**: Always preview your route in 720p test mode first -2. **Iterate Quickly**: Use test mode to adjust route parameters -3. **Final Production**: Once satisfied, generate the 2K production version -4. **Storage Planning**: Test mode files are ~25% the size of production files -5. **Time Management**: Test mode generates ~3x faster than production mode - -This dual-mode approach allows for rapid iteration during development while maintaining the ability to produce ultra-high-quality final videos. diff --git a/complete_video.py b/junk_files/complete_video.py similarity index 100% rename from complete_video.py rename to junk_files/complete_video.py diff --git a/junk_files/reqirements.txt b/junk_files/reqirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/junk_files/test_enhanced_video.py b/junk_files/test_enhanced_video.py new file mode 100644 index 0000000..e69de29 diff --git a/junk_files/test_google_earth.py b/junk_files/test_google_earth.py new file mode 100644 index 0000000..565a1ad --- /dev/null +++ b/junk_files/test_google_earth.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 +""" +Test script for Google Earth-style flythrough animation +""" + +import os +import sys +sys.path.append('/home/pi/Desktop/traccar_animation') + +from py_scripts.advanced_3d_generator import Advanced3DGenerator +from datetime import datetime + +def test_google_earth_animation(): + """Test the new Google Earth flythrough animation""" + + # Find a project with GPS data + projects_folder = "/home/pi/Desktop/traccar_animation/resources/projects" + + if not os.path.exists(projects_folder): + print("Projects folder not found!") + return + + # Look for projects + projects = [d for d in os.listdir(projects_folder) if os.path.isdir(os.path.join(projects_folder, d))] + + if not projects: + print("No projects found!") + return + + # Use the first project found + project_name = projects[0] + project_folder = os.path.join(projects_folder, project_name) + positions_file = os.path.join(project_folder, "positions.json") + + if not os.path.exists(positions_file): + print(f"No positions.json found in project {project_name}") + return + + print(f"Testing Google Earth animation with project: {project_name}") + + # Create generator + generator = Advanced3DGenerator(project_folder) + + # Check dependencies + try: + generator.check_dependencies() + print("✅ All dependencies available") + except Exception as e: + print(f"❌ Dependency error: {e}") + return + + # Generate Google Earth-style animation + output_video = os.path.join(project_folder, f"{project_name}_google_earth_test_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp4") + + def progress_callback(progress, message): + print(f"Progress: {progress:.1f}% - {message}") + + try: + print("Starting Google Earth flythrough generation...") + success = generator.generate_3d_animation( + positions_file, + output_video, + style='google_earth', + progress_callback=progress_callback + ) + + if success and os.path.exists(output_video): + print(f"✅ SUCCESS! Google Earth flythrough created: {output_video}") + + # Get file size + file_size = os.path.getsize(output_video) / (1024 * 1024) # MB + print(f"📹 Video size: {file_size:.1f} MB") + + else: + print("❌ Failed to create video") + + except Exception as e: + print(f"❌ Error during generation: {e}") + import traceback + traceback.print_exc() + +if __name__ == "__main__": + test_google_earth_animation() diff --git a/test_relive_animation.py b/junk_files/test_relive_animation.py similarity index 100% rename from test_relive_animation.py rename to junk_files/test_relive_animation.py diff --git a/junk_files/test_space_entry_fix.py b/junk_files/test_space_entry_fix.py new file mode 100644 index 0000000..e69de29 diff --git a/junk_files/test_transition.py b/junk_files/test_transition.py new file mode 100644 index 0000000..e69de29 diff --git a/junk_files/test_video_generator.py b/junk_files/test_video_generator.py new file mode 100644 index 0000000..e69de29 diff --git a/junk_files/test_video_modes.py b/junk_files/test_video_modes.py new file mode 100644 index 0000000..e69de29 diff --git a/junk_files/video_3d_generator.py b/junk_files/video_3d_generator.py new file mode 100644 index 0000000..e69de29 diff --git a/py_scripts/__pycache__/advanced_3d_generator.cpython-311.pyc b/py_scripts/__pycache__/advanced_3d_generator.cpython-311.pyc index 662108c..6d80d8b 100644 Binary files a/py_scripts/__pycache__/advanced_3d_generator.cpython-311.pyc and b/py_scripts/__pycache__/advanced_3d_generator.cpython-311.pyc differ diff --git a/py_scripts/advanced_3d_generator.py b/py_scripts/advanced_3d_generator.py index f8e9eca..961e861 100644 --- a/py_scripts/advanced_3d_generator.py +++ b/py_scripts/advanced_3d_generator.py @@ -34,44 +34,45 @@ except ImportError: print("Warning: pydeck not available. Install with: pip install pydeck") try: - from moviepy import VideoFileClip, ImageSequenceClip - MOVIEPY_AVAILABLE = True + import cv2 + OPENCV_AVAILABLE = True except ImportError: - MOVIEPY_AVAILABLE = False - print("Warning: moviepy not available. Install with: pip install moviepy") + OPENCV_AVAILABLE = False + print("Warning: opencv-python not available. Install with: pip install opencv-python") -class Advanced3DGenerator: +class NavigationAnimationGenerator: """ - Advanced 3D animation generator using Pydeck + Plotly + Blender pipeline - for high-quality GPS track visualizations + Professional navigation animation generator with satellite view and 3D camera following + Creates Google Earth-style entry scene and detailed terrain navigation """ def __init__(self, output_folder): self.output_folder = output_folder - self.frames_folder = os.path.join(output_folder, "frames") + self.frames_folder = os.path.join(output_folder, "nav_frames") self.temp_folder = os.path.join(output_folder, "temp") # Create necessary folders os.makedirs(self.frames_folder, exist_ok=True) os.makedirs(self.temp_folder, exist_ok=True) - # Animation settings + # Navigation animation settings self.fps = 30 - self.duration_per_point = 0.5 # seconds per GPS point - self.camera_height = 1000 # meters - self.trail_length = 50 # number of previous points to show + self.entry_duration = 4 # seconds for Google Earth entry + self.camera_height_min = 1000 # meters + self.camera_height_max = 2000 # meters + self.follow_distance = 500 # meters behind navigation point def check_dependencies(self): """Check if all required dependencies are available""" missing = [] if not PANDAS_AVAILABLE: - missing.append("pandas, geopandas") + missing.append("pandas geopandas") if not PLOTLY_AVAILABLE: missing.append("plotly") if not PYDECK_AVAILABLE: missing.append("pydeck") - if not MOVIEPY_AVAILABLE: - missing.append("moviepy") + if not OPENCV_AVAILABLE: + missing.append("opencv-python") if missing: raise ImportError(f"Missing required dependencies: {', '.join(missing)}. Please install them with: pip install {' '.join(missing)}") @@ -79,7 +80,7 @@ class Advanced3DGenerator: return True def load_gps_data(self, positions_file): - """Load and preprocess GPS data""" + """Load and preprocess GPS data for navigation""" with open(positions_file, 'r') as f: positions = json.load(f) @@ -92,11 +93,360 @@ class Advanced3DGenerator: # Calculate speed and bearing df['speed_kmh'] = df['speed'] * 1.852 # Convert knots to km/h - df['elevation'] = df.get('altitude', 0) + df['elevation'] = df.get('altitude', 100) - # Calculate distance between points - distances = [] + # Calculate bearings and distances bearings = [] + distances = [] + + for i in range(len(df)): + if i == 0: + bearings.append(0) + distances.append(0) + else: + # Calculate bearing to next point + lat1, lon1 = df.iloc[i-1]['latitude'], df.iloc[i-1]['longitude'] + lat2, lon2 = df.iloc[i]['latitude'], df.iloc[i]['longitude'] + + bearing = self.calculate_bearing(lat1, lon1, lat2, lon2) + distance = geodesic((lat1, lon1), (lat2, lon2)).meters + + bearings.append(bearing) + distances.append(distance) + + df['bearing'] = bearings + df['distance'] = distances + + return df + + def calculate_bearing(self, lat1, lon1, lat2, lon2): + """Calculate bearing between two GPS points""" + lat1, lon1, lat2, lon2 = map(math.radians, [lat1, lon1, lat2, lon2]) + dlon = lon2 - lon1 + + y = math.sin(dlon) * math.cos(lat2) + x = math.cos(lat1) * math.sin(lat2) - math.sin(lat1) * math.cos(lat2) * math.cos(dlon) + + bearing = math.atan2(y, x) + bearing = math.degrees(bearing) + bearing = (bearing + 360) % 360 + + return bearing + + def create_google_earth_entry_scene(self, df, frame_num): + """Create Google Earth-style entry scene (zooming in from space)""" + if not PLOTLY_AVAILABLE: + raise ImportError("Plotly is required for entry scene") + + # Get route bounds + center_lat = df['latitude'].mean() + center_lon = df['longitude'].mean() + + # Entry animation: start from very high altitude and zoom in + total_entry_frames = self.entry_duration * self.fps + zoom_progress = frame_num / total_entry_frames + + # Camera altitude decreases exponentially + start_altitude = 50000 # Start from 50km + end_altitude = 3000 # End at 3km + current_altitude = start_altitude * (1 - zoom_progress) + end_altitude * zoom_progress + + # Create figure + fig = go.Figure() + + # Add Earth-like surface with satellite imagery simulation + terrain_size = 0.5 - (0.4 * zoom_progress) # Zoom in effect + resolution = int(30 + (50 * zoom_progress)) # More detail as we zoom + + lat_range = np.linspace(center_lat - terrain_size, center_lat + terrain_size, resolution) + lon_range = np.linspace(center_lon - terrain_size, center_lon + terrain_size, resolution) + lat_mesh, lon_mesh = np.meshgrid(lat_range, lon_range) + + # Generate satellite-like terrain + terrain_heights = self.generate_satellite_terrain(lat_mesh, lon_mesh, center_lat, center_lon) + + # Add terrain surface + fig.add_trace( + go.Surface( + x=lon_mesh, + y=lat_mesh, + z=terrain_heights, + colorscale=[ + [0.0, 'rgb(0,100,0)'], # Deep green (forests) + [0.2, 'rgb(34,139,34)'], # Forest green + [0.4, 'rgb(255,215,0)'], # Gold (fields) + [0.6, 'rgb(139,69,19)'], # Brown (earth) + [0.8, 'rgb(105,105,105)'], # Gray (rock) + [1.0, 'rgb(255,255,255)'] # White (snow) + ], + opacity=0.95, + showscale=False, + lighting=dict( + ambient=0.4, + diffuse=0.8, + specular=0.2 + ) + ) + ) + + # Show partial route (fading in) + route_alpha = min(1.0, zoom_progress * 2) + if route_alpha > 0: + fig.add_trace( + go.Scatter3d( + x=df['longitude'], + y=df['latitude'], + z=df['elevation'] + 100, + mode='lines', + line=dict( + color='red', + width=8, + ), + opacity=route_alpha, + name='Route' + ) + ) + + # Camera position for entry effect + camera_distance = current_altitude / 10000 + + fig.update_layout( + title=dict( + text=f'Navigation Overview - Approaching Destination', + x=0.5, + font=dict(size=28, color='white', family="Arial Black") + ), + scene=dict( + camera=dict( + eye=dict(x=0, y=-camera_distance, z=camera_distance), + center=dict(x=0, y=0, z=0), + up=dict(x=0, y=0, z=1) + ), + xaxis=dict(visible=False), + yaxis=dict(visible=False), + zaxis=dict(visible=False), + aspectmode='cube', + bgcolor='rgb(0,0,50)', # Space-like background + ), + paper_bgcolor='black', + showlegend=False, + width=1920, + height=1080, + margin=dict(l=0, r=0, t=60, b=0) + ) + + # Save frame + frame_path = os.path.join(self.frames_folder, f"NavEntry_{frame_num:04d}.png") + fig.write_image(frame_path, engine="kaleido") + return frame_path + + def create_navigation_frame(self, df, current_index, frame_num): + """Create detailed navigation frame with 3D following camera""" + if not PLOTLY_AVAILABLE: + raise ImportError("Plotly is required for navigation frames") + + current_row = df.iloc[current_index] + current_lat = current_row['latitude'] + current_lon = current_row['longitude'] + current_alt = current_row['elevation'] + current_speed = current_row['speed_kmh'] + current_bearing = current_row['bearing'] + + # Get route progress + completed_route = df.iloc[:current_index + 1] + remaining_route = df.iloc[current_index:] + + # Create detailed terrain around current position + terrain_radius = 0.01 # degrees around current position + resolution = 60 + + lat_range = np.linspace(current_lat - terrain_radius, current_lat + terrain_radius, resolution) + lon_range = np.linspace(current_lon - terrain_radius, current_lon + terrain_radius, resolution) + lat_mesh, lon_mesh = np.meshgrid(lat_range, lon_range) + + # Generate high-detail satellite terrain + terrain_heights = self.generate_detailed_terrain(lat_mesh, lon_mesh, current_lat, current_lon) + + # Create navigation display figure + fig = go.Figure() + + # Add detailed terrain + fig.add_trace( + go.Surface( + x=lon_mesh, + y=lat_mesh, + z=terrain_heights, + colorscale=[ + [0.0, 'rgb(34,139,34)'], # Forest green + [0.2, 'rgb(107,142,35)'], # Olive drab + [0.4, 'rgb(255,215,0)'], # Gold (fields) + [0.5, 'rgb(210,180,140)'], # Tan (roads/clearings) + [0.7, 'rgb(139,69,19)'], # Brown (earth) + [0.9, 'rgb(105,105,105)'], # Gray (rock) + [1.0, 'rgb(255,255,255)'] # White (peaks) + ], + opacity=0.9, + showscale=False, + lighting=dict( + ambient=0.3, + diffuse=0.9, + specular=0.1 + ) + ) + ) + + # Add completed route (green) + if len(completed_route) > 1: + fig.add_trace( + go.Scatter3d( + x=completed_route['longitude'], + y=completed_route['latitude'], + z=completed_route['elevation'] + 50, + mode='lines', + line=dict(color='lime', width=12), + name='Completed' + ) + ) + + # Add remaining route (blue, semi-transparent) + if len(remaining_route) > 1: + fig.add_trace( + go.Scatter3d( + x=remaining_route['longitude'], + y=remaining_route['latitude'], + z=remaining_route['elevation'] + 50, + mode='lines', + line=dict(color='cyan', width=8), + opacity=0.6, + name='Remaining' + ) + ) + + # Add navigation point (current vehicle position) + fig.add_trace( + go.Scatter3d( + x=[current_lon], + y=[current_lat], + z=[current_alt + 100], + mode='markers', + marker=dict( + color='red', + size=25, + symbol='diamond', + line=dict(color='white', width=4) + ), + name='Vehicle' + ) + ) + + # Add direction indicator + bearing_rad = math.radians(current_bearing) + arrow_length = 0.002 + arrow_end_lat = current_lat + arrow_length * math.cos(bearing_rad) + arrow_end_lon = current_lon + arrow_length * math.sin(bearing_rad) + + fig.add_trace( + go.Scatter3d( + x=[current_lon, arrow_end_lon], + y=[current_lat, arrow_end_lat], + z=[current_alt + 120, current_alt + 120], + mode='lines', + line=dict(color='yellow', width=15), + name='Direction' + ) + ) + + # Calculate dynamic camera position for 3D following + # Camera follows behind and above at specified height + camera_height = self.camera_height_min + (self.camera_height_max - self.camera_height_min) * (current_speed / 100) + follow_distance_deg = 0.005 # degrees behind vehicle + + # Position camera behind vehicle based on bearing + camera_bearing = (current_bearing + 180) % 360 # Opposite direction + camera_bearing_rad = math.radians(camera_bearing) + + camera_lat = current_lat + follow_distance_deg * math.cos(camera_bearing_rad) + camera_lon = current_lon + follow_distance_deg * math.sin(camera_bearing_rad) + + # Calculate relative camera position + camera_eye_x = (camera_lon - current_lon) * 100 + camera_eye_y = (camera_lat - current_lat) * 100 + camera_eye_z = camera_height / 1000 + + # Navigation info overlay + total_distance = sum(df['distance']) + completed_distance = sum(completed_route['distance']) + progress_percent = (completed_distance / total_distance) * 100 if total_distance > 0 else 0 + + fig.update_layout( + title=dict( + text=f'Navigation • Speed: {current_speed:.1f} km/h • Progress: {progress_percent:.1f}% • {current_row["timestamp"].strftime("%H:%M:%S")}', + x=0.5, + font=dict(size=20, color='white', family="Arial Black") + ), + scene=dict( + camera=dict( + eye=dict(x=camera_eye_x, y=camera_eye_y, z=camera_eye_z), + center=dict(x=0, y=0, z=0), + up=dict(x=0, y=0, z=1) + ), + xaxis=dict(visible=False), + yaxis=dict(visible=False), + zaxis=dict(visible=False), + aspectmode='manual', + aspectratio=dict(x=1, y=1, z=0.3), + bgcolor='rgb(135,206,235)' # Sky blue + ), + paper_bgcolor='black', + showlegend=False, + width=1920, + height=1080, + margin=dict(l=0, r=0, t=50, b=0) + ) + + # Save frame + frame_path = os.path.join(self.frames_folder, f"Navigation_{frame_num:04d}.png") + fig.write_image(frame_path, engine="kaleido") + return frame_path + + def generate_satellite_terrain(self, lat_mesh, lon_mesh, center_lat, center_lon): + """Generate satellite-view realistic terrain for entry scene""" + # Convert to local coordinates + lat_m = (lat_mesh - center_lat) * 111000 + lon_m = (lon_mesh - center_lon) * 111000 * np.cos(np.radians(center_lat)) + + # Base elevation with realistic variation + base_height = 200 + 50 * np.sin(lat_m / 5000) * np.cos(lon_m / 3000) + + # Mountain ranges + mountains = 800 * np.exp(-((lat_m - 2000)**2 + (lon_m - 1000)**2) / (3000**2)) + mountains += 600 * np.exp(-((lat_m + 1500)**2 + (lon_m + 2000)**2) / (2500**2)) + + # Hills and valleys + hills = 200 * np.sin(lat_m / 1000) * np.cos(lon_m / 1200) + valleys = -100 * np.exp(-((lat_m)**2 + (lon_m)**2) / (2000**2)) + + terrain = base_height + mountains + hills + valleys + return np.maximum(terrain, 50) + + def generate_detailed_terrain(self, lat_mesh, lon_mesh, center_lat, center_lon): + """Generate high-detail terrain for navigation view""" + # Convert to local coordinates + lat_m = (lat_mesh - center_lat) * 111000 + lon_m = (lon_mesh - center_lon) * 111000 * np.cos(np.radians(center_lat)) + + # Base terrain + base = 150 + 30 * np.sin(lat_m / 500) * np.cos(lon_m / 400) + + # Local features + hills = 100 * np.exp(-((lat_m - 300)**2 + (lon_m - 200)**2) / (200**2)) + ridges = 80 * np.exp(-((lat_m + 200)**2 + (lon_m - 400)**2) / (300**2)) + + # Fine detail + detail = 20 * np.sin(lat_m / 50) * np.cos(lon_m / 60) + + terrain = base + hills + ridges + detail + return np.maximum(terrain, 30) for i in range(len(df)): if i == 0: @@ -557,14 +907,16 @@ class Advanced3DGenerator: return frame_paths def create_video(self, frame_paths, output_video_path, progress_callback=None): - """Create video from frames using MoviePy with optimized settings""" - print("Creating Relive-style animation video...") + """Create video from frames using OpenCV for better compatibility""" + print("Creating navigation animation video...") if not frame_paths: print("No frames to create video from") return False try: + import cv2 + # Filter out None paths valid_frames = [f for f in frame_paths if f and os.path.exists(f)] @@ -574,46 +926,67 @@ class Advanced3DGenerator: print(f"Creating video from {len(valid_frames)} frames at {self.fps} FPS...") - # Create video clip from images with optimal settings - clip = ImageSequenceClip(valid_frames, fps=self.fps) + # Update progress + if progress_callback: + progress_callback(30, "Reading frame dimensions...") - # Add smooth fade effects for professional look - clip = clip.fadein(0.5).fadeout(0.5) + # Read first frame to get dimensions + first_frame = cv2.imread(valid_frames[0]) + if first_frame is None: + print("Error reading first frame") + return False + + height, width, layers = first_frame.shape # Update progress if progress_callback: - progress_callback(50, "Encoding video with optimized settings...") + progress_callback(40, "Setting up video encoder...") - # Write video file with high quality settings - clip.write_videofile( - output_video_path, - codec='libx264', - audio=False, - temp_audiofile=None, - remove_temp=True, - verbose=False, - logger=None, - bitrate="8000k", # High quality bitrate - ffmpeg_params=[ - "-preset", "medium", # Balance between speed and compression - "-crf", "18", # High quality (lower = better quality) - "-pix_fmt", "yuv420p" # Better compatibility - ] - ) + # Create video writer with OpenCV + fourcc = cv2.VideoWriter_fourcc(*'mp4v') # You can also try 'XVID' + video_writer = cv2.VideoWriter(output_video_path, fourcc, self.fps, (width, height)) + + if not video_writer.isOpened(): + print("Error: Could not open video writer") + return False + + # Update progress + if progress_callback: + progress_callback(50, "Writing frames to video...") + + # Write frames to video + total_frames = len(valid_frames) + for i, frame_path in enumerate(valid_frames): + frame = cv2.imread(frame_path) + if frame is not None: + video_writer.write(frame) + + # Update progress periodically + if progress_callback and i % 10 == 0: + progress_percent = 50 + (i / total_frames) * 40 # 50-90% + progress_callback(progress_percent, f"Writing frame {i+1}/{total_frames}...") + + # Clean up + video_writer.release() + cv2.destroyAllWindows() if progress_callback: progress_callback(100, f"Video successfully created: {os.path.basename(output_video_path)}") - print(f"✅ Relive-style animation video saved to: {output_video_path}") - print(f"📊 Video info: {len(valid_frames)} frames, {self.fps} FPS, {clip.duration:.1f}s duration") - - # Clean up clip - clip.close() - - return True + # Verify the video was created + if os.path.exists(output_video_path) and os.path.getsize(output_video_path) > 0: + print(f"✅ Navigation animation video saved to: {output_video_path}") + file_size = os.path.getsize(output_video_path) / (1024 * 1024) # MB + print(f"📊 Video info: {len(valid_frames)} frames, {self.fps} FPS, {file_size:.1f} MB") + return True + else: + print("Error: Video file was not created properly") + return False except Exception as e: print(f"Error creating video: {e}") + if progress_callback: + progress_callback(-1, f"Error: {e}") return False def cleanup_frames(self): @@ -623,38 +996,7 @@ class Advanced3DGenerator: shutil.rmtree(self.frames_folder) os.makedirs(self.frames_folder, exist_ok=True) - def generate_3d_animation(self, positions_file, output_video_path, - style='advanced', cleanup=True, progress_callback=None): - """ - Main method to generate 3D animation - - Args: - positions_file: Path to JSON file with GPS positions - output_video_path: Path for output video - style: 'pydeck', 'plotly', or 'advanced' - cleanup: Whether to clean up temporary files - progress_callback: Callback function for progress updates - """ - try: - # Generate frames - frame_paths = self.generate_frames(positions_file, style, progress_callback) - - if not frame_paths: - raise Exception("No frames generated") - - # Create video - success = self.create_video(frame_paths, output_video_path, progress_callback) - - if cleanup: - self.cleanup_frames() - - return success - - except Exception as e: - print(f"Error generating 3D animation: {e}") - if progress_callback: - progress_callback(-1, f"Error: {e}") - return False + def create_google_earth_frame(self, df, current_index, frame_num): """ @@ -887,42 +1229,4 @@ class Advanced3DGenerator: return terrain -def generate_advanced_3d_video(positions_file, output_folder, filename_prefix="advanced_3d", - style='advanced', progress_callback=None): - """ - Convenience function to generate advanced 3D video - """ - generator = Advanced3DGenerator(output_folder) - - timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - output_video_path = os.path.join(output_folder, f"{filename_prefix}_{timestamp}.mp4") - - success = generator.generate_3d_animation( - positions_file, - output_video_path, - style=style, - progress_callback=progress_callback - ) - - return output_video_path if success else None -# Test function -if __name__ == "__main__": - # Test the advanced 3D generator - test_positions = "test_positions.json" - output_dir = "test_output" - - def test_progress(progress, message): - print(f"Progress: {progress:.1f}% - {message}") - - video_path = generate_advanced_3d_video( - test_positions, - output_dir, - style='advanced', - progress_callback=test_progress - ) - - if video_path: - print(f"Test video created: {video_path}") - else: - print("Test failed") diff --git a/py_scripts/video_3d_generator.py b/py_scripts/video_3d_generator.py deleted file mode 100644 index a2b78c1..0000000 --- a/py_scripts/video_3d_generator.py +++ /dev/null @@ -1,1835 +0,0 @@ -""" -3D Video Animation Generator -Creates professional Google Earth-style 3D video animations from GPS route data -""" - -import json -import os -import math -import requests -import cv2 -import numpy as np -from PIL import Image, ImageDraw, ImageFont, ImageFilter -import tempfile -import shutil -from datetime import datetime -import random - -def generate_3d_video_animation(project_name, resources_folder, label_widget, progress_widget, popup_widget, clock_module, test_mode=False): - """ - Generate a 3D video animation similar to Relive - - Args: - project_name: Name of the project - resources_folder: Path to resources folder - label_widget: Kivy label for status updates - progress_widget: Kivy progress bar - popup_widget: Kivy popup to dismiss when done - clock_module: Kivy Clock module for scheduling - test_mode: If True, generates video in 720p for faster testing (default: False for 2K quality) - """ - - def update_progress(progress_val, status_text): - """Update UI from background thread""" - def _update(dt): - progress_widget.value = progress_val - label_widget.text = status_text - clock_module.schedule_once(_update, 0) - - def finish_generation(success, message, output_path=None): - """Finish the generation process""" - def _finish(dt): - if popup_widget: - popup_widget.dismiss() - - # Show result popup - from kivy.uix.popup import Popup - from kivy.uix.boxlayout import BoxLayout - from kivy.uix.button import Button - from kivy.uix.label import Label - - result_layout = BoxLayout(orientation='vertical', spacing=10, padding=10) - - if success: - result_label = Label( - text=f"3D Video Generated Successfully!\n\nSaved to:\n{output_path}", - color=(0, 1, 0, 1), - halign="center" - ) - open_btn = Button( - text="Open Video Folder", - size_hint_y=None, - height=40, - background_color=(0.2, 0.7, 0.2, 1) - ) - open_btn.bind(on_press=lambda x: (os.system(f"xdg-open '{os.path.dirname(output_path)}'"), result_popup.dismiss())) - result_layout.add_widget(result_label) - result_layout.add_widget(open_btn) - else: - result_label = Label( - text=f"Generation Failed:\n{message}", - color=(1, 0, 0, 1), - halign="center" - ) - result_layout.add_widget(result_label) - - close_btn = Button( - text="Close", - size_hint_y=None, - height=40, - background_color=(0.3, 0.3, 0.3, 1) - ) - - result_layout.add_widget(close_btn) - - result_popup = Popup( - title="3D Video Generation Result", - content=result_layout, - size_hint=(0.9, 0.6), - auto_dismiss=False - ) - - close_btn.bind(on_press=lambda x: result_popup.dismiss()) - result_popup.open() - - clock_module.schedule_once(_finish, 0) - - def run_generation(): - """Main generation function""" - try: - # Step 1: Load route data - update_progress(10, "Loading route data...") - project_folder = os.path.join(resources_folder, "projects", project_name) - positions_path = os.path.join(project_folder, "positions.json") - - if not os.path.exists(positions_path): - finish_generation(False, "No route data found!") - return - - with open(positions_path, "r") as f: - positions = json.load(f) - - if len(positions) < 10: - finish_generation(False, "Route too short for 3D animation (minimum 10 points)") - return - - # Step 2: Calculate route bounds and center - update_progress(20, "Calculating route boundaries...") - lats = [pos['latitude'] for pos in positions] - lons = [pos['longitude'] for pos in positions] - - center_lat = sum(lats) / len(lats) - center_lon = sum(lons) / len(lons) - - min_lat, max_lat = min(lats), max(lats) - min_lon, max_lon = min(lons), max(lons) - - # Step 3: Generate frames with space entry sequence - update_progress(30, "Generating 3D frames with space entry...") - - # Create temporary directory for frames - temp_dir = tempfile.mkdtemp() - frames_dir = os.path.join(temp_dir, "frames") - os.makedirs(frames_dir) - - # Video settings - Test mode vs Production quality - if test_mode: - # Test mode: 720p resolution for faster generation - width, height = 1280, 720 # 720p for testing - fps = 30 # Standard frame rate for testing - entry_frames = 60 # 2 seconds at 30fps for quicker tests - total_frames = entry_frames + len(positions) * 2 # Fewer frames per position for faster testing - quality_suffix = "720p_test" - update_progress(30, "Creating 720p test video...") - else: - # Production mode: 2K resolution for high quality - width, height = 2560, 1440 # 1440p (2K) for much higher quality - fps = 60 # Higher frame rate for smoother motion - entry_frames = 120 # 4 seconds at 60fps for longer, more detailed space entry - total_frames = entry_frames + len(positions) * 3 # More frames per position for ultra-smooth animation - quality_suffix = "2K_production" - update_progress(30, "Creating 2K production video...") - - frame_counter = 0 - - # Generate space entry sequence - mode_text = "720p test" if test_mode else "2K production" - update_progress(30, f"Creating space entry sequence ({mode_text})...") - for i in range(entry_frames): - progress = 30 + (i / total_frames) * 40 - update_progress(progress, f"Space entry frame {i+1}/{entry_frames} ({mode_text})...") - - try: - frame = create_space_entry_frame( - positions[0], center_lat, center_lon, - min_lat, max_lat, min_lon, max_lon, - width, height, i, entry_frames - ) - - frame_path = os.path.join(frames_dir, f"frame_{frame_counter:06d}.png") - cv2.imwrite(frame_path, frame) - frame_counter += 1 - - except Exception as e: - print(f"Error generating space entry frame {i}: {e}") - # Create a simple fallback frame - fallback_frame = np.zeros((height, width, 3), dtype=np.uint8) - fallback_frame[:] = (0, 0, 50) # Space-like background - frame_path = os.path.join(frames_dir, f"frame_{frame_counter:06d}.png") - cv2.imwrite(frame_path, fallback_frame) - frame_counter += 1 - - # Generate route following frames - for i, pos in enumerate(positions): - progress = 30 + ((entry_frames + i) / total_frames) * 40 - update_progress(progress, f"Route frame {i+1}/{len(positions)}...") - - try: - frame = create_3d_frame( - pos, positions, i, center_lat, center_lon, - min_lat, max_lat, min_lon, max_lon, - width, height - ) - - # Save frame - frame_path = os.path.join(frames_dir, f"frame_{frame_counter:06d}.png") - cv2.imwrite(frame_path, frame) - frame_counter += 1 - - except Exception as e: - print(f"Error generating route frame {i}: {e}") - # Create a simple fallback frame to continue generation - fallback_frame = np.zeros((height, width, 3), dtype=np.uint8) - fallback_frame[:] = (50, 50, 100) # Dark blue background - frame_path = os.path.join(frames_dir, f"frame_{frame_counter:06d}.png") - cv2.imwrite(frame_path, fallback_frame) - frame_counter += 1 - - # Add transition bridge frame (smooth transition from space to route) - try: - update_progress(progress, "Creating transition bridge...") - transition_frame = create_transition_bridge_frame( - positions[0], center_lat, center_lon, - min_lat, max_lat, min_lon, max_lon, - width, height - ) - frame_path = os.path.join(frames_dir, f"frame_{frame_counter:06d}.png") - cv2.imwrite(frame_path, transition_frame) - frame_counter += 1 - except Exception as e: - print(f"Warning: Could not create transition bridge frame: {e}") - - # Step 4: Create video - update_progress(75, f"Compiling {quality_suffix} video...") - - # Output path with quality indicator - output_filename = f"{project_name}_3d_animation_{quality_suffix}_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp4" - output_path = os.path.join(project_folder, output_filename) - - # Create video writer - fourcc = cv2.VideoWriter_fourcc(*'mp4v') - video_writer = cv2.VideoWriter(output_path, fourcc, fps, (width, height)) - - # Add frames to video - frame_files = sorted([f for f in os.listdir(frames_dir) if f.endswith('.png')]) - for frame_file in frame_files: - frame_path = os.path.join(frames_dir, frame_file) - frame = cv2.imread(frame_path) - video_writer.write(frame) - - video_writer.release() - - # Step 5: Add audio (optional) - update_progress(90, "Adding finishing touches...") - - # Clean up - shutil.rmtree(temp_dir) - - update_progress(100, "3D Video generated successfully!") - finish_generation(True, "Success!", output_path) - - except Exception as e: - finish_generation(False, str(e)) - - # Start generation in background - import threading - thread = threading.Thread(target=run_generation) - thread.daemon = True - thread.start() - -def create_3d_frame(current_pos, all_positions, frame_index, center_lat, center_lon, - min_lat, max_lat, min_lon, max_lon, width, height): - """ - Create a Google Earth-style 3D frame with camera following the route - """ - # Create canvas - frame = np.zeros((height, width, 3), dtype=np.uint8) - - # Enhanced camera following system - camera_pos, camera_target, camera_bearing = calculate_dynamic_camera_position( - current_pos, all_positions, frame_index, min_lat, max_lat, min_lon, max_lon - ) - - # Google Earth-style perspective parameters with improved aerial view - base_camera_height = 1500 + 1000 * math.sin(frame_index * 0.02) # 1000-3000m range - camera_height = base_camera_height + 500 * math.sin(frame_index * 0.05) # Add variation - view_distance = 3000 # Increased view distance for better aerial perspective - tilt_angle = 65 + 8 * math.sin(frame_index * 0.03) # Dynamic tilt for cinematic effect - fov = 75 # Slightly wider field of view for aerial shots - - # Create enhanced terrain background - create_terrain_background(frame, width, height, camera_pos['latitude'], camera_pos['longitude'], camera_bearing, tilt_angle) - - # Transform all route points to 3D camera space - route_points_3d = [] - for i, pos in enumerate(all_positions): - # Calculate distance from camera - dist_to_camera = calculate_distance(camera_pos['latitude'], camera_pos['longitude'], - pos['latitude'], pos['longitude']) - - if dist_to_camera > view_distance * 2: # Skip points too far away - continue - - # Get elevation for this point - elevation = get_simulated_elevation(pos['latitude'], pos['longitude'], i) - - # Convert to 3D screen coordinates - screen_x, screen_y, is_visible = world_to_screen_3d( - pos['latitude'], pos['longitude'], elevation, - camera_pos['latitude'], camera_pos['longitude'], camera_height, - camera_bearing, tilt_angle, width, height, view_distance - ) - - if is_visible: - # Mark points as past, current, or future - # Ensure at least the current position (frame_index) is marked as past - is_past_or_current = i <= frame_index - route_points_3d.append((screen_x, screen_y, is_past_or_current)) - - # Draw route with enhanced 3D effects - draw_3d_route(frame, route_points_3d, frame_index) - - # Add Google Earth-style UI overlays - add_google_earth_ui(frame, current_pos, camera_bearing, width, height, frame_index, len(all_positions)) - - # Add atmospheric effects - add_atmospheric_perspective(frame, width, height) - - return frame - -def calculate_bearing(lat1, lon1, lat2, lon2): - """Calculate bearing between two GPS points""" - lat1_rad = math.radians(lat1) - lat2_rad = math.radians(lat2) - dlon_rad = math.radians(lon2 - lon1) - - y = math.sin(dlon_rad) * math.cos(lat2_rad) - x = math.cos(lat1_rad) * math.sin(lat2_rad) - math.sin(lat1_rad) * math.cos(lat2_rad) * math.cos(dlon_rad) - - bearing = math.atan2(y, x) - bearing = math.degrees(bearing) - bearing = (bearing + 360) % 360 - - return bearing - -def create_terrain_background(frame, width, height, camera_lat, camera_lon, bearing, tilt_angle): - """Create a professional Google Earth-style terrain background""" - - # Enhanced sky gradient with realistic atmospheric scattering - for y in range(int(height * 0.35)): # Sky takes upper 35% - sky_intensity = y / (height * 0.35) - - # Realistic sky colors with atmospheric perspective - horizon_r, horizon_g, horizon_b = 255, 248, 220 # Warm horizon - zenith_r, zenith_g, zenith_b = 135, 206, 235 # Sky blue - - r = int(horizon_r + (zenith_r - horizon_r) * sky_intensity) - g = int(horizon_g + (zenith_g - horizon_g) * sky_intensity) - b = int(horizon_b + (zenith_b - horizon_b) * sky_intensity) - - frame[y, :] = (b, g, r) # BGR format for OpenCV - - # Realistic terrain with multiple layers and textures - terrain_start_y = int(height * 0.35) - create_enhanced_terrain_layer(frame, width, height, terrain_start_y, camera_lat, camera_lon) - - # Add atmospheric haze for depth - add_atmospheric_haze(frame, width, height, terrain_start_y) - - # Add realistic cloud shadows - add_cloud_shadows(frame, width, height, terrain_start_y) - -def create_enhanced_terrain_layer(frame, width, height, start_y, camera_lat, camera_lon): - """Create enhanced terrain with realistic colors and textures""" - - for y in range(start_y, height): - distance_factor = (y - start_y) / (height - start_y) - - for x in range(width): - # Multiple noise layers for realistic terrain variation - terrain_color = generate_enhanced_terrain_color(x, y, camera_lat, camera_lon, width, height, distance_factor) - frame[y, x] = terrain_color - -def generate_enhanced_terrain_color(x, y, camera_lat, camera_lon, width, height, distance_factor): - """Generate enhanced terrain color with realistic geographic features""" - - # Base terrain using multiple octaves of noise - noise_scale1 = 0.01 - noise_scale2 = 0.005 - noise_scale3 = 0.002 - - # Primary terrain features - terrain1 = math.sin(x * noise_scale1) * math.sin(y * noise_scale1) - terrain2 = math.sin(x * noise_scale2 + 100) * math.sin(y * noise_scale2 + 100) * 0.7 - terrain3 = math.sin(x * noise_scale3 + 200) * math.sin(y * noise_scale3 + 200) * 0.3 - - combined_terrain = terrain1 + terrain2 + terrain3 - - # Simulate geographic coordinate influence - lat_influence = math.sin(camera_lat * 0.1) * 0.5 - lon_influence = math.cos(camera_lon * 0.1) * 0.3 - geographic_factor = lat_influence + lon_influence - - final_terrain = combined_terrain + geographic_factor - - # Classify terrain types based on noise - if final_terrain > 1.2: - # High mountains - snow-capped peaks - base_color = (240, 248, 255) # Alice blue - elif final_terrain > 0.8: - # Mountains - rocky gray/brown - base_color = (105, 105, 105) # Dim gray - elif final_terrain > 0.4: - # Hills - forest green - base_color = (34, 139, 34) # Forest green - elif final_terrain > 0.1: - # Plains - grassland - base_color = (124, 252, 0) # Lawn green - elif final_terrain > -0.2: - # Agricultural areas - golden - base_color = (255, 215, 0) # Gold - elif final_terrain > -0.5: - # Desert/arid - sandy brown - base_color = (244, 164, 96) # Sandy brown - else: - # Water bodies - deep blue - base_color = (25, 25, 112) # Midnight blue - - # Apply distance-based atmospheric perspective - atmosphere_fade = 1.0 - (distance_factor * 0.4) - final_color = tuple(int(c * atmosphere_fade + 200 * (1 - atmosphere_fade)) for c in base_color) - - # Add subtle texture variation - texture_noise = (math.sin(x * 0.1) * math.sin(y * 0.1)) * 10 - final_color = tuple(max(0, min(255, c + int(texture_noise))) for c in final_color) - - return final_color - -def add_atmospheric_haze(frame, width, height, terrain_start_y): - """Add realistic atmospheric haze for depth perception""" - - haze_overlay = np.zeros_like(frame) - - for y in range(terrain_start_y, height): - distance_factor = (y - terrain_start_y) / (height - terrain_start_y) - haze_intensity = distance_factor * 0.3 # Stronger haze in distance - - if haze_intensity > 0: - haze_color = int(220 * haze_intensity) # Light blue-gray haze - haze_overlay[y, :] = (haze_color, haze_color, haze_color) - - # Blend haze with terrain - cv2.addWeighted(frame, 1.0, haze_overlay, 0.3, 0, frame) - -def add_cloud_shadows(frame, width, height, terrain_start_y): - """Add realistic cloud shadows on terrain""" - - shadow_overlay = np.zeros_like(frame) - - # Generate cloud shadow patterns - for shadow_id in range(3): - shadow_center_x = int(width * (0.2 + shadow_id * 0.3)) - shadow_center_y = int(terrain_start_y + (height - terrain_start_y) * 0.3) - - shadow_radius = 80 + shadow_id * 30 - - # Create soft circular shadows - for y in range(max(terrain_start_y, shadow_center_y - shadow_radius), - min(height, shadow_center_y + shadow_radius)): - for x in range(max(0, shadow_center_x - shadow_radius), - min(width, shadow_center_x + shadow_radius)): - - distance = math.sqrt((x - shadow_center_x)**2 + (y - shadow_center_y)**2) - - if distance < shadow_radius: - shadow_intensity = 1.0 - (distance / shadow_radius) - shadow_intensity *= 0.3 # Subtle shadows - - shadow_value = int(50 * shadow_intensity) - shadow_overlay[y, x] = (shadow_value, shadow_value, shadow_value) - - # Apply shadows - frame_dark = frame.astype(np.int32) - shadow_overlay.astype(np.int32) - frame[:] = np.clip(frame_dark, 0, 255).astype(np.uint8) - -def calculate_visible_bounds(camera_lat, camera_lon, bearing, view_distance, width, height): - """Calculate the bounds of the visible area""" - # This is a simplified calculation for the demo - # In a real implementation, you'd use proper 3D projection math - lat_offset = view_distance / 111000 # Rough conversion to degrees - lon_offset = view_distance / (111000 * math.cos(math.radians(camera_lat))) - - return { - 'min_lat': camera_lat - lat_offset, - 'max_lat': camera_lat + lat_offset, - 'min_lon': camera_lon - lon_offset, - 'max_lon': camera_lon + lon_offset - } - -def world_to_screen_3d(world_lat, world_lon, elevation, camera_lat, camera_lon, camera_height, - bearing, tilt_angle, screen_width, screen_height, view_distance): - """Transform world coordinates to 3D screen coordinates""" - # Calculate relative position - lat_diff = world_lat - camera_lat - lon_diff = world_lon - camera_lon - - # Convert to meters (approximate) - x_meters = lon_diff * 111000 * math.cos(math.radians(camera_lat)) - y_meters = lat_diff * 111000 - z_meters = elevation - camera_height - - # Rotate based on bearing - bearing_rad = math.radians(-bearing) # Negative for correct rotation - rotated_x = x_meters * math.cos(bearing_rad) - y_meters * math.sin(bearing_rad) - rotated_y = x_meters * math.sin(bearing_rad) + y_meters * math.cos(bearing_rad) - - # Check if point is in front of camera - if rotated_y < 0: - return 0, 0, False - - # Apply perspective projection - perspective_scale = view_distance / max(rotated_y, 1) - - # Convert to screen coordinates - screen_x = int(screen_width / 2 + rotated_x * perspective_scale * 0.5) - - # Apply tilt for vertical positioning - tilt_factor = math.sin(math.radians(tilt_angle)) - horizon_y = screen_height * 0.4 # Horizon line - screen_y = int(horizon_y + (z_meters * perspective_scale * tilt_factor * 0.1) + - (rotated_y * perspective_scale * 0.2)) - - # Check if point is visible on screen - is_visible = (0 <= screen_x < screen_width and 0 <= screen_y < screen_height) - - return screen_x, screen_y, is_visible - -def get_simulated_elevation(lat, lon, frame_index): - """Generate simulated elevation data""" - # Create varied terrain using sine waves - elevation = ( - 50 * math.sin(lat * 100) + - 30 * math.sin(lon * 80) + - 20 * math.sin((lat + lon) * 60) + - 10 * math.sin(frame_index * 0.1) # Dynamic element - ) - return max(0, elevation) # Ensure non-negative elevation - -def draw_3d_route(frame, route_points_3d, current_frame_index): - """Draw the route with 3D perspective effects""" - if len(route_points_3d) < 2: - return - - # Draw route segments - for i in range(1, len(route_points_3d)): - x1, y1, is_past1 = route_points_3d[i-1] - x2, y2, is_past2 = route_points_3d[i] - - # Color based on position relative to current point - if is_past1 and is_past2: - # Past route - blue to cyan gradient - color = (255, 200, 100) # Cyan-ish - thickness = 4 - else: - # Future route - red gradient - color = (100, 100, 255) # Red-ish - thickness = 3 - - # Draw line with shadow for depth - cv2.line(frame, (x1+2, y1+2), (x2+2, y2+2), (50, 50, 50), thickness+2) - cv2.line(frame, (x1, y1), (x2, y2), color, thickness) - - # Draw current position marker - if route_points_3d: - # Find the current position - look for the last "past" point, or use the first point - current_x, current_y = None, None - - # Try to find the last past point - for x, y, is_past in route_points_3d: - if is_past: - current_x, current_y = x, y - - # If no past points found (beginning of route), use the first point - if current_x is None and len(route_points_3d) > 0: - current_x, current_y, _ = route_points_3d[0] - - # Only draw marker if we have a valid position - if current_x is not None and current_y is not None: - # Pulsing current position marker - pulse_size = int(12 + 8 * math.sin(current_frame_index * 0.3)) - - # Shadow - cv2.circle(frame, (current_x+3, current_y+3), pulse_size, (0, 0, 0), -1) - # Outer ring - cv2.circle(frame, (current_x, current_y), pulse_size, (0, 255, 255), -1) - # Inner ring - cv2.circle(frame, (current_x, current_y), pulse_size-4, (255, 255, 255), 2) - # Center dot - cv2.circle(frame, (current_x, current_y), 3, (255, 0, 0), -1) - -def add_google_earth_ui(frame, current_pos, bearing, width, height, frame_index, total_frames): - """Add Google Earth-style UI elements""" - # Speed and info panel (top-left) - panel_width = 250 - panel_height = 120 - overlay = frame.copy() - - # Semi-transparent panel - cv2.rectangle(overlay, (10, 10), (panel_width, panel_height), (50, 50, 50), -1) - cv2.addWeighted(overlay, 0.7, frame, 0.3, 0, frame) - - # Panel border - cv2.rectangle(frame, (10, 10), (panel_width, panel_height), (200, 200, 200), 2) - - # Text information - speed = current_pos.get('speed', 0) - timestamp = current_pos.get('deviceTime', '') - - y_pos = 35 - cv2.putText(frame, f"Speed: {speed:.1f} km/h", (20, y_pos), - cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 1) - - y_pos += 25 - cv2.putText(frame, f"Bearing: {bearing:.0f}°", (20, y_pos), - cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 1) - - y_pos += 25 - if timestamp: - cv2.putText(frame, f"Time: {timestamp[:16]}", (20, y_pos), - cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1) - - y_pos += 25 - progress = (frame_index + 1) / total_frames * 100 - cv2.putText(frame, f"Progress: {progress:.1f}%", (20, y_pos), - cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1) - - # Compass (top-right) - compass_center_x = width - 80 - compass_center_y = 80 - compass_radius = 40 - - # Compass background - cv2.circle(frame, (compass_center_x, compass_center_y), compass_radius, (50, 50, 50), -1) - cv2.circle(frame, (compass_center_x, compass_center_y), compass_radius, (200, 200, 200), 2) - - # North indicator - north_x = compass_center_x + int((compass_radius - 10) * math.sin(math.radians(-bearing))) - north_y = compass_center_y - int((compass_radius - 10) * math.cos(math.radians(-bearing))) - cv2.arrowedLine(frame, (compass_center_x, compass_center_y), (north_x, north_y), (0, 0, 255), 3) - - # N label - cv2.putText(frame, "N", (compass_center_x - 8, compass_center_y - compass_radius - 10), - cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255, 255, 255), 2) - - # Progress bar (bottom) - progress_bar_width = width - 40 - progress_bar_height = 10 - progress_bar_x = 20 - progress_bar_y = height - 30 - - # Background - cv2.rectangle(frame, (progress_bar_x, progress_bar_y), - (progress_bar_x + progress_bar_width, progress_bar_y + progress_bar_height), - (100, 100, 100), -1) - - # Progress fill - progress_width = int(progress_bar_width * progress / 100) - cv2.rectangle(frame, (progress_bar_x, progress_bar_y), - (progress_bar_x + progress_width, progress_bar_y + progress_bar_height), - (0, 255, 100), -1) - - # Border - cv2.rectangle(frame, (progress_bar_x, progress_bar_y), - (progress_bar_x + progress_bar_width, progress_bar_y + progress_bar_height), - (200, 200, 200), 1) - -def add_atmospheric_perspective(frame, width, height): - """Add distance fog effect for realism""" - # Create fog gradient overlay - fog_overlay = np.zeros_like(frame) - - # Fog is stronger towards the horizon - horizon_y = int(height * 0.4) - for y in range(horizon_y, height): - fog_intensity = min(0.3, (y - horizon_y) / (height - horizon_y) * 0.3) - fog_color = int(200 * fog_intensity) - fog_overlay[y, :] = (fog_color, fog_color, fog_color) - - # Blend fog with frame - cv2.addWeighted(frame, 1.0, fog_overlay, 0.5, 0, frame) - -def get_elevation_data(lat, lon): - """ - Get elevation data for a coordinate (optional enhancement) - """ - try: - # Using a free elevation API - url = f"https://api.open-elevation.com/api/v1/lookup?locations={lat},{lon}" - response = requests.get(url, timeout=5) - if response.status_code == 200: - data = response.json() - return data['results'][0]['elevation'] - except Exception: - pass - return 0 # Default elevation - -def calculate_dynamic_camera_position(current_pos, all_positions, frame_index, min_lat, max_lat, min_lon, max_lon): - """ - Calculate dynamic camera position that follows the route smoothly - """ - camera_lat = current_pos['latitude'] - camera_lon = current_pos['longitude'] - - # Dynamic look-ahead based on speed and terrain - speed = current_pos.get('speed', 0) - base_look_ahead = max(3, min(10, int(speed / 10))) # Adjust based on speed - - # Look ahead in the route for camera direction - look_ahead_frames = min(base_look_ahead, len(all_positions) - frame_index - 1) - - if look_ahead_frames > 0: - target_pos = all_positions[frame_index + look_ahead_frames] - target_lat = target_pos['latitude'] - target_lon = target_pos['longitude'] - else: - # Use previous points to maintain direction - if frame_index > 0: - prev_pos = all_positions[frame_index - 1] - # Extrapolate forward - lat_diff = camera_lat - prev_pos['latitude'] - lon_diff = camera_lon - prev_pos['longitude'] - target_lat = camera_lat + lat_diff - target_lon = camera_lon + lon_diff - else: - target_lat = camera_lat - target_lon = camera_lon - - # Calculate smooth bearing with momentum - bearing = calculate_bearing(camera_lat, camera_lon, target_lat, target_lon) - - # Add slight camera offset for better viewing angle - offset_distance = 50 # meters - offset_angle = bearing + 45 # 45 degrees offset for better perspective - - # Calculate offset position - offset_lat = camera_lat + (offset_distance / 111000) * math.cos(math.radians(offset_angle)) - offset_lon = camera_lon + (offset_distance / (111000 * math.cos(math.radians(camera_lat)))) * math.sin(math.radians(offset_angle)) - - camera_pos = { - 'latitude': offset_lat, - 'longitude': offset_lon - } - - camera_target = { - 'latitude': target_lat, - 'longitude': target_lon - } - - return camera_pos, camera_target, bearing - -def calculate_distance(lat1, lon1, lat2, lon2): - """Calculate distance between two GPS points in meters""" - # Haversine formula - R = 6371000 # Earth's radius in meters - phi1 = math.radians(lat1) - phi2 = math.radians(lat2) - delta_phi = math.radians(lat2 - lat1) - delta_lambda = math.radians(lon2 - lon1) - - a = math.sin(delta_phi/2)**2 + math.cos(phi1) * math.cos(phi2) * math.sin(delta_lambda/2)**2 - c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a)) - - return R * c - -def world_to_camera_screen(world_lat, world_lon, elevation, camera_pos, camera_target, camera_height, - bearing, tilt_angle, fov, screen_width, screen_height): - """ - Advanced 3D transformation from world coordinates to screen coordinates - """ - # Convert GPS to local coordinates relative to camera - lat_diff = world_lat - camera_pos['latitude'] - lon_diff = world_lon - camera_pos['longitude'] - - # Convert to meters (more accurate conversion) - x_meters = lon_diff * 111320 * math.cos(math.radians(camera_pos['latitude'])) - y_meters = lat_diff * 110540 - z_meters = elevation - camera_height - - # Apply camera rotation based on bearing - bearing_rad = math.radians(-bearing) - tilt_rad = math.radians(tilt_angle) - - # Rotate around Z axis (bearing) - rotated_x = x_meters * math.cos(bearing_rad) - y_meters * math.sin(bearing_rad) - rotated_y = x_meters * math.sin(bearing_rad) + y_meters * math.cos(bearing_rad) - rotated_z = z_meters - - # Apply tilt rotation - final_y = rotated_y * math.cos(tilt_rad) - rotated_z * math.sin(tilt_rad) - final_z = rotated_y * math.sin(tilt_rad) + rotated_z * math.cos(tilt_rad) - final_x = rotated_x - - # Check if point is in front of camera - if final_y <= 0: - return 0, 0, float('inf'), False - - # Perspective projection - fov_rad = math.radians(fov) - f = (screen_width / 2) / math.tan(fov_rad / 2) # Focal length - - # Project to screen - screen_x = int(screen_width / 2 + (final_x * f) / final_y) - screen_y = int(screen_height / 2 - (final_z * f) / final_y) - - # Calculate depth for sorting - depth = final_y - - # Check if point is visible on screen - is_visible = (0 <= screen_x < screen_width and 0 <= screen_y < screen_height) - - return screen_x, screen_y, depth, is_visible - -def get_enhanced_elevation(lat, lon, point_index, frame_index): - """ - Generate more realistic elevation data with variation - """ - # Base elevation using multiple harmonics - base_elevation = ( - 100 * math.sin(lat * 50) + - 70 * math.sin(lon * 40) + - 50 * math.sin((lat + lon) * 30) + - 30 * math.sin(lat * 200) * math.cos(lon * 150) + - 20 * math.sin(point_index * 0.1) # Smooth variation along route - ) - - # Add temporal variation for dynamic feel - time_variation = 10 * math.sin(frame_index * 0.05 + point_index * 0.2) - - # Ensure realistic elevation range - elevation = max(0, min(500, base_elevation + time_variation)) - - return elevation - -def create_space_entry_frame(start_pos, center_lat, center_lon, min_lat, max_lat, min_lon, max_lon, - width, height, frame_index, total_entry_frames): - """ - Create ultra-realistic Google Earth-style space entry frame with high detail - """ - # Create ultra-high-resolution canvas - frame = np.zeros((height, width, 3), dtype=np.uint8) - - # Calculate entry progress (0 to 1) - entry_progress = frame_index / total_entry_frames - - # Ultra-realistic altitude progression - max_altitude = 100000 # 100km - true edge of space - min_altitude = 1500 # 1.5km - final aerial altitude - - # Advanced descent curve with multiple phases - if entry_progress < 0.3: - # Phase 1: Slow initial descent from space - altitude_progress = (entry_progress / 0.3) ** 3 - elif entry_progress < 0.7: - # Phase 2: Faster descent through atmosphere - phase_progress = (entry_progress - 0.3) / 0.4 - altitude_progress = 0.027 + phase_progress ** 1.5 * 0.7 - else: - # Phase 3: Deceleration to aerial view - phase_progress = (entry_progress - 0.7) / 0.3 - altitude_progress = 0.727 + phase_progress ** 2 * 0.273 - - current_altitude = max_altitude - (max_altitude - min_altitude) * altitude_progress - - # Create photorealistic Earth background - create_photorealistic_earth_view(frame, width, height, current_altitude, center_lat, center_lon, entry_progress) - - # Add ultra-detailed geographic features - add_ultra_detailed_geography(frame, width, height, center_lat, center_lon, current_altitude, entry_progress) - - # Add realistic weather systems - add_realistic_weather_systems(frame, width, height, current_altitude, entry_progress) - - # Add city lights for night side - if entry_progress > 0.5: - add_city_lights(frame, width, height, center_lat, center_lon, current_altitude) - - # Add ultra-realistic atmospheric layers - add_ultra_realistic_atmosphere(frame, width, height, current_altitude, entry_progress) - - # Add route visualization with high detail - if entry_progress > 0.6: - draw_ultra_detailed_route_preview(frame, min_lat, max_lat, min_lon, max_lon, - center_lat, center_lon, width, height, - current_altitude, entry_progress) - - # Add cinema-quality UI - add_cinema_quality_ui(frame, current_altitude, entry_progress, start_pos, width, height, frame_index) - - # Add satellite overlay effects - add_satellite_overlay_effects(frame, width, height, current_altitude, entry_progress) - - return frame - -def create_photorealistic_earth_view(frame, width, height, altitude, center_lat, center_lon, progress): - """Create photorealistic Earth view with ultra-high detail""" - - if altitude > 50000: # True space view - create_ultra_realistic_space_view(frame, width, height, altitude, center_lat, center_lon) - elif altitude > 25000: # High atmosphere - create_high_atmosphere_view(frame, width, height, altitude, center_lat, center_lon, progress) - elif altitude > 10000: # Mid atmosphere - create_mid_atmosphere_view(frame, width, height, altitude, center_lat, center_lon, progress) - else: # Low atmosphere - aerial view - create_ultra_detailed_aerial_view(frame, width, height, altitude, center_lat, center_lon, progress) - -def create_ultra_realistic_space_view(frame, width, height, altitude, center_lat, center_lon): - """Create ultra-realistic space view with detailed Earth""" - - # Deep space background with nebula effects - create_deep_space_background(frame, width, height, altitude) - - # Ultra-detailed Earth sphere - earth_radius = int(min(width, height) * 0.35) # Larger Earth for more detail - earth_center_x = width // 2 - earth_center_y = int(height * 0.65) # Position Earth in lower portion - - # Create high-resolution Earth surface - create_high_resolution_earth_surface(frame, earth_center_x, earth_center_y, earth_radius, - center_lat, center_lon, width, height) - - # Add realistic cloud patterns - add_realistic_cloud_patterns(frame, earth_center_x, earth_center_y, earth_radius, width, height) - - # Add Earth's atmospheric layers - add_detailed_atmospheric_layers(frame, earth_center_x, earth_center_y, earth_radius, width, height) - - # Add auroras at poles - add_auroras(frame, earth_center_x, earth_center_y, earth_radius, width, height) - -def create_deep_space_background(frame, width, height, altitude): - """Create realistic deep space background""" - - # Deep space gradient - for y in range(height): - space_intensity = y / height - r = int(2 + (8 - 2) * space_intensity) - g = int(2 + (12 - 2) * space_intensity) - b = int(8 + (20 - 8) * space_intensity) - frame[y, :] = (b, g, r) - - # Add detailed star field with varying brightness and colors - np.random.seed(42) # Consistent stars - num_stars = int(2000 + altitude / 100) # More stars at higher altitude - - for _ in range(num_stars): - x = np.random.randint(0, width) - y = np.random.randint(0, height) - - # Vary star properties - brightness = np.random.randint(80, 255) - star_type = np.random.choice(['white', 'blue', 'yellow', 'red'], p=[0.7, 0.1, 0.15, 0.05]) - size = np.random.choice([1, 2, 3], p=[0.85, 0.12, 0.03]) - - # Set star color - if star_type == 'blue': - color = (brightness, brightness//2, brightness//3) - elif star_type == 'yellow': - color = (brightness//3, brightness//2, brightness) - elif star_type == 'red': - color = (brightness//4, brightness//4, brightness) - else: # white - color = (brightness, brightness, brightness) - - # Draw star - if size == 1: - if 0 <= y < height and 0 <= x < width: - frame[y, x] = color - else: - cv2.circle(frame, (x, y), size, color, -1) - - # Add distant galaxies/nebulae - add_distant_galaxies(frame, width, height) - -def create_high_resolution_earth_surface(frame, center_x, center_y, radius, center_lat, center_lon, width, height): - """Create ultra-high resolution Earth surface with realistic geography""" - - # Create detailed Earth mask - y_coords, x_coords = np.ogrid[:height, :width] - earth_mask = (x_coords - center_x)**2 + (y_coords - center_y)**2 <= radius**2 - - # Generate ultra-detailed surface colors - earth_surface = create_ultra_detailed_earth_colors(width, height, center_x, center_y, radius, center_lat, center_lon) - - # Apply Earth surface to frame - frame[earth_mask] = earth_surface[earth_mask] - - # Add continental details - add_continental_details(frame, center_x, center_y, radius, center_lat, center_lon, width, height) - -def create_ultra_detailed_earth_colors(width, height, center_x, center_y, radius, center_lat, center_lon): - """Generate ultra-detailed Earth surface colors""" - - colors = np.zeros((height, width, 3), dtype=np.uint8) - - for y in range(height): - for x in range(width): - distance = math.sqrt((x - center_x)**2 + (y - center_y)**2) - - if distance <= radius: - # Convert pixel position to lat/lon on Earth - angle_x = (x - center_x) / radius * math.pi - angle_y = (y - center_y) / radius * math.pi - - # Simulate realistic geographic coordinates - sim_lat = center_lat + angle_y * 180 / math.pi * 0.5 - sim_lon = center_lon + angle_x * 180 / math.pi * 0.5 - - # Generate realistic terrain based on coordinates - terrain_color = generate_realistic_geographic_color(sim_lat, sim_lon, distance, radius) - colors[y, x] = terrain_color - - return colors - -def generate_realistic_geographic_color(lat, lon, distance_from_center, radius): - """Generate realistic color based on geographic coordinates""" - - # Multiple layers of geographic simulation - primary_terrain = ( - math.sin(lat * 0.1) * math.sin(lon * 0.08) + - math.sin(lat * 0.05) * math.sin(lon * 0.12) * 0.7 + - math.sin(lat * 0.02) * math.sin(lon * 0.03) * 0.3 - ) - - # Latitude-based climate zones - abs_lat = abs(lat) - if abs_lat > 60: # Polar regions - climate_factor = -0.5 - elif abs_lat > 30: # Temperate regions - climate_factor = 0.3 - else: # Tropical regions - climate_factor = 0.1 - - combined_terrain = primary_terrain + climate_factor - - # Altitude simulation - elevation = combined_terrain + math.sin(lat * 0.3) * math.sin(lon * 0.25) * 0.4 - - # Water vs land determination - if combined_terrain < -0.2: - # Ocean - varying depths - if elevation < -0.5: - return (139, 69, 19) # Deep ocean - dark blue - elif elevation < -0.2: - return (180, 130, 70) # Medium ocean - blue - else: - return (205, 170, 125) # Shallow water - light blue - - # Land terrain types - if elevation > 0.8: - # High mountains - snow and rock - return (248, 248, 255) # Snow white - elif elevation > 0.5: - # Mountains - rock and sparse vegetation - return (139, 137, 137) # Dark gray - elif elevation > 0.2: - # Hills - forests and mixed terrain - if abs_lat < 30: # Tropical - return (34, 139, 34) # Forest green - else: # Temperate - return (107, 142, 35) # Olive green - elif elevation > 0: - # Plains - agriculture and grassland - if abs_lat > 40: # Northern/Southern - return (255, 228, 181) # Wheat/farmland - else: - return (144, 238, 144) # Light green - else: - # Low areas - wetlands and river deltas - return (95, 158, 160) # Cadet blue - -def add_continental_details(frame, center_x, center_y, radius, center_lat, center_lon, width, height): - """Add detailed continental features""" - - # Major continental outlines - continents = [ - # North America - [(center_x - radius//3, center_y - radius//4), (center_x - radius//6, center_y - radius//8), - (center_x - radius//8, center_y + radius//6)], - # Europe - [(center_x - radius//8, center_y - radius//3), (center_x + radius//8, center_y - radius//4)], - # Asia - [(center_x + radius//8, center_y - radius//3), (center_x + radius//3, center_y - radius//6), - (center_x + radius//4, center_y + radius//8)], - ] - - for continent in continents: - if len(continent) > 2: - # Draw continental outline - for i in range(len(continent)): - start = continent[i] - end = continent[(i + 1) % len(continent)] - cv2.line(frame, start, end, (101, 67, 33), 2) # Brown outline - -def add_realistic_cloud_patterns(frame, center_x, center_y, radius, width, height): - """Add ultra-realistic cloud patterns""" - - # Create cloud layer - cloud_overlay = np.zeros((height, width, 3), dtype=np.uint8) - - # Generate realistic cloud systems - for cloud_system in range(5): - # Cloud center - cloud_center_x = center_x + int((np.random.random() - 0.5) * radius * 1.5) - cloud_center_y = center_y + int((np.random.random() - 0.5) * radius * 1.5) - - # Generate cloud pattern using multiple octaves - for y in range(max(0, cloud_center_y - 100), min(height, cloud_center_y + 100)): - for x in range(max(0, cloud_center_x - 100), min(width, cloud_center_x + 100)): - # Check if within Earth - earth_distance = math.sqrt((x - center_x)**2 + (y - center_y)**2) - if earth_distance > radius: - continue - - # Multi-scale cloud noise - cloud_noise = ( - math.sin((x - cloud_center_x) * 0.02) * math.sin((y - cloud_center_y) * 0.02) + - math.sin((x - cloud_center_x) * 0.05) * math.sin((y - cloud_center_y) * 0.05) * 0.5 + - math.sin((x - cloud_center_x) * 0.1) * math.sin((y - cloud_center_y) * 0.1) * 0.25 - ) - - # Distance falloff - distance_from_cloud_center = math.sqrt((x - cloud_center_x)**2 + (y - cloud_center_y)**2) - distance_factor = max(0, 1 - distance_from_cloud_center / 100) - - cloud_intensity = max(0, (cloud_noise + 0.5) * distance_factor) - - if cloud_intensity > 0.4: - cloud_alpha = min(0.7, cloud_intensity) - cloud_color = (255, 255, 255) - - # Blend with existing - current = frame[y, x].astype(np.float32) - cloud_overlay[y, x] = (current * (1 - cloud_alpha) + np.array(cloud_color) * cloud_alpha).astype(np.uint8) - - # Apply cloud overlay - mask = np.any(cloud_overlay > 0, axis=2) - frame[mask] = cloud_overlay[mask] - -def add_distant_galaxies(frame, width, height): - """Add distant galaxies and nebulae effects""" - - # Add a few distant galaxies - np.random.seed(123) # Different seed for galaxies - for _ in range(3): - galaxy_x = np.random.randint(width//4, 3*width//4) - galaxy_y = np.random.randint(height//4, height//2) - - # Create small galaxy spiral - for angle in np.linspace(0, 4*math.pi, 50): - radius = angle * 2 - if radius > 30: - break - - spiral_x = int(galaxy_x + radius * math.cos(angle)) - spiral_y = int(galaxy_y + radius * math.sin(angle) * 0.3) # Flattened - - if 0 <= spiral_x < width and 0 <= spiral_y < height: - brightness = int(30 + 20 * (1 - radius/30)) - frame[spiral_y, spiral_x] = (brightness//2, brightness//2, brightness) - -def add_detailed_atmospheric_layers(frame, center_x, center_y, radius, width, height): - """Add detailed atmospheric layers around Earth""" - - # Multiple atmospheric layers - for layer in range(3): - layer_radius = radius + 15 + layer * 8 - layer_intensity = 0.4 - layer * 0.1 - - for y in range(max(0, center_y - layer_radius - 10), min(height, center_y + layer_radius + 10)): - for x in range(max(0, center_x - layer_radius - 10), min(width, center_x + layer_radius + 10)): - distance = math.sqrt((x - center_x)**2 + (y - center_y)**2) - - if layer_radius - 3 < distance < layer_radius + 3: - glow_factor = 1.0 - abs(distance - layer_radius) / 3.0 - if glow_factor > 0: - glow_intensity = int(80 * glow_factor * layer_intensity) - current_color = frame[y, x].astype(np.int32) - - # Blue atmospheric glow - frame[y, x] = np.clip(current_color + [glow_intensity//4, glow_intensity//2, glow_intensity], 0, 255) - -def add_auroras(frame, center_x, center_y, radius, width, height): - """Add realistic auroras at Earth's poles""" - - # Northern aurora - aurora_center_y = center_y - int(radius * 0.8) - - for i in range(30): - # Wavy aurora pattern - wave_x = center_x + int(40 * math.sin(i * 0.3)) - wave_y = aurora_center_y + i * 2 - - if 0 <= wave_x < width and 0 <= wave_y < height: - # Aurora colors - green and blue - intensity = 100 + int(50 * math.sin(i * 0.2)) - aurora_color = (intensity//3, intensity, intensity//2) # Green-dominant - - # Draw aurora streak - cv2.circle(frame, (wave_x, wave_y), 3, aurora_color, -1) - - # Southern aurora (smaller) - aurora_center_y = center_y + int(radius * 0.8) - - for i in range(20): - wave_x = center_x + int(30 * math.sin(i * 0.4 + math.pi)) - wave_y = aurora_center_y - i * 2 - - if 0 <= wave_x < width and 0 <= wave_y < height: - intensity = 80 + int(40 * math.sin(i * 0.25)) - aurora_color = (intensity, intensity//2, intensity//3) # Blue-dominant - cv2.circle(frame, (wave_x, wave_y), 2, aurora_color, -1) - -def add_ultra_detailed_geography(frame, width, height, center_lat, center_lon, altitude, progress): - """Add ultra-detailed geographic features""" - - if altitude < 30000: # Detailed features visible below 30km - detail_level = 1.0 - (altitude / 30000) - - # Major mountain ranges - add_mountain_ranges(frame, width, height, center_lat, center_lon, detail_level) - - # Major river systems - add_major_rivers(frame, width, height, center_lat, center_lon, detail_level) - - # Desert regions - add_desert_regions(frame, width, height, center_lat, center_lon, detail_level) - - # Forest regions - add_forest_regions(frame, width, height, center_lat, center_lon, detail_level) - -def add_mountain_ranges(frame, width, height, center_lat, center_lon, detail_level): - """Add realistic mountain ranges""" - - if detail_level > 0.3: - # Simulate major mountain ranges - ranges = [ - # Himalayas - [(width//2 + 100, height//2 - 50), (width//2 + 200, height//2 - 30)], - # Rockies - [(width//2 - 150, height//2 - 100), (width//2 - 120, height//2 + 50)], - # Andes - [(width//2 - 200, height//2), (width//2 - 180, height//2 + 150)], - ] - - for mountain_range in ranges: - if len(mountain_range) >= 2: - for i in range(len(mountain_range) - 1): - start = mountain_range[i] - end = mountain_range[i + 1] - - # Draw mountain ridge - cv2.line(frame, start, end, (139, 137, 137), int(3 * detail_level)) - - # Add peaks along the ridge - distance = math.sqrt((end[0] - start[0])**2 + (end[1] - start[1])**2) - num_peaks = int(distance / 20) - - for peak in range(num_peaks): - t = peak / num_peaks - peak_x = int(start[0] + t * (end[0] - start[0])) - peak_y = int(start[1] + t * (end[1] - start[1])) - - # Random peak height - peak_height = int(5 + 10 * detail_level) - cv2.circle(frame, (peak_x, peak_y - peak_height), 2, (248, 248, 255), -1) - -def add_major_rivers(frame, width, height, center_lat, center_lon, detail_level): - """Add major river systems""" - - if detail_level > 0.4: - rivers = [ - # Amazon - [(width//2 - 100, height//2 + 80), (width//2 - 50, height//2 + 85), (width//2, height//2 + 90)], - # Nile - [(width//2 + 50, height//2 - 20), (width//2 + 55, height//2 + 100)], - # Mississippi - [(width//2 - 80, height//2 - 50), (width//2 - 75, height//2 + 80)], - ] - - for river in rivers: - # Draw meandering river - for i in range(len(river) - 1): - start = river[i] - end = river[i + 1] - cv2.line(frame, start, end, (100, 149, 237), max(1, int(2 * detail_level))) - -def add_city_lights(frame, width, height, center_lat, center_lon, altitude): - """Add realistic city lights for night side""" - - if altitude < 40000: # City lights visible below 40km - # Major city clusters - cities = [ - (width//2 - 80, height//2 + 40), # South America - (width//2 + 60, height//2 - 30), # Europe - (width//2 + 120, height//2 - 10), # Asia - (width//2 - 120, height//2 + 10), # North America - ] - - for city_x, city_y in cities: - # Create city light cluster - for _ in range(20): - light_x = city_x + np.random.randint(-15, 15) - light_y = city_y + np.random.randint(-15, 15) - - if 0 <= light_x < width and 0 <= light_y < height: - brightness = np.random.randint(150, 255) - cv2.circle(frame, (light_x, light_y), 1, (brightness//3, brightness//2, brightness), -1) - -def add_realistic_weather_systems(frame, width, height, altitude, progress): - """Add realistic weather systems like hurricanes and storm fronts""" - - if altitude < 25000: # Weather visible below 25km - # Hurricane spiral - hurricane_x = width//2 + 100 - hurricane_y = height//2 + 50 - - for spiral_turn in range(3): - for angle in np.linspace(0, 2*math.pi, 30): - radius = 20 + spiral_turn * 15 + angle * 5 - if radius > 60: - break - - spiral_x = int(hurricane_x + radius * math.cos(angle + spiral_turn * 2)) - spiral_y = int(hurricane_y + radius * math.sin(angle + spiral_turn * 2)) - - if 0 <= spiral_x < width and 0 <= spiral_y < height: - cloud_intensity = 200 - int(radius * 2) - if cloud_intensity > 100: - frame[spiral_y, spiral_x] = (cloud_intensity, cloud_intensity, cloud_intensity) - -def add_ultra_realistic_atmosphere(frame, width, height, altitude, progress): - """Add ultra-realistic atmospheric effects""" - - if altitude > 80000: - # Space effects - add_space_effects(frame, width, height, altitude) - elif altitude > 50000: - # Stratosphere - add_stratosphere_effects(frame, width, height, altitude, progress) - elif altitude > 20000: - # High atmosphere - add_high_atmosphere_effects(frame, width, height, altitude, progress) - else: - # Troposphere - add_troposphere_effects(frame, width, height, altitude, progress) - -def add_space_effects(frame, width, height, altitude): - """Add space-specific atmospheric effects""" - # Very thin atmospheric glow - space_glow_intensity = max(0, 1.0 - (altitude - 80000) / 20000) - - if space_glow_intensity > 0: - # Horizontal atmospheric band - glow_y = int(height * 0.7) - glow_height = int(20 * space_glow_intensity) - - for y in range(max(0, glow_y - glow_height), min(height, glow_y + glow_height)): - glow_factor = 1.0 - abs(y - glow_y) / glow_height - blue_glow = int(30 * glow_factor * space_glow_intensity) - - frame[y, :, 2] = np.minimum(255, frame[y, :, 2] + blue_glow) - -def add_cinema_quality_ui(frame, altitude, progress, start_pos, width, height, frame_index): - """Add cinema-quality UI with advanced graphics""" - - # Create semi-transparent panels with gradients - overlay = frame.copy() - - # Main telemetry panel (top-left) - larger and more detailed - panel_width = 380 - panel_height = 180 - - # Gradient panel background - for y in range(20, 20 + panel_height): - for x in range(20, 20 + panel_width): - if y < height and x < width: - gradient_factor = (y - 20) / panel_height - bg_intensity = int(20 + 25 * gradient_factor) - overlay[y, x] = (bg_intensity, bg_intensity, bg_intensity) - - cv2.addWeighted(overlay, 0.85, frame, 0.15, 0, frame) - - # Panel border with glow effect - cv2.rectangle(frame, (20, 20), (20 + panel_width, 20 + panel_height), (100, 150, 255), 3) - cv2.rectangle(frame, (18, 18), (22 + panel_width, 22 + panel_height), (50, 100, 200), 1) - - # Ultra-detailed telemetry - font_scale = 0.7 - font_thickness = 2 - - # Altitude with large display - altitude_text = f"{altitude/1000:.2f} km" - cv2.putText(frame, "ALTITUDE", (35, 50), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (150, 150, 150), 1) - cv2.putText(frame, altitude_text, (35, 85), cv2.FONT_HERSHEY_SIMPLEX, 1.4, (100, 255, 100), 3) - - # Velocity calculation - velocity = int((1 - progress) * 25000 + 800) # Simulated descent velocity - cv2.putText(frame, f"VELOCITY: {velocity} m/s", (35, 115), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 200, 100), 2) - - # Coordinates with higher precision - cv2.putText(frame, f"LAT: {start_pos['latitude']:.6f}", (35, 140), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (200, 200, 200), 1) - cv2.putText(frame, f"LON: {start_pos['longitude']:.6f}", (35, 160), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (200, 200, 200), 1) - - # Mission time - mission_time = frame_index / 60 # Assuming 60fps - cv2.putText(frame, f"T+ {mission_time:.1f}s", (35, 185), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (100, 200, 255), 2) - - # Atmospheric data panel (top-right) - atmo_panel_x = width - 320 - atmo_panel_width = 300 - atmo_panel_height = 140 - - # Atmospheric panel background - cv2.rectangle(overlay, (atmo_panel_x, 20), (atmo_panel_x + atmo_panel_width, 20 + atmo_panel_height), (30, 30, 30), -1) - cv2.addWeighted(overlay, 0.8, frame, 0.2, 0, frame) - cv2.rectangle(frame, (atmo_panel_x, 20), (atmo_panel_x + atmo_panel_width, 20 + atmo_panel_height), (255, 150, 100), 2) - - # Atmospheric data - if altitude > 50000: - atmo_layer = "THERMOSPHERE" - atmo_color = (255, 100, 100) - elif altitude > 20000: - atmo_layer = "STRATOSPHERE" - atmo_color = (255, 200, 100) - else: - atmo_layer = "TROPOSPHERE" - atmo_color = (100, 255, 100) - - cv2.putText(frame, "ATMOSPHERIC LAYER", (atmo_panel_x + 10, 45), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (150, 150, 150), 1) - cv2.putText(frame, atmo_layer, (atmo_panel_x + 10, 70), cv2.FONT_HERSHEY_SIMPLEX, 0.8, atmo_color, 2) - - # Temperature and pressure simulation - temp = int(250 - altitude * 0.002) # Rough temperature model - pressure = max(0.1, 1013 * math.exp(-altitude / 8000)) # Barometric formula - - cv2.putText(frame, f"TEMP: {temp}K", (atmo_panel_x + 10, 100), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (200, 200, 255), 1) - cv2.putText(frame, f"PRESSURE: {pressure:.1f} hPa", (atmo_panel_x + 10, 125), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (200, 200, 255), 1) - - # Enhanced status messages (center-bottom) - status_messages = [ - (0.0, 0.25, "INITIATING ORBITAL DESCENT", (100, 200, 255)), - (0.25, 0.5, "ENTERING EARTH'S ATMOSPHERE", (255, 200, 100)), - (0.5, 0.75, "ATMOSPHERIC ENTRY COMPLETE", (255, 150, 100)), - (0.75, 1.0, "APPROACHING TARGET COORDINATES", (100, 255, 100)) - ] - - current_message = None - for start_prog, end_prog, message, color in status_messages: - if start_prog <= progress <= end_prog: - current_message = (message, color) - break - - if current_message: - message, color = current_message - text_size = cv2.getTextSize(message, cv2.FONT_HERSHEY_SIMPLEX, 1.0, 3)[0] - text_x = (width - text_size[0]) // 2 - text_y = height - 100 - - # Message background with glow - cv2.rectangle(frame, (text_x - 20, text_y - 40), (text_x + text_size[0] + 20, text_y + 15), (0, 0, 0), -1) - cv2.rectangle(frame, (text_x - 22, text_y - 42), (text_x + text_size[0] + 22, text_y + 17), color, 2) - cv2.putText(frame, message, (text_x, text_y), cv2.FONT_HERSHEY_SIMPLEX, 1.0, color, 3) - - # Ultra-detailed progress bar (bottom) - progress_bar_width = width - 120 - progress_bar_height = 12 - progress_bar_x = 60 - progress_bar_y = height - 50 - - # Multi-segment progress bar - cv2.rectangle(frame, (progress_bar_x, progress_bar_y), - (progress_bar_x + progress_bar_width, progress_bar_y + progress_bar_height), - (40, 40, 40), -1) - - # Filled progress with color transitions - progress_width = int(progress_bar_width * progress) - for x in range(progress_width): - segment_progress = x / progress_width if progress_width > 0 else 0 - - # Color transition: red -> yellow -> green - if segment_progress < 0.5: - r = 255 - g = int(255 * segment_progress * 2) - b = 0 - else: - r = int(255 * (1 - (segment_progress - 0.5) * 2)) - g = 255 - b = 0 - - cv2.rectangle(frame, (progress_bar_x + x, progress_bar_y), - (progress_bar_x + x + 1, progress_bar_y + progress_bar_height), - (b, g, r), -1) - - # Progress bar border - cv2.rectangle(frame, (progress_bar_x, progress_bar_y), - (progress_bar_x + progress_bar_width, progress_bar_y + progress_bar_height), - (200, 200, 200), 2) - -def add_desert_regions(frame, width, height, center_lat, center_lon, detail_level): - """Add realistic desert regions based on geographic location""" - - # Desert patterns based on latitude zones - desert_regions = [ - # Sahara region (North Africa) - (15, 35, -20, 50), - # Arabian Peninsula - (15, 35, 35, 60), - # Gobi Desert (Asia) - (35, 50, 90, 120), - # Southwestern US - (25, 40, -120, -100), - # Australian Outback - (-35, -15, 110, 155), - # Kalahari (Southern Africa) - (-30, -15, 15, 30) - ] - - for min_lat, max_lat, min_lon, max_lon in desert_regions: - # Check if current view overlaps with desert region - if (min_lat <= center_lat <= max_lat and min_lon <= center_lon <= max_lon): - # Add desert coloring and texture - desert_overlay = np.zeros((height, width, 3), dtype=np.uint8) - - # Desert sand color variations - sand_colors = [ - (194, 178, 128), # Light sand - (210, 180, 140), # Tan - (238, 203, 173), # Peach puff - (222, 184, 135), # Burlywood - ] - - # Generate desert texture using noise - np.random.seed(42) # Consistent pattern - for y in range(0, height, 4): - for x in range(0, width, 4): - # Create sandy texture - noise_val = np.random.random() - if noise_val > 0.3: # 70% desert coverage in desert regions - color_idx = int(noise_val * len(sand_colors)) % len(sand_colors) - color = sand_colors[color_idx] - - # Add some variation - variation = int((np.random.random() - 0.5) * 40) - color = tuple(max(0, min(255, c + variation)) for c in color) - - # Draw small desert patch - cv2.rectangle(desert_overlay, (x, y), (x+4, y+4), color, -1) - - # Blend desert overlay with frame - mask = (desert_overlay[:,:,0] > 0) | (desert_overlay[:,:,1] > 0) | (desert_overlay[:,:,2] > 0) - frame[mask] = cv2.addWeighted(frame, 0.6, desert_overlay, 0.4, 0)[mask] - - -def add_forest_regions(frame, width, height, center_lat, center_lon, detail_level): - """Add realistic forest regions based on geographic location""" - - # Major forest regions - forest_regions = [ - # Amazon Rainforest - (-10, 5, -75, -45), - # Congo Basin - (-5, 5, 10, 30), - # Taiga (Northern forests) - (50, 70, -180, 180), - # European forests - (45, 65, -10, 40), - # Southeast Asian forests - (-10, 25, 90, 140), - # North American forests - (30, 60, -130, -60) - ] - - for min_lat, max_lat, min_lon, max_lon in forest_regions: - # Check if current view overlaps with forest region - if (min_lat <= center_lat <= max_lat and min_lon <= center_lon <= max_lon): - # Add forest coloring - forest_overlay = np.zeros((height, width, 3), dtype=np.uint8) - - # Forest green variations - forest_colors = [ - (34, 139, 34), # Forest green - (0, 100, 0), # Dark green - (107, 142, 35), # Olive drab - (85, 107, 47), # Dark olive green - (46, 125, 50), # Medium green - ] - - # Generate forest texture - np.random.seed(43) # Different seed from desert - for y in range(0, height, 3): - for x in range(0, width, 3): - noise_val = np.random.random() - if noise_val > 0.2: # 80% forest coverage in forest regions - color_idx = int(noise_val * len(forest_colors)) % len(forest_colors) - color = forest_colors[color_idx] - - # Add variation for realistic forest texture - variation = int((np.random.random() - 0.5) * 30) - color = tuple(max(0, min(255, c + variation)) for c in color) - - # Draw forest patch - cv2.rectangle(forest_overlay, (x, y), (x+3, y+3), color, -1) - - # Blend forest overlay - mask = (forest_overlay[:,:,0] > 0) | (forest_overlay[:,:,1] > 0) | (forest_overlay[:,:,2] > 0) - frame[mask] = cv2.addWeighted(frame, 0.5, forest_overlay, 0.5, 0)[mask] - - -def add_stratosphere_effects(frame, width, height, altitude, progress): - """Add realistic stratosphere visual effects""" - - if 10000 < altitude < 50000: # Stratosphere range - # Create stratosphere haze - haze_overlay = np.zeros((height, width, 3), dtype=np.uint8) - - # Stratosphere is characterized by stable layers - haze_intensity = int(80 * (1 - (altitude - 10000) / 40000)) - - # Add horizontal layered haze - for y in range(0, height, 8): - layer_intensity = haze_intensity + int(math.sin(y * 0.1) * 20) - layer_intensity = max(0, min(255, layer_intensity)) - - # Stratosphere has a bluish tint - haze_color = (layer_intensity, layer_intensity//2, layer_intensity//4) - cv2.rectangle(haze_overlay, (0, y), (width, y+4), haze_color, -1) - - # Apply haze effect - cv2.addWeighted(frame, 0.8, haze_overlay, 0.2, 0, frame) - - # Add occasional noctilucent clouds (high altitude clouds) - if altitude > 30000 and np.random.random() > 0.7: - cloud_x = np.random.randint(0, width//2) - cloud_y = np.random.randint(height//4, 3*height//4) - cv2.ellipse(frame, (cloud_x, cloud_y), (50, 20), 0, 0, 360, (200, 200, 255), -1) - - -def add_high_atmosphere_effects(frame, width, height, altitude, progress): - """Add realistic high atmosphere visual effects""" - - if 50000 < altitude < 100000: # High atmosphere/thermosphere - # Create aurora-like effects at very high altitude - aurora_overlay = np.zeros((height, width, 3), dtype=np.uint8) - - # Aurora intensity based on altitude and progress - aurora_intensity = int(100 * (altitude - 50000) / 50000) - - # Create wavy aurora patterns - for y in range(height): - wave_x = int(math.sin(y * 0.02 + progress * 6.28) * 100) - aurora_x = width//2 + wave_x - - if 0 <= aurora_x < width: - # Aurora colors (green, blue, purple) - if y < height//3: - color = (aurora_intensity//2, aurora_intensity, aurora_intensity//3) # Green - elif y < 2*height//3: - color = (aurora_intensity, aurora_intensity//2, aurora_intensity//3) # Blue - else: - color = (aurora_intensity//3, aurora_intensity//3, aurora_intensity) # Purple - - # Draw aurora strip - cv2.circle(aurora_overlay, (aurora_x, y), 15, color, -1) - - # Apply aurora effect with transparency - cv2.addWeighted(frame, 0.9, aurora_overlay, 0.1, 0, frame) - - # Add atmospheric glow around Earth's limb - earth_glow_overlay = np.zeros((height, width, 3), dtype=np.uint8) - center_x, center_y = width//2, height//2 - - for y in range(height): - for x in range(width): - distance_from_center = math.sqrt((x - center_x)**2 + (y - center_y)**2) - earth_radius = min(width, height) * 0.35 - - # Create glow effect around Earth's edge - if earth_radius * 0.9 <= distance_from_center <= earth_radius * 1.3: - glow_intensity = int(150 * (1 - abs(distance_from_center - earth_radius) / (earth_radius * 0.4))) - glow_intensity = max(0, min(255, glow_intensity)) - - # Atmospheric glow is blue-white - earth_glow_overlay[y, x] = (glow_intensity, glow_intensity//2, glow_intensity//4) - - # Apply Earth's atmospheric glow - cv2.addWeighted(frame, 0.85, earth_glow_overlay, 0.15, 0, frame) - - -def add_troposphere_effects(frame, width, height, altitude, progress): - """Add realistic troposphere visual effects""" - - if altitude < 15000: # Troposphere range - # Add weather patterns and clouds - cloud_overlay = np.zeros((height, width, 3), dtype=np.uint8) - - # Cloud density based on altitude - cloud_density = 1 - (altitude / 15000) # More clouds at lower altitude - - # Generate realistic cloud formations - np.random.seed(int(progress * 100)) # Change clouds over time - - for cloud_system in range(int(10 * cloud_density)): - cloud_x = np.random.randint(0, width) - cloud_y = np.random.randint(0, height) - cloud_size = np.random.randint(30, 100) - - # Cloud brightness varies with altitude - cloud_brightness = int(180 + (255 - 180) * (1 - cloud_density)) - cloud_color = (cloud_brightness, cloud_brightness, cloud_brightness) - - # Draw fluffy clouds - cv2.ellipse(cloud_overlay, (cloud_x, cloud_y), - (cloud_size, cloud_size//2), - np.random.randint(0, 360), 0, 360, cloud_color, -1) - - # Add smaller cloud puffs around main cloud - for puff in range(3): - puff_x = cloud_x + np.random.randint(-cloud_size, cloud_size) - puff_y = cloud_y + np.random.randint(-cloud_size//2, cloud_size//2) - puff_size = cloud_size // 3 - - if 0 <= puff_x < width and 0 <= puff_y < height: - cv2.circle(cloud_overlay, (puff_x, puff_y), puff_size, cloud_color, -1) - - # Apply cloud layer - cv2.addWeighted(frame, 0.7, cloud_overlay, 0.3, 0, frame) - - # Add atmospheric perspective (haze increasing with distance) - haze_overlay = np.zeros((height, width, 3), dtype=np.uint8) - for y in range(height): - # More haze towards horizon - haze_intensity = int(50 * (y / height) * cloud_density) - if haze_intensity > 0: - cv2.rectangle(haze_overlay, (0, y), (width, y+1), - (haze_intensity, haze_intensity, haze_intensity), -1) - - cv2.addWeighted(frame, 0.9, haze_overlay, 0.1, 0, frame) - -def create_transition_bridge_frame(frame1, frame2, transition_progress, width, height): - """Create smooth transition between two frames with cinematic effects""" - - # Create transition frame - transition_frame = np.zeros((height, width, 3), dtype=np.uint8) - - # Smooth blend between frames - alpha = transition_progress # 0 to 1 - beta = 1 - alpha - - # Basic blend - cv2.addWeighted(frame1, beta, frame2, alpha, 0, transition_frame) - - # Add cinematic transition effects - if transition_progress < 0.5: - # First half: fade out effect on frame1 - fade_progress = transition_progress * 2 # 0 to 1 - - # Add motion blur effect - blur_intensity = int(fade_progress * 15) - if blur_intensity > 0: - transition_frame = cv2.GaussianBlur(transition_frame, - (blur_intensity*2+1, blur_intensity*2+1), 0) - - # Add vignette effect for dramatic transition - vignette_overlay = np.zeros((height, width, 3), dtype=np.uint8) - center_x, center_y = width//2, height//2 - max_distance = math.sqrt(center_x**2 + center_y**2) - - for y in range(height): - for x in range(width): - distance = math.sqrt((x - center_x)**2 + (y - center_y)**2) - vignette_strength = (distance / max_distance) * fade_progress - vignette_darkness = int(255 * vignette_strength * 0.7) - vignette_overlay[y, x] = (vignette_darkness, vignette_darkness, vignette_darkness) - - # Apply vignette - transition_frame = cv2.subtract(transition_frame, vignette_overlay) - - else: - # Second half: fade in effect on frame2 - fade_progress = (transition_progress - 0.5) * 2 # 0 to 1 - - # Add zoom effect for dynamic transition - zoom_factor = 1 + fade_progress * 0.1 # Slight zoom - zoom_matrix = cv2.getRotationMatrix2D((width//2, height//2), 0, zoom_factor) - transition_frame = cv2.warpAffine(transition_frame, zoom_matrix, (width, height)) - - # Add brightness enhancement for dramatic effect - brightness_boost = int(fade_progress * 30) - if brightness_boost > 0: - bright_overlay = np.full((height, width, 3), brightness_boost, dtype=np.uint8) - transition_frame = cv2.add(transition_frame, bright_overlay) - - # Add film grain for cinematic quality - grain_overlay = np.random.randint(0, 20, (height, width, 3), dtype=np.uint8) - grain_overlay = cv2.GaussianBlur(grain_overlay, (3, 3), 0) - cv2.addWeighted(transition_frame, 0.95, grain_overlay, 0.05, 0, transition_frame) - - return transition_frame - -def generate_3d_video_animation_test_mode(project_name, resources_folder, label_widget, progress_widget, popup_widget, clock_module): - """ - Generate a 3D video animation in test mode (720p resolution for faster generation) - - This is a convenience wrapper for testing purposes that automatically enables test mode. - - Args: - project_name: Name of the project - resources_folder: Path to resources folder - label_widget: Kivy label for status updates - progress_widget: Kivy progress bar - popup_widget: Kivy popup to dismiss when done - clock_module: Kivy Clock module for scheduling - """ - return generate_3d_video_animation( - project_name, resources_folder, label_widget, progress_widget, - popup_widget, clock_module, test_mode=True - ) - -def generate_3d_video_animation_production_mode(project_name, resources_folder, label_widget, progress_widget, popup_widget, clock_module): - """ - Generate a 3D video animation in production mode (2K resolution for high quality) - - This is a convenience wrapper that explicitly enables production mode. - - Args: - project_name: Name of the project - resources_folder: Path to resources folder - label_widget: Kivy label for status updates - progress_widget: Kivy progress bar - popup_widget: Kivy popup to dismiss when done - clock_module: Kivy Clock module for scheduling - """ - return generate_3d_video_animation( - project_name, resources_folder, label_widget, progress_widget, - popup_widget, clock_module, test_mode=False - ) diff --git a/requirements.txt b/requirements.txt index 1df86f5..f72a8a1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,6 @@ selenium pillow geopy opencv-python -moviepy requests numpy matplotlib diff --git a/resources/credentials.enc b/resources/credentials.enc index 0f39d9e..37fb35a 100644 --- a/resources/credentials.enc +++ b/resources/credentials.enc @@ -1 +1 @@ -gAAAAABobmx0PnGbcR3Hxn93Z2r3z0dqZpHYGfWhJC7ko6QSMHLY_qoGsEZLrlLjjGrdjVOqSNVfwCP6_pAQ5QWbDRs6RoyZFPIA-vLFYpU9tUVC6pHCSSxvQimS_Thdj5WMIBlpTOWa \ No newline at end of file +gAAAAABob4-usKjps0vEVupB8FIJ3tKqoOeedzOUpt16NICbpi1ejKoSwqDvH7eIAPaZCOkfbPC6gjJGTo2yxt4BOPg1yzg_-Xanpl5iL1Y2mIRxWag-5cWhDNiqZo3bEZMqZ3M875O- \ No newline at end of file diff --git a/resources/projects/save1/frames/advanced_3d_frame_0000.png b/resources/projects/save1/frames/advanced_3d_frame_0000.png deleted file mode 100644 index 4df7ad8..0000000 Binary files a/resources/projects/save1/frames/advanced_3d_frame_0000.png and /dev/null differ diff --git a/resources/projects/save1/frames/advanced_3d_frame_0001.png b/resources/projects/save1/frames/advanced_3d_frame_0001.png deleted file mode 100644 index f1d48c4..0000000 Binary files a/resources/projects/save1/frames/advanced_3d_frame_0001.png and /dev/null differ diff --git a/resources/projects/save1/frames/advanced_3d_frame_0002.png b/resources/projects/save1/frames/advanced_3d_frame_0002.png deleted file mode 100644 index 8820a71..0000000 Binary files a/resources/projects/save1/frames/advanced_3d_frame_0002.png and /dev/null differ diff --git a/resources/projects/save1/frames/advanced_3d_frame_0003.png b/resources/projects/save1/frames/advanced_3d_frame_0003.png deleted file mode 100644 index 0e655bb..0000000 Binary files a/resources/projects/save1/frames/advanced_3d_frame_0003.png and /dev/null differ diff --git a/resources/projects/save1/frames/advanced_3d_frame_0004.png b/resources/projects/save1/frames/advanced_3d_frame_0004.png deleted file mode 100644 index 138a1b5..0000000 Binary files a/resources/projects/save1/frames/advanced_3d_frame_0004.png and /dev/null differ diff --git a/resources/projects/save1/pauses.json b/resources/projects/save1/pauses.json deleted file mode 100644 index 12db464..0000000 --- a/resources/projects/save1/pauses.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "start_time": "2025-07-08T04:51:13.000+00:00", - "end_time": "2025-07-08T13:20:50.000+00:00", - "duration_seconds": 30578, - "location": { - "latitude": 45.79908722222223, - "longitude": 24.085938333333335 - } - }, - { - "start_time": "2025-07-08T13:33:15.000+00:00", - "end_time": "2025-07-08T13:35:59.000+00:00", - "duration_seconds": 164, - "location": { - "latitude": 45.794045000000004, - "longitude": 24.13890055555556 - } - } -] \ No newline at end of file diff --git a/resources/projects/save1/positions.json b/resources/projects/save1/positions.json deleted file mode 100644 index 25b7462..0000000 --- a/resources/projects/save1/positions.json +++ /dev/null @@ -1,22096 +0,0 @@ -[ - { - "id": 35433, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1289990.8917609914, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:32:54.081+00:00", - "deviceTime": "2025-07-08T04:32:52.000+00:00", - "fixTime": "2025-07-08T04:32:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790325, - "longitude": 24.152991666666665, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35434, - "attributes": { - "type": 18, - "sat": 11, - "distance": 3.6970124363218244, - "totalDistance": 1289994.5887734278, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:33:04.080+00:00", - "deviceTime": "2025-07-08T04:33:02.000+00:00", - "fixTime": "2025-07-08T04:33:02.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79029388888889, - "longitude": 24.153008333333332, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35435, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1289994.5887734278, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:34:40.491+00:00", - "deviceTime": "2025-07-08T04:34:40.491+00:00", - "fixTime": "2025-07-08T04:33:02.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79029388888889, - "longitude": 24.153008333333332, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35436, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1289994.5887734278, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:37:57.310+00:00", - "deviceTime": "2025-07-08T04:37:57.310+00:00", - "fixTime": "2025-07-08T04:33:02.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79029388888889, - "longitude": 24.153008333333332, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35437, - "attributes": { - "type": 19, - "status": 6, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1289994.5887734278, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:40:17.311+00:00", - "deviceTime": "2025-07-08T04:40:17.311+00:00", - "fixTime": "2025-07-08T04:33:02.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79029388888889, - "longitude": 24.153008333333332, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35438, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0431231014160207, - "totalDistance": 1289994.631896529, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:40:43.111+00:00", - "deviceTime": "2025-07-08T04:40:42.000+00:00", - "fixTime": "2025-07-08T04:40:42.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79029388888889, - "longitude": 24.153007777777777, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35439, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1289994.631896529, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:40:59.070+00:00", - "deviceTime": "2025-07-08T04:40:51.000+00:00", - "fixTime": "2025-07-08T04:40:51.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79029388888889, - "longitude": 24.153007777777777, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35440, - "attributes": { - "type": 18, - "sat": 11, - "distance": 76.35564019178024, - "totalDistance": 1290070.987536721, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:41:00.875+00:00", - "deviceTime": "2025-07-08T04:40:59.000+00:00", - "fixTime": "2025-07-08T04:40:59.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790059444444445, - "longitude": 24.152083333333334, - "altitude": 0.0, - "speed": 17.818581000000002, - "course": 250.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35441, - "attributes": { - "type": 18, - "sat": 11, - "distance": 91.33083234596437, - "totalDistance": 1290162.3183690668, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:41:10.990+00:00", - "deviceTime": "2025-07-08T04:41:09.000+00:00", - "fixTime": "2025-07-08T04:41:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.78982166666666, - "longitude": 24.15095722222222, - "altitude": 0.0, - "speed": 21.058323, - "course": 251.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35442, - "attributes": { - "type": 18, - "sat": 11, - "distance": 63.44523675339203, - "totalDistance": 1290225.7636058202, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:41:20.915+00:00", - "deviceTime": "2025-07-08T04:41:19.000+00:00", - "fixTime": "2025-07-08T04:41:19.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.78966833333333, - "longitude": 24.15017, - "altitude": 0.0, - "speed": 0.0, - "course": 262.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35443, - "attributes": { - "type": 18, - "sat": 11, - "distance": 16.031197777600234, - "totalDistance": 1290241.794803598, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:41:30.914+00:00", - "deviceTime": "2025-07-08T04:41:29.000+00:00", - "fixTime": "2025-07-08T04:41:29.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.78973388888889, - "longitude": 24.14998611111111, - "altitude": 0.0, - "speed": 12.419011000000001, - "course": 309.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35444, - "attributes": { - "type": 18, - "sat": 11, - "distance": 104.62039306714091, - "totalDistance": 1290346.415196665, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:41:40.910+00:00", - "deviceTime": "2025-07-08T04:41:39.000+00:00", - "fixTime": "2025-07-08T04:41:39.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79040666666666, - "longitude": 24.149045, - "altitude": 0.0, - "speed": 15.118796, - "course": 318.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35445, - "attributes": { - "type": 18, - "sat": 11, - "distance": 37.412696172448165, - "totalDistance": 1290383.8278928376, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:41:46.914+00:00", - "deviceTime": "2025-07-08T04:41:45.000+00:00", - "fixTime": "2025-07-08T04:41:45.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79068611111111, - "longitude": 24.148777222222222, - "altitude": 0.0, - "speed": 10.259183, - "course": 342.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35446, - "attributes": { - "type": 18, - "sat": 11, - "distance": 39.64547577266147, - "totalDistance": 1290423.4733686103, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:41:52.910+00:00", - "deviceTime": "2025-07-08T04:41:51.000+00:00", - "fixTime": "2025-07-08T04:41:51.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79102666666667, - "longitude": 24.14862777777778, - "altitude": 0.0, - "speed": 12.419011000000001, - "course": 301.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35447, - "attributes": { - "type": 18, - "sat": 11, - "distance": 37.193152215817484, - "totalDistance": 1290460.666520826, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:41:56.862+00:00", - "deviceTime": "2025-07-08T04:41:55.000+00:00", - "fixTime": "2025-07-08T04:41:55.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79125444444444, - "longitude": 24.148277222222223, - "altitude": 0.0, - "speed": 23.758108, - "course": 323.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35448, - "attributes": { - "type": 18, - "sat": 11, - "distance": 88.90063761830727, - "totalDistance": 1290549.5671584443, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:42:03.910+00:00", - "deviceTime": "2025-07-08T04:42:02.000+00:00", - "fixTime": "2025-07-08T04:42:02.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79181944444444, - "longitude": 24.147467777777777, - "altitude": 0.0, - "speed": 23.218151000000002, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35449, - "attributes": { - "type": 18, - "sat": 11, - "distance": 112.2986012383801, - "totalDistance": 1290661.8657596826, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:42:13.910+00:00", - "deviceTime": "2025-07-08T04:42:12.000+00:00", - "fixTime": "2025-07-08T04:42:12.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.792430555555555, - "longitude": 24.146316666666667, - "altitude": 0.0, - "speed": 18.898495, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35450, - "attributes": { - "type": 18, - "sat": 11, - "distance": 37.761320304037405, - "totalDistance": 1290699.6270799867, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:42:23.910+00:00", - "deviceTime": "2025-07-08T04:42:22.000+00:00", - "fixTime": "2025-07-08T04:42:22.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79264333333334, - "longitude": 24.145937777777778, - "altitude": 0.0, - "speed": 0.0, - "course": 301.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35451, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1290699.6270799867, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:42:36.710+00:00", - "deviceTime": "2025-07-08T04:42:35.000+00:00", - "fixTime": "2025-07-08T04:42:35.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79264333333334, - "longitude": 24.145937777777778, - "altitude": 0.0, - "speed": 0.0, - "course": 301.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35452, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1290699.6270799867, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:42:46.711+00:00", - "deviceTime": "2025-07-08T04:42:45.000+00:00", - "fixTime": "2025-07-08T04:42:45.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79264333333334, - "longitude": 24.145937777777778, - "altitude": 0.0, - "speed": 0.0, - "course": 301.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35453, - "attributes": { - "type": 18, - "sat": 11, - "distance": 82.8895479931106, - "totalDistance": 1290782.51662798, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:42:50.661+00:00", - "deviceTime": "2025-07-08T04:42:49.000+00:00", - "fixTime": "2025-07-08T04:42:49.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79313833333333, - "longitude": 24.145139999999998, - "altitude": 0.0, - "speed": 16.738667, - "course": 312.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35454, - "attributes": { - "type": 18, - "sat": 11, - "distance": 55.662188900183466, - "totalDistance": 1290838.17881688, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:42:56.712+00:00", - "deviceTime": "2025-07-08T04:42:55.000+00:00", - "fixTime": "2025-07-08T04:42:55.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79351833333334, - "longitude": 24.14467388888889, - "altitude": 0.0, - "speed": 19.978409, - "course": 330.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35455, - "attributes": { - "type": 18, - "sat": 11, - "distance": 59.398451200871094, - "totalDistance": 1290897.577268081, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:43:02.710+00:00", - "deviceTime": "2025-07-08T04:43:01.000+00:00", - "fixTime": "2025-07-08T04:43:01.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79394388888889, - "longitude": 24.144212222222222, - "altitude": 0.0, - "speed": 21.598280000000003, - "course": 295.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35456, - "attributes": { - "type": 18, - "sat": 11, - "distance": 22.950804968862748, - "totalDistance": 1290920.5280730498, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:43:05.122+00:00", - "deviceTime": "2025-07-08T04:43:03.000+00:00", - "fixTime": "2025-07-08T04:43:03.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793972777777775, - "longitude": 24.143919444444446, - "altitude": 0.0, - "speed": 23.218151000000002, - "course": 259.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35457, - "attributes": { - "type": 18, - "sat": 11, - "distance": 24.18590016829158, - "totalDistance": 1290944.713973218, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:43:07.072+00:00", - "deviceTime": "2025-07-08T04:43:05.000+00:00", - "fixTime": "2025-07-08T04:43:05.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79390166666667, - "longitude": 24.143625, - "altitude": 0.0, - "speed": 22.678194, - "course": 243.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35458, - "attributes": { - "type": 18, - "sat": 11, - "distance": 118.89472755852178, - "totalDistance": 1291063.6087007767, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:43:17.112+00:00", - "deviceTime": "2025-07-08T04:43:15.000+00:00", - "fixTime": "2025-07-08T04:43:15.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79338277777778, - "longitude": 24.142286111111112, - "altitude": 0.0, - "speed": 18.898495, - "course": 242.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35459, - "attributes": { - "type": 18, - "sat": 11, - "distance": 32.50046983783038, - "totalDistance": 1291096.1091706145, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:43:21.143+00:00", - "deviceTime": "2025-07-08T04:43:19.000+00:00", - "fixTime": "2025-07-08T04:43:19.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793280555555555, - "longitude": 24.141893888888887, - "altitude": 0.0, - "speed": 12.958968, - "course": 272.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35460, - "attributes": { - "type": 18, - "sat": 11, - "distance": 27.315915665927154, - "totalDistance": 1291123.4250862803, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:43:25.066+00:00", - "deviceTime": "2025-07-08T04:43:23.000+00:00", - "fixTime": "2025-07-08T04:43:23.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793258888888886, - "longitude": 24.141543333333335, - "altitude": 0.0, - "speed": 14.038882000000001, - "course": 228.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35461, - "attributes": { - "type": 18, - "sat": 11, - "distance": 15.498682654680575, - "totalDistance": 1291138.923768935, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:43:27.074+00:00", - "deviceTime": "2025-07-08T04:43:25.000+00:00", - "fixTime": "2025-07-08T04:43:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793135, - "longitude": 24.14145222222222, - "altitude": 0.0, - "speed": 14.038882000000001, - "course": 197.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35462, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1291138.923768935, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:43:32.110+00:00", - "deviceTime": "2025-07-08T04:43:32.110+00:00", - "fixTime": "2025-07-08T04:43:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793135, - "longitude": 24.14145222222222, - "altitude": 0.0, - "speed": 14.038882000000001, - "course": 197.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35463, - "attributes": { - "type": 18, - "sat": 11, - "distance": 78.20853462945503, - "totalDistance": 1291217.1323035646, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:43:39.471+00:00", - "deviceTime": "2025-07-08T04:43:38.000+00:00", - "fixTime": "2025-07-08T04:43:38.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79272944444444, - "longitude": 24.140629444444443, - "altitude": 0.0, - "speed": 28.077764000000002, - "course": 232.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35464, - "attributes": { - "type": 18, - "sat": 11, - "distance": 147.79198139382078, - "totalDistance": 1291364.9242849585, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:43:49.512+00:00", - "deviceTime": "2025-07-08T04:43:48.000+00:00", - "fixTime": "2025-07-08T04:43:48.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79199666666666, - "longitude": 24.139041666666667, - "altitude": 0.0, - "speed": 28.617721, - "course": 255.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35465, - "attributes": { - "type": 18, - "sat": 11, - "distance": 63.209959675753964, - "totalDistance": 1291428.1342446343, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:43:53.476+00:00", - "deviceTime": "2025-07-08T04:43:52.000+00:00", - "fixTime": "2025-07-08T04:43:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79195555555556, - "longitude": 24.138229444444445, - "altitude": 0.0, - "speed": 31.317506, - "course": 278.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35466, - "attributes": { - "type": 18, - "sat": 11, - "distance": 171.28343638042023, - "totalDistance": 1291599.4176810146, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:44:03.511+00:00", - "deviceTime": "2025-07-08T04:44:02.000+00:00", - "fixTime": "2025-07-08T04:44:02.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79238666666667, - "longitude": 24.136111111111113, - "altitude": 0.0, - "speed": 28.077764000000002, - "course": 284.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35467, - "attributes": { - "type": 18, - "sat": 11, - "distance": 107.84689330710273, - "totalDistance": 1291707.2645743217, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:44:16.314+00:00", - "deviceTime": "2025-07-08T04:44:15.000+00:00", - "fixTime": "2025-07-08T04:44:15.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79266444444445, - "longitude": 24.13478, - "altitude": 0.0, - "speed": 0.0, - "course": 277.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35468, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1291707.2645743217, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:44:26.311+00:00", - "deviceTime": "2025-07-08T04:44:25.000+00:00", - "fixTime": "2025-07-08T04:44:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79266444444445, - "longitude": 24.13478, - "altitude": 0.0, - "speed": 0.0, - "course": 277.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35469, - "attributes": { - "type": 18, - "sat": 11, - "distance": 78.08479411048079, - "totalDistance": 1291785.349368432, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:44:32.310+00:00", - "deviceTime": "2025-07-08T04:44:31.000+00:00", - "fixTime": "2025-07-08T04:44:31.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79287166666666, - "longitude": 24.13381888888889, - "altitude": 0.0, - "speed": 11.339097, - "course": 288.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35470, - "attributes": { - "type": 18, - "sat": 11, - "distance": 72.81526730457433, - "totalDistance": 1291858.1646357367, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:44:48.112+00:00", - "deviceTime": "2025-07-08T04:44:46.000+00:00", - "fixTime": "2025-07-08T04:44:46.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79314, - "longitude": 24.132963333333333, - "altitude": 0.0, - "speed": 14.578839, - "course": 323.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35471, - "attributes": { - "type": 18, - "sat": 11, - "distance": 15.242996452971719, - "totalDistance": 1291873.4076321898, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:44:50.066+00:00", - "deviceTime": "2025-07-08T04:44:48.000+00:00", - "fixTime": "2025-07-08T04:44:48.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79322555555555, - "longitude": 24.132810000000003, - "altitude": 0.0, - "speed": 14.578839, - "course": 293.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35472, - "attributes": { - "type": 18, - "sat": 11, - "distance": 16.595778393462336, - "totalDistance": 1291890.0034105834, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:44:52.066+00:00", - "deviceTime": "2025-07-08T04:44:50.000+00:00", - "fixTime": "2025-07-08T04:44:50.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793215555555555, - "longitude": 24.132596666666668, - "altitude": 0.0, - "speed": 18.358538, - "course": 246.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35473, - "attributes": { - "type": 18, - "sat": 11, - "distance": 20.38016950217277, - "totalDistance": 1291910.3835800856, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:44:54.073+00:00", - "deviceTime": "2025-07-08T04:44:52.000+00:00", - "fixTime": "2025-07-08T04:44:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793185, - "longitude": 24.132337777777778, - "altitude": 0.0, - "speed": 22.138237, - "course": 279.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35474, - "attributes": { - "type": 18, - "sat": 11, - "distance": 91.59462689339126, - "totalDistance": 1292001.9782069789, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:45:02.111+00:00", - "deviceTime": "2025-07-08T04:45:00.000+00:00", - "fixTime": "2025-07-08T04:45:00.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79345222222222, - "longitude": 24.13122166666667, - "altitude": 0.0, - "speed": 14.038882000000001, - "course": 314.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35475, - "attributes": { - "type": 18, - "sat": 11, - "distance": 13.464356759246849, - "totalDistance": 1292015.4425637382, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:45:04.064+00:00", - "deviceTime": "2025-07-08T04:45:02.000+00:00", - "fixTime": "2025-07-08T04:45:02.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793503333333334, - "longitude": 24.131064444444444, - "altitude": 0.0, - "speed": 10.799140000000001, - "course": 272.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35476, - "attributes": { - "type": 18, - "sat": 11, - "distance": 10.12819383115541, - "totalDistance": 1292025.5707575693, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:45:06.064+00:00", - "deviceTime": "2025-07-08T04:45:04.000+00:00", - "fixTime": "2025-07-08T04:45:04.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79347722222222, - "longitude": 24.130939444444444, - "altitude": 0.0, - "speed": 8.099355000000001, - "course": 226.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35477, - "attributes": { - "type": 18, - "sat": 11, - "distance": 18.776559269592983, - "totalDistance": 1292044.3473168388, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:45:10.071+00:00", - "deviceTime": "2025-07-08T04:45:08.000+00:00", - "fixTime": "2025-07-08T04:45:08.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793395555555556, - "longitude": 24.13072777777778, - "altitude": 0.0, - "speed": 5.939527, - "course": 255.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35478, - "attributes": { - "type": 18, - "sat": 11, - "distance": 140.10532301496153, - "totalDistance": 1292184.4526398538, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:45:22.912+00:00", - "deviceTime": "2025-07-08T04:45:21.000+00:00", - "fixTime": "2025-07-08T04:45:21.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793102777777776, - "longitude": 24.12897222222222, - "altitude": 0.0, - "speed": 32.397420000000004, - "course": 256.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35479, - "attributes": { - "type": 18, - "sat": 11, - "distance": 78.17613189995988, - "totalDistance": 1292262.6287717537, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:45:28.911+00:00", - "deviceTime": "2025-07-08T04:45:27.000+00:00", - "fixTime": "2025-07-08T04:45:27.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793012777777776, - "longitude": 24.127973333333333, - "altitude": 0.0, - "speed": 19.978409, - "course": 277.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35480, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1292262.6287717537, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:45:38.921+00:00", - "deviceTime": "2025-07-08T04:45:37.000+00:00", - "fixTime": "2025-07-08T04:45:37.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793012777777776, - "longitude": 24.127973333333333, - "altitude": 0.0, - "speed": 0.0, - "course": 277.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35481, - "attributes": { - "type": 18, - "sat": 11, - "distance": 82.19956540963459, - "totalDistance": 1292344.8283371634, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:45:40.877+00:00", - "deviceTime": "2025-07-08T04:45:39.000+00:00", - "fixTime": "2025-07-08T04:45:39.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79313944444444, - "longitude": 24.12693, - "altitude": 0.0, - "speed": 10.799140000000001, - "course": 279.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35482, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1292344.8283371634, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:45:53.832+00:00", - "deviceTime": "2025-07-08T04:45:52.000+00:00", - "fixTime": "2025-07-08T04:45:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79313944444444, - "longitude": 24.12693, - "altitude": 0.0, - "speed": 0.0, - "course": 279.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35483, - "attributes": { - "type": 18, - "sat": 11, - "distance": 92.72391329520477, - "totalDistance": 1292437.5522504586, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:45:55.667+00:00", - "deviceTime": "2025-07-08T04:45:54.000+00:00", - "fixTime": "2025-07-08T04:45:54.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793283333333335, - "longitude": 24.125753333333332, - "altitude": 0.0, - "speed": 12.958968, - "course": 281.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35484, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1292437.5522504586, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:46:05.719+00:00", - "deviceTime": "2025-07-08T04:46:04.000+00:00", - "fixTime": "2025-07-08T04:46:04.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793283333333335, - "longitude": 24.125753333333332, - "altitude": 0.0, - "speed": 0.0, - "course": 281.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35485, - "attributes": { - "type": 18, - "sat": 11, - "distance": 91.29228021112908, - "totalDistance": 1292528.8445306697, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:46:09.676+00:00", - "deviceTime": "2025-07-08T04:46:08.000+00:00", - "fixTime": "2025-07-08T04:46:08.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793393333333334, - "longitude": 24.124587777777776, - "altitude": 0.0, - "speed": 11.339097, - "course": 273.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35486, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1292528.8445306697, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:46:19.664+00:00", - "deviceTime": "2025-07-08T04:46:18.000+00:00", - "fixTime": "2025-07-08T04:46:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793393333333334, - "longitude": 24.124587777777776, - "altitude": 0.0, - "speed": 0.0, - "course": 273.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35487, - "attributes": { - "type": 18, - "sat": 11, - "distance": 99.66076569777333, - "totalDistance": 1292628.5052963675, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:46:26.512+00:00", - "deviceTime": "2025-07-08T04:46:25.000+00:00", - "fixTime": "2025-07-08T04:46:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79353277777778, - "longitude": 24.123319444444444, - "altitude": 0.0, - "speed": 15.658753, - "course": 279.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35488, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1292628.5052963675, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:46:36.512+00:00", - "deviceTime": "2025-07-08T04:46:35.000+00:00", - "fixTime": "2025-07-08T04:46:35.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79353277777778, - "longitude": 24.123319444444444, - "altitude": 0.0, - "speed": 0.0, - "course": 279.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35489, - "attributes": { - "type": 18, - "sat": 11, - "distance": 84.29451118277598, - "totalDistance": 1292712.7998075502, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:46:42.513+00:00", - "deviceTime": "2025-07-08T04:46:41.000+00:00", - "fixTime": "2025-07-08T04:46:41.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79362277777778, - "longitude": 24.12224111111111, - "altitude": 0.0, - "speed": 17.278624, - "course": 271.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35490, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1292712.7998075502, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:46:51.511+00:00", - "deviceTime": "2025-07-08T04:46:51.511+00:00", - "fixTime": "2025-07-08T04:46:41.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79362277777778, - "longitude": 24.12224111111111, - "altitude": 0.0, - "speed": 17.278624, - "course": 271.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35491, - "attributes": { - "type": 18, - "sat": 11, - "distance": 45.10018358035906, - "totalDistance": 1292757.8999911305, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:46:52.466+00:00", - "deviceTime": "2025-07-08T04:46:51.000+00:00", - "fixTime": "2025-07-08T04:46:51.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79365777777778, - "longitude": 24.121662222222223, - "altitude": 0.0, - "speed": 0.0, - "course": 274.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35492, - "attributes": { - "type": 18, - "sat": 11, - "distance": 32.12530779417945, - "totalDistance": 1292790.0252989247, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:46:59.311+00:00", - "deviceTime": "2025-07-08T04:46:58.000+00:00", - "fixTime": "2025-07-08T04:46:58.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79365611111111, - "longitude": 24.12124833333333, - "altitude": 0.0, - "speed": 11.339097, - "course": 242.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35493, - "attributes": { - "type": 18, - "sat": 11, - "distance": 30.464786515600938, - "totalDistance": 1292820.4900854402, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:47:09.311+00:00", - "deviceTime": "2025-07-08T04:47:08.000+00:00", - "fixTime": "2025-07-08T04:47:08.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793593888888886, - "longitude": 24.12086611111111, - "altitude": 0.0, - "speed": 5.399570000000001, - "course": 263.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35494, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1292820.4900854402, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:47:19.312+00:00", - "deviceTime": "2025-07-08T04:47:18.000+00:00", - "fixTime": "2025-07-08T04:47:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793593888888886, - "longitude": 24.12086611111111, - "altitude": 0.0, - "speed": 0.0, - "course": 263.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35495, - "attributes": { - "type": 18, - "sat": 11, - "distance": 102.61500001780156, - "totalDistance": 1292923.105085458, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:47:21.267+00:00", - "deviceTime": "2025-07-08T04:47:20.000+00:00", - "fixTime": "2025-07-08T04:47:20.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79353, - "longitude": 24.11954722222222, - "altitude": 0.0, - "speed": 25.917936, - "course": 266.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35496, - "attributes": { - "type": 18, - "sat": 11, - "distance": 202.16953797479576, - "totalDistance": 1293125.2746234327, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:47:34.111+00:00", - "deviceTime": "2025-07-08T04:47:32.000+00:00", - "fixTime": "2025-07-08T04:47:32.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79347111111111, - "longitude": 24.116943888888887, - "altitude": 0.0, - "speed": 31.317506, - "course": 265.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35497, - "attributes": { - "type": 18, - "sat": 11, - "distance": 171.53424830812514, - "totalDistance": 1293296.8088717407, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:47:44.071+00:00", - "deviceTime": "2025-07-08T04:47:42.000+00:00", - "fixTime": "2025-07-08T04:47:42.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79322277777778, - "longitude": 24.114762777777777, - "altitude": 0.0, - "speed": 30.237592, - "course": 259.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35498, - "attributes": { - "type": 18, - "sat": 11, - "distance": 182.01185201060994, - "totalDistance": 1293478.8207237513, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:47:54.110+00:00", - "deviceTime": "2025-07-08T04:47:52.000+00:00", - "fixTime": "2025-07-08T04:47:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79293055555556, - "longitude": 24.112455555555556, - "altitude": 0.0, - "speed": 43.196560000000005, - "course": 264.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35499, - "attributes": { - "type": 18, - "sat": 11, - "distance": 177.21536564753936, - "totalDistance": 1293656.036089399, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:48:06.912+00:00", - "deviceTime": "2025-07-08T04:48:05.000+00:00", - "fixTime": "2025-07-08T04:48:05.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.792671666666664, - "longitude": 24.11020277777778, - "altitude": 0.0, - "speed": 11.879054, - "course": 278.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35500, - "attributes": { - "type": 18, - "sat": 11, - "distance": 11.922627498933442, - "totalDistance": 1293667.9587168978, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:48:08.867+00:00", - "deviceTime": "2025-07-08T04:48:07.000+00:00", - "fixTime": "2025-07-08T04:48:07.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.792702222222225, - "longitude": 24.110055555555554, - "altitude": 0.0, - "speed": 11.339097, - "course": 298.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35501, - "attributes": { - "type": 18, - "sat": 11, - "distance": 31.14549736537794, - "totalDistance": 1293699.1042142631, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:48:12.874+00:00", - "deviceTime": "2025-07-08T04:48:11.000+00:00", - "fixTime": "2025-07-08T04:48:11.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.792901111111114, - "longitude": 24.109773333333333, - "altitude": 0.0, - "speed": 24.298065, - "course": 341.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35502, - "attributes": { - "type": 18, - "sat": 12, - "distance": 148.37634042240995, - "totalDistance": 1293847.4805546855, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:48:22.910+00:00", - "deviceTime": "2025-07-08T04:48:21.000+00:00", - "fixTime": "2025-07-08T04:48:21.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79420833333333, - "longitude": 24.1094, - "altitude": 0.0, - "speed": 23.758108, - "course": 348.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35503, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1293847.4805546855, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:48:35.871+00:00", - "deviceTime": "2025-07-08T04:48:31.000+00:00", - "fixTime": "2025-07-08T04:48:31.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79420833333333, - "longitude": 24.1094, - "altitude": 0.0, - "speed": 0.0, - "course": 348.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35504, - "attributes": { - "type": 18, - "sat": 12, - "distance": 164.13733486675594, - "totalDistance": 1294011.6178895521, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:48:37.669+00:00", - "deviceTime": "2025-07-08T04:48:36.000+00:00", - "fixTime": "2025-07-08T04:48:36.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79565722222222, - "longitude": 24.109007777777776, - "altitude": 0.0, - "speed": 25.377979, - "course": 349.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35505, - "attributes": { - "type": 18, - "sat": 12, - "distance": 22.63126392366935, - "totalDistance": 1294034.2491534757, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:48:39.669+00:00", - "deviceTime": "2025-07-08T04:48:38.000+00:00", - "fixTime": "2025-07-08T04:48:38.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.795848888888884, - "longitude": 24.108910555555553, - "altitude": 0.0, - "speed": 18.898495, - "course": 321.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35506, - "attributes": { - "type": 18, - "sat": 12, - "distance": 18.001364439309405, - "totalDistance": 1294052.250517915, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:48:41.669+00:00", - "deviceTime": "2025-07-08T04:48:40.000+00:00", - "fixTime": "2025-07-08T04:48:40.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.795915, - "longitude": 24.10869888888889, - "altitude": 0.0, - "speed": 19.438452, - "course": 271.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35507, - "attributes": { - "type": 18, - "sat": 12, - "distance": 83.04446888326326, - "totalDistance": 1294135.2949867982, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:48:47.720+00:00", - "deviceTime": "2025-07-08T04:48:46.000+00:00", - "fixTime": "2025-07-08T04:48:46.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79577555555555, - "longitude": 24.10764777777778, - "altitude": 0.0, - "speed": 31.317506, - "course": 255.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35508, - "attributes": { - "type": 18, - "sat": 12, - "distance": 198.12973652383997, - "totalDistance": 1294333.424723322, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:48:57.844+00:00", - "deviceTime": "2025-07-08T04:48:56.000+00:00", - "fixTime": "2025-07-08T04:48:56.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79543888888889, - "longitude": 24.10514111111111, - "altitude": 0.0, - "speed": 35.637162000000004, - "course": 258.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35509, - "attributes": { - "type": 18, - "sat": 12, - "distance": 203.2372142889196, - "totalDistance": 1294536.661937611, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:49:10.510+00:00", - "deviceTime": "2025-07-08T04:49:09.000+00:00", - "fixTime": "2025-07-08T04:49:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.795055, - "longitude": 24.10258111111111, - "altitude": 0.0, - "speed": 12.958968, - "course": 257.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35510, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1294536.661937611, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:49:20.510+00:00", - "deviceTime": "2025-07-08T04:49:19.000+00:00", - "fixTime": "2025-07-08T04:49:19.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.795055, - "longitude": 24.10258111111111, - "altitude": 0.0, - "speed": 0.0, - "course": 257.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35511, - "attributes": { - "type": 18, - "sat": 12, - "distance": 32.29790056687013, - "totalDistance": 1294568.9598381778, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:49:22.462+00:00", - "deviceTime": "2025-07-08T04:49:21.000+00:00", - "fixTime": "2025-07-08T04:49:21.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79500111111111, - "longitude": 24.102172222222222, - "altitude": 0.0, - "speed": 0.0, - "course": 252.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35512, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1294568.9598381778, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:49:32.511+00:00", - "deviceTime": "2025-07-08T04:49:31.000+00:00", - "fixTime": "2025-07-08T04:49:31.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79500111111111, - "longitude": 24.102172222222222, - "altitude": 0.0, - "speed": 0.0, - "course": 252.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35513, - "attributes": { - "type": 18, - "sat": 12, - "distance": 86.31865429166129, - "totalDistance": 1294655.2784924693, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:49:34.464+00:00", - "deviceTime": "2025-07-08T04:49:33.000+00:00", - "fixTime": "2025-07-08T04:49:33.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79483611111111, - "longitude": 24.101085555555557, - "altitude": 0.0, - "speed": 24.838022000000002, - "course": 259.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35514, - "attributes": { - "type": 18, - "sat": 12, - "distance": 49.626325848964946, - "totalDistance": 1294704.9048183183, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:49:41.470+00:00", - "deviceTime": "2025-07-08T04:49:37.000+00:00", - "fixTime": "2025-07-08T04:49:37.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79479944444444, - "longitude": 24.100448333333333, - "altitude": 0.0, - "speed": 24.838022000000002, - "course": 276.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35515, - "attributes": { - "type": 18, - "sat": 12, - "distance": 78.05901833855522, - "totalDistance": 1294782.9638366569, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:49:43.264+00:00", - "deviceTime": "2025-07-08T04:49:42.000+00:00", - "fixTime": "2025-07-08T04:49:42.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79469222222222, - "longitude": 24.099454444444444, - "altitude": 0.0, - "speed": 30.237592, - "course": 257.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35516, - "attributes": { - "type": 18, - "sat": 12, - "distance": 158.15796664840238, - "totalDistance": 1294941.1218033053, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:49:53.310+00:00", - "deviceTime": "2025-07-08T04:49:52.000+00:00", - "fixTime": "2025-07-08T04:49:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79432611111111, - "longitude": 24.097485555555554, - "altitude": 0.0, - "speed": 28.077764000000002, - "course": 258.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35517, - "attributes": { - "type": 18, - "sat": 12, - "distance": 90.50477051754393, - "totalDistance": 1295031.626573823, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:50:01.310+00:00", - "deviceTime": "2025-07-08T04:50:00.000+00:00", - "fixTime": "2025-07-08T04:50:00.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79416833333333, - "longitude": 24.096341666666667, - "altitude": 0.0, - "speed": 19.978409, - "course": 281.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35518, - "attributes": { - "type": 18, - "sat": 12, - "distance": 39.576733938461715, - "totalDistance": 1295071.2033077613, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:50:05.264+00:00", - "deviceTime": "2025-07-08T04:50:04.000+00:00", - "fixTime": "2025-07-08T04:50:04.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794222777777776, - "longitude": 24.095837777777778, - "altitude": 0.0, - "speed": 21.598280000000003, - "course": 298.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35519, - "attributes": { - "type": 18, - "sat": 12, - "distance": 29.80770205566094, - "totalDistance": 1295101.011009817, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:50:07.273+00:00", - "deviceTime": "2025-07-08T04:50:06.000+00:00", - "fixTime": "2025-07-08T04:50:06.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79440888888889, - "longitude": 24.095561666666665, - "altitude": 0.0, - "speed": 28.077764000000002, - "course": 314.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35520, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1295101.011009817, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:50:08.266+00:00", - "deviceTime": "2025-07-08T04:50:08.266+00:00", - "fixTime": "2025-07-08T04:50:06.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79440888888889, - "longitude": 24.095561666666665, - "altitude": 0.0, - "speed": 28.077764000000002, - "course": 314.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35521, - "attributes": { - "type": 18, - "sat": 12, - "distance": 187.93650253708572, - "totalDistance": 1295288.947512354, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:50:19.713+00:00", - "deviceTime": "2025-07-08T04:50:18.000+00:00", - "fixTime": "2025-07-08T04:50:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79564666666666, - "longitude": 24.093915, - "altitude": 0.0, - "speed": 30.237592, - "course": 323.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35522, - "attributes": { - "type": 18, - "sat": 12, - "distance": 174.04919652213576, - "totalDistance": 1295462.9967088762, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:50:29.711+00:00", - "deviceTime": "2025-07-08T04:50:28.000+00:00", - "fixTime": "2025-07-08T04:50:28.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79690722222222, - "longitude": 24.092588333333335, - "altitude": 0.0, - "speed": 35.637162000000004, - "course": 323.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35523, - "attributes": { - "type": 18, - "sat": 12, - "distance": 175.1911974278124, - "totalDistance": 1295638.1879063041, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:50:42.721+00:00", - "deviceTime": "2025-07-08T04:50:38.000+00:00", - "fixTime": "2025-07-08T04:50:38.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79817111111111, - "longitude": 24.091243333333335, - "altitude": 0.0, - "speed": 41.036732, - "course": 323.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35524, - "attributes": { - "type": 18, - "sat": 12, - "distance": 228.70241951740272, - "totalDistance": 1295866.8903258215, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:50:54.313+00:00", - "deviceTime": "2025-07-08T04:50:53.000+00:00", - "fixTime": "2025-07-08T04:50:53.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79979055555555, - "longitude": 24.08943, - "altitude": 0.0, - "speed": 17.818581000000002, - "course": 289.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35525, - "attributes": { - "type": 18, - "sat": 12, - "distance": 24.811074240101608, - "totalDistance": 1295891.7014000616, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:50:56.276+00:00", - "deviceTime": "2025-07-08T04:50:55.000+00:00", - "fixTime": "2025-07-08T04:50:55.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79977, - "longitude": 24.089111666666668, - "altitude": 0.0, - "speed": 27.537807, - "course": 257.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35526, - "attributes": { - "type": 18, - "sat": 12, - "distance": 207.30168672328105, - "totalDistance": 1296099.0030867849, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:51:06.313+00:00", - "deviceTime": "2025-07-08T04:51:05.000+00:00", - "fixTime": "2025-07-08T04:51:05.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.799413333333334, - "longitude": 24.086489999999998, - "altitude": 0.0, - "speed": 27.537807, - "course": 259.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35527, - "attributes": { - "type": 18, - "sat": 12, - "distance": 32.505774131510485, - "totalDistance": 1296131.5088609164, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:51:10.273+00:00", - "deviceTime": "2025-07-08T04:51:09.000+00:00", - "fixTime": "2025-07-08T04:51:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79927722222222, - "longitude": 24.086119444444446, - "altitude": 0.0, - "speed": 12.958968, - "course": 180.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35528, - "attributes": { - "type": 18, - "sat": 12, - "distance": 12.08699433878524, - "totalDistance": 1296143.5958552551, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:51:12.268+00:00", - "deviceTime": "2025-07-08T04:51:11.000+00:00", - "fixTime": "2025-07-08T04:51:11.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.799169444444445, - "longitude": 24.086100555555557, - "altitude": 0.0, - "speed": 12.958968, - "course": 203.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35529, - "attributes": { - "type": 18, - "sat": 12, - "distance": 15.565444636467973, - "totalDistance": 1296159.1612998915, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:51:14.287+00:00", - "deviceTime": "2025-07-08T04:51:13.000+00:00", - "fixTime": "2025-07-08T04:51:13.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 18.358538, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35530, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:51:27.112+00:00", - "deviceTime": "2025-07-08T04:51:26.000+00:00", - "fixTime": "2025-07-08T04:51:26.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35531, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:51:35.113+00:00", - "deviceTime": "2025-07-08T04:51:33.000+00:00", - "fixTime": "2025-07-08T04:51:33.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35532, - "attributes": { - "type": 19, - "status": 68, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:51:37.062+00:00", - "deviceTime": "2025-07-08T04:51:37.062+00:00", - "fixTime": "2025-07-08T04:51:33.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35533, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:51:38.062+00:00", - "deviceTime": "2025-07-08T04:51:35.000+00:00", - "fixTime": "2025-07-08T04:51:35.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35534, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:51:43.111+00:00", - "deviceTime": "2025-07-08T04:51:42.000+00:00", - "fixTime": "2025-07-08T04:51:42.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35535, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:51:55.913+00:00", - "deviceTime": "2025-07-08T04:51:54.000+00:00", - "fixTime": "2025-07-08T04:51:54.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35536, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:52:05.912+00:00", - "deviceTime": "2025-07-08T04:52:04.000+00:00", - "fixTime": "2025-07-08T04:52:04.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35537, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:52:15.913+00:00", - "deviceTime": "2025-07-08T04:52:14.000+00:00", - "fixTime": "2025-07-08T04:52:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35538, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:52:28.712+00:00", - "deviceTime": "2025-07-08T04:52:27.000+00:00", - "fixTime": "2025-07-08T04:52:27.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35539, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:52:38.740+00:00", - "deviceTime": "2025-07-08T04:52:37.000+00:00", - "fixTime": "2025-07-08T04:52:37.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35540, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:52:48.729+00:00", - "deviceTime": "2025-07-08T04:52:47.000+00:00", - "fixTime": "2025-07-08T04:52:47.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35541, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:53:01.512+00:00", - "deviceTime": "2025-07-08T04:53:00.000+00:00", - "fixTime": "2025-07-08T04:53:00.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35542, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:53:11.513+00:00", - "deviceTime": "2025-07-08T04:53:10.000+00:00", - "fixTime": "2025-07-08T04:53:10.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35543, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:53:21.514+00:00", - "deviceTime": "2025-07-08T04:53:20.000+00:00", - "fixTime": "2025-07-08T04:53:20.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35544, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:53:34.313+00:00", - "deviceTime": "2025-07-08T04:53:33.000+00:00", - "fixTime": "2025-07-08T04:53:33.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35545, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:53:44.312+00:00", - "deviceTime": "2025-07-08T04:53:43.000+00:00", - "fixTime": "2025-07-08T04:53:43.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35546, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:53:54.312+00:00", - "deviceTime": "2025-07-08T04:53:53.000+00:00", - "fixTime": "2025-07-08T04:53:53.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35547, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:54:07.123+00:00", - "deviceTime": "2025-07-08T04:54:05.000+00:00", - "fixTime": "2025-07-08T04:54:05.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35548, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:54:17.129+00:00", - "deviceTime": "2025-07-08T04:54:15.000+00:00", - "fixTime": "2025-07-08T04:54:15.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35549, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:54:27.138+00:00", - "deviceTime": "2025-07-08T04:54:26.000+00:00", - "fixTime": "2025-07-08T04:54:26.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35550, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:54:39.930+00:00", - "deviceTime": "2025-07-08T04:54:38.000+00:00", - "fixTime": "2025-07-08T04:54:38.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35551, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:54:49.922+00:00", - "deviceTime": "2025-07-08T04:54:48.000+00:00", - "fixTime": "2025-07-08T04:54:48.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35552, - "attributes": { - "type": 19, - "status": 68, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296159.1612998915, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:54:53.867+00:00", - "deviceTime": "2025-07-08T04:54:53.867+00:00", - "fixTime": "2025-07-08T04:54:48.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79908722222223, - "longitude": 24.085938333333335, - "altitude": 0.0, - "speed": 0.0, - "course": 249.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35553, - "attributes": { - "type": 18, - "sat": 12, - "distance": 35.20221739652046, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:54:54.874+00:00", - "deviceTime": "2025-07-08T04:54:52.000+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35554, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T04:58:10.742+00:00", - "deviceTime": "2025-07-08T04:58:10.742+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35555, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:01:27.552+00:00", - "deviceTime": "2025-07-08T05:01:27.552+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35556, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:04:44.371+00:00", - "deviceTime": "2025-07-08T05:04:44.371+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35557, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:08:01.184+00:00", - "deviceTime": "2025-07-08T05:08:01.184+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35558, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:11:24.211+00:00", - "deviceTime": "2025-07-08T05:11:24.211+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35559, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:14:41.040+00:00", - "deviceTime": "2025-07-08T05:14:41.040+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35560, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:17:57.832+00:00", - "deviceTime": "2025-07-08T05:17:57.832+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35561, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:21:24.452+00:00", - "deviceTime": "2025-07-08T05:21:24.452+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35562, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:24:44.670+00:00", - "deviceTime": "2025-07-08T05:24:44.670+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35563, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:28:01.641+00:00", - "deviceTime": "2025-07-08T05:28:01.641+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35564, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:31:21.502+00:00", - "deviceTime": "2025-07-08T05:31:21.502+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35565, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:34:44.722+00:00", - "deviceTime": "2025-07-08T05:34:44.722+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35566, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:38:07.743+00:00", - "deviceTime": "2025-07-08T05:38:07.743+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35567, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:41:27.754+00:00", - "deviceTime": "2025-07-08T05:41:27.754+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35568, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:44:47.781+00:00", - "deviceTime": "2025-07-08T05:44:47.781+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35569, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:48:11.194+00:00", - "deviceTime": "2025-07-08T05:48:11.194+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35570, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:51:28.200+00:00", - "deviceTime": "2025-07-08T05:51:28.200+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35571, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:54:45.021+00:00", - "deviceTime": "2025-07-08T05:54:45.021+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35572, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T05:58:04.841+00:00", - "deviceTime": "2025-07-08T05:58:04.841+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35573, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:01:21.661+00:00", - "deviceTime": "2025-07-08T06:01:21.661+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35574, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:04:41.672+00:00", - "deviceTime": "2025-07-08T06:04:41.672+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35575, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:08:01.491+00:00", - "deviceTime": "2025-07-08T06:08:01.491+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35576, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:11:21.501+00:00", - "deviceTime": "2025-07-08T06:11:21.501+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35577, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:14:41.322+00:00", - "deviceTime": "2025-07-08T06:14:41.322+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35578, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:17:58.141+00:00", - "deviceTime": "2025-07-08T06:17:58.141+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35579, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:21:17.963+00:00", - "deviceTime": "2025-07-08T06:21:17.963+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35580, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:24:34.770+00:00", - "deviceTime": "2025-07-08T06:24:34.770+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35581, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:27:51.991+00:00", - "deviceTime": "2025-07-08T06:27:51.991+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35582, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:31:12.611+00:00", - "deviceTime": "2025-07-08T06:31:12.611+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35583, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:34:39.032+00:00", - "deviceTime": "2025-07-08T06:34:39.032+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35584, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:37:59.242+00:00", - "deviceTime": "2025-07-08T06:37:59.242+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35585, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:41:16.061+00:00", - "deviceTime": "2025-07-08T06:41:16.061+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35586, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:44:39.084+00:00", - "deviceTime": "2025-07-08T06:44:39.084+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35587, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:47:59.497+00:00", - "deviceTime": "2025-07-08T06:47:59.497+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35588, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:51:22.952+00:00", - "deviceTime": "2025-07-08T06:51:22.952+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35589, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:54:39.733+00:00", - "deviceTime": "2025-07-08T06:54:39.733+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35590, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T06:57:56.550+00:00", - "deviceTime": "2025-07-08T06:57:56.550+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35591, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:01:16.361+00:00", - "deviceTime": "2025-07-08T07:01:16.361+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35592, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:04:36.381+00:00", - "deviceTime": "2025-07-08T07:04:36.381+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35593, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:07:56.392+00:00", - "deviceTime": "2025-07-08T07:07:56.392+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35594, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:11:16.220+00:00", - "deviceTime": "2025-07-08T07:11:16.220+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35595, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:14:33.032+00:00", - "deviceTime": "2025-07-08T07:14:33.032+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35596, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:17:56.241+00:00", - "deviceTime": "2025-07-08T07:17:56.241+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35597, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:21:16.061+00:00", - "deviceTime": "2025-07-08T07:21:16.061+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35598, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:24:36.081+00:00", - "deviceTime": "2025-07-08T07:24:36.081+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35599, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:27:59.500+00:00", - "deviceTime": "2025-07-08T07:27:59.500+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35600, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:31:25.712+00:00", - "deviceTime": "2025-07-08T07:31:25.712+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35601, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:34:48.933+00:00", - "deviceTime": "2025-07-08T07:34:48.933+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35602, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:38:09.151+00:00", - "deviceTime": "2025-07-08T07:38:09.151+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35603, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:41:29.570+00:00", - "deviceTime": "2025-07-08T07:41:29.570+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35604, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:44:55.990+00:00", - "deviceTime": "2025-07-08T07:44:55.990+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35605, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:48:13.000+00:00", - "deviceTime": "2025-07-08T07:48:13.000+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35606, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:51:32.825+00:00", - "deviceTime": "2025-07-08T07:51:32.825+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35607, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:54:49.641+00:00", - "deviceTime": "2025-07-08T07:54:49.641+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35608, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T07:58:06.462+00:00", - "deviceTime": "2025-07-08T07:58:06.462+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35609, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:01:26.470+00:00", - "deviceTime": "2025-07-08T08:01:26.470+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35610, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:04:46.289+00:00", - "deviceTime": "2025-07-08T08:04:46.289+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35611, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:08:06.109+00:00", - "deviceTime": "2025-07-08T08:08:06.109+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35612, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:11:23.330+00:00", - "deviceTime": "2025-07-08T08:11:23.330+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35613, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:14:49.831+00:00", - "deviceTime": "2025-07-08T08:14:49.831+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35614, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:18:06.760+00:00", - "deviceTime": "2025-07-08T08:18:06.760+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35615, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:21:26.688+00:00", - "deviceTime": "2025-07-08T08:21:26.688+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35616, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:24:43.589+00:00", - "deviceTime": "2025-07-08T08:24:43.589+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35617, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:28:03.415+00:00", - "deviceTime": "2025-07-08T08:28:03.415+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35618, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:31:26.829+00:00", - "deviceTime": "2025-07-08T08:31:26.829+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35619, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:34:56.266+00:00", - "deviceTime": "2025-07-08T08:34:56.266+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35620, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:38:19.669+00:00", - "deviceTime": "2025-07-08T08:38:19.669+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35621, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:41:36.679+00:00", - "deviceTime": "2025-07-08T08:41:36.679+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35622, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:44:53.528+00:00", - "deviceTime": "2025-07-08T08:44:53.528+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35623, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:48:13.319+00:00", - "deviceTime": "2025-07-08T08:48:13.319+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35624, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:51:30.139+00:00", - "deviceTime": "2025-07-08T08:51:30.139+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35625, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:54:46.949+00:00", - "deviceTime": "2025-07-08T08:54:46.949+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35626, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T08:58:09.978+00:00", - "deviceTime": "2025-07-08T08:58:09.978+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35627, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:01:26.855+00:00", - "deviceTime": "2025-07-08T09:01:26.855+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35628, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:04:49.809+00:00", - "deviceTime": "2025-07-08T09:04:49.809+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35629, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:08:06.620+00:00", - "deviceTime": "2025-07-08T09:08:06.620+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35630, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:11:26.440+00:00", - "deviceTime": "2025-07-08T09:11:26.440+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35631, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:14:43.262+00:00", - "deviceTime": "2025-07-08T09:14:43.262+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35632, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:18:03.080+00:00", - "deviceTime": "2025-07-08T09:18:03.080+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35633, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:21:19.890+00:00", - "deviceTime": "2025-07-08T09:21:19.890+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35634, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:24:39.822+00:00", - "deviceTime": "2025-07-08T09:24:39.822+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35635, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:28:00.131+00:00", - "deviceTime": "2025-07-08T09:28:00.131+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35636, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:31:26.550+00:00", - "deviceTime": "2025-07-08T09:31:26.550+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35637, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:34:56.017+00:00", - "deviceTime": "2025-07-08T09:34:56.017+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35638, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:38:22.181+00:00", - "deviceTime": "2025-07-08T09:38:22.181+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35639, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:41:48.213+00:00", - "deviceTime": "2025-07-08T09:41:48.213+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35640, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:45:11.137+00:00", - "deviceTime": "2025-07-08T09:45:11.137+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35641, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:48:31.239+00:00", - "deviceTime": "2025-07-08T09:48:31.239+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35642, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:51:51.060+00:00", - "deviceTime": "2025-07-08T09:51:51.060+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35643, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:55:14.287+00:00", - "deviceTime": "2025-07-08T09:55:14.287+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35644, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T09:58:31.090+00:00", - "deviceTime": "2025-07-08T09:58:31.090+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35645, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:01:50.920+00:00", - "deviceTime": "2025-07-08T10:01:50.920+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35646, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:05:07.730+00:00", - "deviceTime": "2025-07-08T10:05:07.730+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35647, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:08:27.551+00:00", - "deviceTime": "2025-07-08T10:08:27.551+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35648, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:11:44.370+00:00", - "deviceTime": "2025-07-08T10:11:44.370+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35649, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:15:01.184+00:00", - "deviceTime": "2025-07-08T10:15:01.184+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35650, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:18:21.000+00:00", - "deviceTime": "2025-07-08T10:18:21.000+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35651, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:21:37.820+00:00", - "deviceTime": "2025-07-08T10:21:37.820+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35652, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:24:57.640+00:00", - "deviceTime": "2025-07-08T10:24:57.640+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35653, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:28:14.452+00:00", - "deviceTime": "2025-07-08T10:28:14.452+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35654, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:31:34.426+00:00", - "deviceTime": "2025-07-08T10:31:34.426+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35655, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:34:51.093+00:00", - "deviceTime": "2025-07-08T10:34:51.093+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35656, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:38:07.945+00:00", - "deviceTime": "2025-07-08T10:38:07.945+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35657, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:41:31.132+00:00", - "deviceTime": "2025-07-08T10:41:31.132+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35658, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:44:57.549+00:00", - "deviceTime": "2025-07-08T10:44:57.549+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35659, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:48:23.970+00:00", - "deviceTime": "2025-07-08T10:48:23.970+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35660, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:51:47.390+00:00", - "deviceTime": "2025-07-08T10:51:47.390+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35661, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:55:04.200+00:00", - "deviceTime": "2025-07-08T10:55:04.200+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35662, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T10:58:21.022+00:00", - "deviceTime": "2025-07-08T10:58:21.022+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35663, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:01:38.457+00:00", - "deviceTime": "2025-07-08T11:01:38.457+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35664, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:04:55.262+00:00", - "deviceTime": "2025-07-08T11:04:55.262+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35665, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:08:12.071+00:00", - "deviceTime": "2025-07-08T11:08:12.071+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35666, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:11:29.090+00:00", - "deviceTime": "2025-07-08T11:11:29.090+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35667, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:14:52.512+00:00", - "deviceTime": "2025-07-08T11:14:52.512+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35668, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:18:09.729+00:00", - "deviceTime": "2025-07-08T11:18:09.729+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35669, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:21:36.143+00:00", - "deviceTime": "2025-07-08T11:21:36.143+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35670, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:24:53.149+00:00", - "deviceTime": "2025-07-08T11:24:53.149+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35671, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:28:09.982+00:00", - "deviceTime": "2025-07-08T11:28:09.982+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35672, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:31:26.800+00:00", - "deviceTime": "2025-07-08T11:31:26.800+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35673, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:34:50.214+00:00", - "deviceTime": "2025-07-08T11:34:50.214+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35674, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:38:10.635+00:00", - "deviceTime": "2025-07-08T11:38:10.635+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35675, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:41:30.564+00:00", - "deviceTime": "2025-07-08T11:41:30.564+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35676, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:44:50.386+00:00", - "deviceTime": "2025-07-08T11:44:50.386+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35677, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:48:07.089+00:00", - "deviceTime": "2025-07-08T11:48:07.089+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35678, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:51:30.512+00:00", - "deviceTime": "2025-07-08T11:51:30.512+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35679, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:54:50.729+00:00", - "deviceTime": "2025-07-08T11:54:50.729+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35680, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T11:58:07.540+00:00", - "deviceTime": "2025-07-08T11:58:07.540+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35681, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:01:24.360+00:00", - "deviceTime": "2025-07-08T12:01:24.360+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35682, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:04:44.181+00:00", - "deviceTime": "2025-07-08T12:04:44.181+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35683, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:08:00.992+00:00", - "deviceTime": "2025-07-08T12:08:00.992+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35684, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:11:21.424+00:00", - "deviceTime": "2025-07-08T12:11:21.424+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35685, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:14:44.634+00:00", - "deviceTime": "2025-07-08T12:14:44.634+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35686, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:18:01.452+00:00", - "deviceTime": "2025-07-08T12:18:01.452+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35687, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:21:18.273+00:00", - "deviceTime": "2025-07-08T12:21:18.273+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35688, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:24:35.080+00:00", - "deviceTime": "2025-07-08T12:24:35.080+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35689, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:27:51.995+00:00", - "deviceTime": "2025-07-08T12:27:51.995+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35690, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:31:12.121+00:00", - "deviceTime": "2025-07-08T12:31:12.121+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35691, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:34:38.540+00:00", - "deviceTime": "2025-07-08T12:34:38.540+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35692, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:37:58.764+00:00", - "deviceTime": "2025-07-08T12:37:58.764+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35693, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:41:15.584+00:00", - "deviceTime": "2025-07-08T12:41:15.584+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35694, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:44:32.389+00:00", - "deviceTime": "2025-07-08T12:44:32.389+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35695, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:47:55.863+00:00", - "deviceTime": "2025-07-08T12:47:55.863+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35696, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:51:19.232+00:00", - "deviceTime": "2025-07-08T12:51:19.232+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35697, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:54:39.653+00:00", - "deviceTime": "2025-07-08T12:54:39.653+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35698, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T12:58:05.860+00:00", - "deviceTime": "2025-07-08T12:58:05.860+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35699, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:01:29.083+00:00", - "deviceTime": "2025-07-08T13:01:29.083+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35700, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:04:55.501+00:00", - "deviceTime": "2025-07-08T13:04:55.501+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35701, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:08:18.721+00:00", - "deviceTime": "2025-07-08T13:08:18.721+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35702, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:11:35.542+00:00", - "deviceTime": "2025-07-08T13:11:35.542+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35703, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:14:52.361+00:00", - "deviceTime": "2025-07-08T13:14:52.361+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35704, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:18:09.273+00:00", - "deviceTime": "2025-07-08T13:18:09.273+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35705, - "attributes": { - "type": 19, - "status": 6, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:20:17.338+00:00", - "deviceTime": "2025-07-08T13:20:17.338+00:00", - "fixTime": "2025-07-08T04:54:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35706, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1296194.3635172881, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:20:51.185+00:00", - "deviceTime": "2025-07-08T13:20:50.000+00:00", - "fixTime": "2025-07-08T13:20:50.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.798964999999995, - "longitude": 24.08552, - "altitude": 0.0, - "speed": 0.0, - "course": 139.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35707, - "attributes": { - "type": 18, - "sat": 11, - "distance": 391.54977418586157, - "totalDistance": 1296585.9132914739, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:20:55.135+00:00", - "deviceTime": "2025-07-08T13:20:54.000+00:00", - "fixTime": "2025-07-08T13:20:54.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79575388888889, - "longitude": 24.08757888888889, - "altitude": 0.0, - "speed": 29.157678, - "course": 152.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35708, - "attributes": { - "type": 18, - "sat": 11, - "distance": 162.32299568468932, - "totalDistance": 1296748.2362871584, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:21:05.202+00:00", - "deviceTime": "2025-07-08T13:21:04.000+00:00", - "fixTime": "2025-07-08T13:21:04.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79439166666667, - "longitude": 24.088325, - "altitude": 0.0, - "speed": 23.218151000000002, - "course": 133.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35709, - "attributes": { - "type": 18, - "sat": 11, - "distance": 26.5174812775193, - "totalDistance": 1296774.753768436, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:21:10.131+00:00", - "deviceTime": "2025-07-08T13:21:06.000+00:00", - "fixTime": "2025-07-08T13:21:06.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794195, - "longitude": 24.088517777777778, - "altitude": 0.0, - "speed": 26.99785, - "course": 156.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35710, - "attributes": { - "type": 18, - "sat": 11, - "distance": 197.3641680744219, - "totalDistance": 1296972.1179365104, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:21:19.983+00:00", - "deviceTime": "2025-07-08T13:21:18.000+00:00", - "fixTime": "2025-07-08T13:21:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79252555555556, - "longitude": 24.08937388888889, - "altitude": 0.0, - "speed": 21.598280000000003, - "course": 158.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35711, - "attributes": { - "type": 18, - "sat": 11, - "distance": 67.22792272376749, - "totalDistance": 1297039.3458592342, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:21:29.982+00:00", - "deviceTime": "2025-07-08T13:21:28.000+00:00", - "fixTime": "2025-07-08T13:21:28.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79197111111111, - "longitude": 24.089717222222223, - "altitude": 0.0, - "speed": 7.559398, - "course": 132.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35712, - "attributes": { - "type": 18, - "sat": 11, - "distance": 11.189634517101059, - "totalDistance": 1297050.5354937513, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:21:31.940+00:00", - "deviceTime": "2025-07-08T13:21:30.000+00:00", - "fixTime": "2025-07-08T13:21:30.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.791957222222216, - "longitude": 24.08986, - "altitude": 0.0, - "speed": 14.578839, - "course": 80.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35713, - "attributes": { - "type": 18, - "sat": 11, - "distance": 202.69436876208144, - "totalDistance": 1297253.2298625135, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:21:44.784+00:00", - "deviceTime": "2025-07-08T13:21:43.000+00:00", - "fixTime": "2025-07-08T13:21:43.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79242611111111, - "longitude": 24.092383333333334, - "altitude": 0.0, - "speed": 30.777549, - "course": 76.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35714, - "attributes": { - "type": 18, - "sat": 11, - "distance": 163.03263043364183, - "totalDistance": 1297416.262492947, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:21:54.782+00:00", - "deviceTime": "2025-07-08T13:21:53.000+00:00", - "fixTime": "2025-07-08T13:21:53.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79282888888889, - "longitude": 24.09440277777778, - "altitude": 0.0, - "speed": 34.017291, - "course": 71.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35715, - "attributes": { - "type": 18, - "sat": 11, - "distance": 149.03839364367371, - "totalDistance": 1297565.3008865907, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:22:04.781+00:00", - "deviceTime": "2025-07-08T13:22:03.000+00:00", - "fixTime": "2025-07-08T13:22:03.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79325333333334, - "longitude": 24.09622388888889, - "altitude": 0.0, - "speed": 21.598280000000003, - "course": 71.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35716, - "attributes": { - "type": 18, - "sat": 11, - "distance": 21.663860757567015, - "totalDistance": 1297586.9647473483, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:22:06.730+00:00", - "deviceTime": "2025-07-08T13:22:05.000+00:00", - "fixTime": "2025-07-08T13:22:05.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79335833333333, - "longitude": 24.09645888888889, - "altitude": 0.0, - "speed": 19.978409, - "course": 44.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35717, - "attributes": { - "type": 18, - "sat": 11, - "distance": 20.293148995620214, - "totalDistance": 1297607.257896344, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:22:08.737+00:00", - "deviceTime": "2025-07-08T13:22:07.000+00:00", - "fixTime": "2025-07-08T13:22:07.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79352166666666, - "longitude": 24.096575, - "altitude": 0.0, - "speed": 17.818581000000002, - "course": 14.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35718, - "attributes": { - "type": 18, - "sat": 11, - "distance": 18.399635432236902, - "totalDistance": 1297625.6575317762, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:22:10.730+00:00", - "deviceTime": "2025-07-08T13:22:09.000+00:00", - "fixTime": "2025-07-08T13:22:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79367833333334, - "longitude": 24.096499444444444, - "altitude": 0.0, - "speed": 14.038882000000001, - "course": 330.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35719, - "attributes": { - "type": 18, - "sat": 11, - "distance": 60.50715705138754, - "totalDistance": 1297686.1646888277, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:22:20.579+00:00", - "deviceTime": "2025-07-08T13:22:19.000+00:00", - "fixTime": "2025-07-08T13:22:19.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794183333333336, - "longitude": 24.096787777777777, - "altitude": 0.0, - "speed": 20.518366, - "course": 71.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35720, - "attributes": { - "type": 18, - "sat": 10, - "distance": 110.15437013987363, - "totalDistance": 1297796.3190589675, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:22:30.581+00:00", - "deviceTime": "2025-07-08T13:22:29.000+00:00", - "fixTime": "2025-07-08T13:22:29.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79441111111111, - "longitude": 24.09816888888889, - "altitude": 0.0, - "speed": 23.758108, - "course": 78.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35721, - "attributes": { - "type": 18, - "sat": 10, - "distance": 124.76865026631305, - "totalDistance": 1297921.0877092339, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:22:40.817+00:00", - "deviceTime": "2025-07-08T13:22:39.000+00:00", - "fixTime": "2025-07-08T13:22:39.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79472333333333, - "longitude": 24.09971277777778, - "altitude": 0.0, - "speed": 29.157678, - "course": 75.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35722, - "attributes": { - "type": 18, - "sat": 10, - "distance": 52.058273698633755, - "totalDistance": 1297973.1459829325, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:22:44.545+00:00", - "deviceTime": "2025-07-08T13:22:43.000+00:00", - "fixTime": "2025-07-08T13:22:43.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794804444444445, - "longitude": 24.10037333333333, - "altitude": 0.0, - "speed": 22.678194, - "course": 96.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35723, - "attributes": { - "type": 18, - "sat": 10, - "distance": 51.05901669915984, - "totalDistance": 1298024.2049996317, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:22:51.577+00:00", - "deviceTime": "2025-07-08T13:22:47.000+00:00", - "fixTime": "2025-07-08T13:22:47.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79479777777778, - "longitude": 24.101031111111112, - "altitude": 0.0, - "speed": 26.457893000000002, - "course": 79.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35724, - "attributes": { - "type": 18, - "sat": 10, - "distance": 163.57394393855458, - "totalDistance": 1298187.7789435703, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:23:01.380+00:00", - "deviceTime": "2025-07-08T13:23:00.000+00:00", - "fixTime": "2025-07-08T13:23:00.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79509888888889, - "longitude": 24.10309388888889, - "altitude": 0.0, - "speed": 24.838022000000002, - "course": 77.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35725, - "attributes": { - "type": 18, - "sat": 10, - "distance": 122.2562722107274, - "totalDistance": 1298310.035215781, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:23:11.380+00:00", - "deviceTime": "2025-07-08T13:23:10.000+00:00", - "fixTime": "2025-07-08T13:23:10.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.795316666666665, - "longitude": 24.10463777777778, - "altitude": 0.0, - "speed": 18.898495, - "course": 78.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35726, - "attributes": { - "type": 18, - "sat": 10, - "distance": 111.02701272866277, - "totalDistance": 1298421.0622285097, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:23:23.233+00:00", - "deviceTime": "2025-07-08T13:23:20.000+00:00", - "fixTime": "2025-07-08T13:23:20.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79551777777778, - "longitude": 24.106038888888886, - "altitude": 0.0, - "speed": 22.678194, - "course": 78.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35727, - "attributes": { - "type": 18, - "sat": 10, - "distance": 149.38562262917708, - "totalDistance": 1298570.447851139, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:23:33.180+00:00", - "deviceTime": "2025-07-08T13:23:32.000+00:00", - "fixTime": "2025-07-08T13:23:32.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79577944444444, - "longitude": 24.107926666666668, - "altitude": 0.0, - "speed": 21.598280000000003, - "course": 78.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35728, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1298570.447851139, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:23:36.136+00:00", - "deviceTime": "2025-07-08T13:23:36.136+00:00", - "fixTime": "2025-07-08T13:23:32.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79577944444444, - "longitude": 24.107926666666668, - "altitude": 0.0, - "speed": 21.598280000000003, - "course": 78.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35729, - "attributes": { - "type": 18, - "sat": 10, - "distance": 61.6876699374535, - "totalDistance": 1298632.1355210764, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:23:39.136+00:00", - "deviceTime": "2025-07-08T13:23:38.000+00:00", - "fixTime": "2025-07-08T13:23:38.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79585, - "longitude": 24.108715, - "altitude": 0.0, - "speed": 14.578839, - "course": 95.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35730, - "attributes": { - "type": 18, - "sat": 10, - "distance": 14.155051105563889, - "totalDistance": 1298646.290572182, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:23:41.136+00:00", - "deviceTime": "2025-07-08T13:23:40.000+00:00", - "fixTime": "2025-07-08T13:23:40.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79578055555556, - "longitude": 24.10886777777778, - "altitude": 0.0, - "speed": 15.658753, - "course": 152.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35731, - "attributes": { - "type": 18, - "sat": 10, - "distance": 17.843038144531583, - "totalDistance": 1298664.1336103266, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:23:43.143+00:00", - "deviceTime": "2025-07-08T13:23:42.000+00:00", - "fixTime": "2025-07-08T13:23:42.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.795629444444444, - "longitude": 24.108944444444447, - "altitude": 0.0, - "speed": 18.358538, - "course": 167.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35732, - "attributes": { - "type": 18, - "sat": 10, - "distance": 0.0, - "totalDistance": 1298664.1336103266, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:23:56.141+00:00", - "deviceTime": "2025-07-08T13:23:52.000+00:00", - "fixTime": "2025-07-08T13:23:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.795629444444444, - "longitude": 24.108944444444447, - "altitude": 0.0, - "speed": 0.0, - "course": 167.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35733, - "attributes": { - "type": 18, - "sat": 10, - "distance": 111.73566732779011, - "totalDistance": 1298775.8692776544, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:23:57.931+00:00", - "deviceTime": "2025-07-08T13:23:56.000+00:00", - "fixTime": "2025-07-08T13:23:56.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794643888888885, - "longitude": 24.109217222222224, - "altitude": 0.0, - "speed": 24.298065, - "course": 169.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35734, - "attributes": { - "type": 18, - "sat": 10, - "distance": 131.39047625317733, - "totalDistance": 1298907.2597539076, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:24:08.012+00:00", - "deviceTime": "2025-07-08T13:24:06.000+00:00", - "fixTime": "2025-07-08T13:24:06.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79349, - "longitude": 24.109573333333334, - "altitude": 0.0, - "speed": 29.697635000000002, - "course": 169.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35735, - "attributes": { - "type": 18, - "sat": 10, - "distance": 74.67459651312474, - "totalDistance": 1298981.9343504207, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:24:15.981+00:00", - "deviceTime": "2025-07-08T13:24:14.000+00:00", - "fixTime": "2025-07-08T13:24:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79282833333334, - "longitude": 24.109731666666665, - "altitude": 0.0, - "speed": 5.399570000000001, - "course": 193.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35736, - "attributes": { - "type": 18, - "sat": 11, - "distance": 38.0713211275095, - "totalDistance": 1299020.0056715482, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:24:22.022+00:00", - "deviceTime": "2025-07-08T13:24:20.000+00:00", - "fixTime": "2025-07-08T13:24:20.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79248666666667, - "longitude": 24.109753333333334, - "altitude": 0.0, - "speed": 16.198710000000002, - "course": 121.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35737, - "attributes": { - "type": 18, - "sat": 11, - "distance": 19.99986706790256, - "totalDistance": 1299040.005538616, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:24:23.942+00:00", - "deviceTime": "2025-07-08T13:24:22.000+00:00", - "fixTime": "2025-07-08T13:24:22.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.792515, - "longitude": 24.110007777777778, - "altitude": 0.0, - "speed": 21.598280000000003, - "course": 71.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35738, - "attributes": { - "type": 18, - "sat": 11, - "distance": 177.8031040921665, - "totalDistance": 1299217.8086427082, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:24:39.788+00:00", - "deviceTime": "2025-07-08T13:24:38.000+00:00", - "fixTime": "2025-07-08T13:24:38.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79285111111111, - "longitude": 24.11224722222222, - "altitude": 0.0, - "speed": 25.917936, - "course": 78.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35739, - "attributes": { - "type": 18, - "sat": 11, - "distance": 143.84649499198363, - "totalDistance": 1299361.6551377003, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:24:49.780+00:00", - "deviceTime": "2025-07-08T13:24:48.000+00:00", - "fixTime": "2025-07-08T13:24:48.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793102777777776, - "longitude": 24.114065, - "altitude": 0.0, - "speed": 30.237592, - "course": 78.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35740, - "attributes": { - "type": 18, - "sat": 11, - "distance": 152.29457168505851, - "totalDistance": 1299513.9497093854, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:24:59.787+00:00", - "deviceTime": "2025-07-08T13:24:58.000+00:00", - "fixTime": "2025-07-08T13:24:58.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79335555555556, - "longitude": 24.115993333333336, - "altitude": 0.0, - "speed": 29.697635000000002, - "course": 80.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35741, - "attributes": { - "type": 18, - "sat": 11, - "distance": 191.57671508433322, - "totalDistance": 1299705.5264244697, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:25:15.582+00:00", - "deviceTime": "2025-07-08T13:25:14.000+00:00", - "fixTime": "2025-07-08T13:25:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793491111111116, - "longitude": 24.11845388888889, - "altitude": 0.0, - "speed": 0.0, - "course": 80.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35742, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1299705.5264244697, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:25:25.581+00:00", - "deviceTime": "2025-07-08T13:25:24.000+00:00", - "fixTime": "2025-07-08T13:25:24.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793491111111116, - "longitude": 24.11845388888889, - "altitude": 0.0, - "speed": 0.0, - "course": 80.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35743, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1299705.5264244697, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:25:35.581+00:00", - "deviceTime": "2025-07-08T13:25:34.000+00:00", - "fixTime": "2025-07-08T13:25:34.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793491111111116, - "longitude": 24.11845388888889, - "altitude": 0.0, - "speed": 0.0, - "course": 80.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35744, - "attributes": { - "type": 18, - "sat": 11, - "distance": 58.00428008179644, - "totalDistance": 1299763.5307045514, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:25:43.541+00:00", - "deviceTime": "2025-07-08T13:25:36.000+00:00", - "fixTime": "2025-07-08T13:25:36.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79351277777778, - "longitude": 24.119200555555558, - "altitude": 0.0, - "speed": 0.0, - "course": 93.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35745, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1299763.5307045514, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:25:53.382+00:00", - "deviceTime": "2025-07-08T13:25:52.000+00:00", - "fixTime": "2025-07-08T13:25:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79351277777778, - "longitude": 24.119200555555558, - "altitude": 0.0, - "speed": 0.0, - "course": 93.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35746, - "attributes": { - "type": 18, - "sat": 11, - "distance": 40.20846496868574, - "totalDistance": 1299803.73916952, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:25:55.329+00:00", - "deviceTime": "2025-07-08T13:25:54.000+00:00", - "fixTime": "2025-07-08T13:25:54.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79354388888889, - "longitude": 24.119716666666665, - "altitude": 0.0, - "speed": 0.0, - "course": 83.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35747, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1299803.73916952, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:26:05.381+00:00", - "deviceTime": "2025-07-08T13:26:04.000+00:00", - "fixTime": "2025-07-08T13:26:04.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79354388888889, - "longitude": 24.119716666666665, - "altitude": 0.0, - "speed": 0.0, - "course": 83.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35748, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1299803.73916952, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:26:18.181+00:00", - "deviceTime": "2025-07-08T13:26:17.000+00:00", - "fixTime": "2025-07-08T13:26:17.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79354388888889, - "longitude": 24.119716666666665, - "altitude": 0.0, - "speed": 0.0, - "course": 83.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35749, - "attributes": { - "type": 18, - "sat": 11, - "distance": 75.41953223082928, - "totalDistance": 1299879.158701751, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:26:20.133+00:00", - "deviceTime": "2025-07-08T13:26:19.000+00:00", - "fixTime": "2025-07-08T13:26:19.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79353944444445, - "longitude": 24.120688333333334, - "altitude": 0.0, - "speed": 8.099355000000001, - "course": 103.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35750, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1299879.158701751, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:26:30.250+00:00", - "deviceTime": "2025-07-08T13:26:29.000+00:00", - "fixTime": "2025-07-08T13:26:29.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79353944444445, - "longitude": 24.120688333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 103.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35751, - "attributes": { - "type": 18, - "sat": 11, - "distance": 42.37597791385508, - "totalDistance": 1299921.5346796648, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:26:40.182+00:00", - "deviceTime": "2025-07-08T13:26:39.000+00:00", - "fixTime": "2025-07-08T13:26:39.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79346166666667, - "longitude": 24.121222777777778, - "altitude": 0.0, - "speed": 8.099355000000001, - "course": 73.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35752, - "attributes": { - "type": 18, - "sat": 11, - "distance": 67.15072427926624, - "totalDistance": 1299988.685403944, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:26:50.982+00:00", - "deviceTime": "2025-07-08T13:26:49.000+00:00", - "fixTime": "2025-07-08T13:26:49.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79356333333333, - "longitude": 24.122075555555558, - "altitude": 0.0, - "speed": 8.099355000000001, - "course": 89.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35753, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1299988.685403944, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:27:00.982+00:00", - "deviceTime": "2025-07-08T13:26:59.000+00:00", - "fixTime": "2025-07-08T13:26:59.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79356333333333, - "longitude": 24.122075555555558, - "altitude": 0.0, - "speed": 0.0, - "course": 89.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35754, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1299988.685403944, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:27:01.933+00:00", - "deviceTime": "2025-07-08T13:27:01.933+00:00", - "fixTime": "2025-07-08T13:26:59.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79356333333333, - "longitude": 24.122075555555558, - "altitude": 0.0, - "speed": 0.0, - "course": 89.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35755, - "attributes": { - "type": 18, - "sat": 11, - "distance": 70.07627325998092, - "totalDistance": 1300058.761677204, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:27:10.983+00:00", - "deviceTime": "2025-07-08T13:27:09.000+00:00", - "fixTime": "2025-07-08T13:27:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79357111111111, - "longitude": 24.122978333333332, - "altitude": 0.0, - "speed": 0.0, - "course": 102.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35756, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1300058.761677204, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:27:23.841+00:00", - "deviceTime": "2025-07-08T13:27:22.000+00:00", - "fixTime": "2025-07-08T13:27:22.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79357111111111, - "longitude": 24.122978333333332, - "altitude": 0.0, - "speed": 0.0, - "course": 102.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35757, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1300058.761677204, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:27:33.784+00:00", - "deviceTime": "2025-07-08T13:27:32.000+00:00", - "fixTime": "2025-07-08T13:27:32.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79357111111111, - "longitude": 24.122978333333332, - "altitude": 0.0, - "speed": 0.0, - "course": 102.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35758, - "attributes": { - "type": 18, - "sat": 11, - "distance": 85.38685762395217, - "totalDistance": 1300144.1485348279, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:27:39.730+00:00", - "deviceTime": "2025-07-08T13:27:38.000+00:00", - "fixTime": "2025-07-08T13:27:38.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79344444444444, - "longitude": 24.124063333333336, - "altitude": 0.0, - "speed": 11.879054, - "course": 102.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35759, - "attributes": { - "type": 18, - "sat": 11, - "distance": 59.10065939169065, - "totalDistance": 1300203.2491942195, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:27:49.739+00:00", - "deviceTime": "2025-07-08T13:27:48.000+00:00", - "fixTime": "2025-07-08T13:27:48.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793375555555556, - "longitude": 24.124818333333334, - "altitude": 0.0, - "speed": 5.399570000000001, - "course": 87.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35760, - "attributes": { - "type": 18, - "sat": 11, - "distance": 56.35421201040248, - "totalDistance": 1300259.60340623, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:28:02.582+00:00", - "deviceTime": "2025-07-08T13:28:01.000+00:00", - "fixTime": "2025-07-08T13:28:01.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79332, - "longitude": 24.125539999999997, - "altitude": 0.0, - "speed": 17.818581000000002, - "course": 102.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35761, - "attributes": { - "type": 18, - "sat": 11, - "distance": 109.94740334632115, - "totalDistance": 1300369.5508095764, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:28:12.585+00:00", - "deviceTime": "2025-07-08T13:28:11.000+00:00", - "fixTime": "2025-07-08T13:28:11.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79311277777778, - "longitude": 24.126925, - "altitude": 0.0, - "speed": 16.738667, - "course": 104.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35762, - "attributes": { - "type": 18, - "sat": 11, - "distance": 100.72865040907251, - "totalDistance": 1300470.2794599854, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:28:22.581+00:00", - "deviceTime": "2025-07-08T13:28:21.000+00:00", - "fixTime": "2025-07-08T13:28:21.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.792968333333334, - "longitude": 24.128206111111112, - "altitude": 0.0, - "speed": 24.298065, - "course": 93.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35763, - "attributes": { - "type": 18, - "sat": 11, - "distance": 28.62736780278029, - "totalDistance": 1300498.9068277883, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:28:27.545+00:00", - "deviceTime": "2025-07-08T13:28:23.000+00:00", - "fixTime": "2025-07-08T13:28:23.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79299611111111, - "longitude": 24.128572777777777, - "altitude": 0.0, - "speed": 28.617721, - "course": 75.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35764, - "attributes": { - "type": 18, - "sat": 11, - "distance": 159.95644267332514, - "totalDistance": 1300658.8632704616, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:28:37.381+00:00", - "deviceTime": "2025-07-08T13:28:36.000+00:00", - "fixTime": "2025-07-08T13:28:36.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793326666666665, - "longitude": 24.130578333333332, - "altitude": 0.0, - "speed": 11.879054, - "course": 87.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35765, - "attributes": { - "type": 18, - "sat": 11, - "distance": 86.50699699750362, - "totalDistance": 1300745.370267459, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:28:47.384+00:00", - "deviceTime": "2025-07-08T13:28:46.000+00:00", - "fixTime": "2025-07-08T13:28:46.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793256666666665, - "longitude": 24.131688333333333, - "altitude": 0.0, - "speed": 29.697635000000002, - "course": 116.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35766, - "attributes": { - "type": 18, - "sat": 11, - "distance": 97.13248657807992, - "totalDistance": 1300842.502754037, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:29:03.390+00:00", - "deviceTime": "2025-07-08T13:28:56.000+00:00", - "fixTime": "2025-07-08T13:28:56.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79295222222222, - "longitude": 24.13286111111111, - "altitude": 0.0, - "speed": 21.598280000000003, - "course": 93.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35767, - "attributes": { - "type": 18, - "sat": 11, - "distance": 211.32618073936794, - "totalDistance": 1301053.8289347764, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:29:13.181+00:00", - "deviceTime": "2025-07-08T13:29:12.000+00:00", - "fixTime": "2025-07-08T13:29:12.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.792485, - "longitude": 24.1355, - "altitude": 0.0, - "speed": 30.777549, - "course": 105.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35768, - "attributes": { - "type": 18, - "sat": 11, - "distance": 157.67030699716642, - "totalDistance": 1301211.4992417735, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:29:23.190+00:00", - "deviceTime": "2025-07-08T13:29:22.000+00:00", - "fixTime": "2025-07-08T13:29:22.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79211722222222, - "longitude": 24.137461666666667, - "altitude": 0.0, - "speed": 29.697635000000002, - "course": 104.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35769, - "attributes": { - "type": 18, - "sat": 11, - "distance": 134.47607605079946, - "totalDistance": 1301345.9753178244, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:29:39.141+00:00", - "deviceTime": "2025-07-08T13:29:32.000+00:00", - "fixTime": "2025-07-08T13:29:32.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.791916111111114, - "longitude": 24.13917, - "altitude": 0.0, - "speed": 21.598280000000003, - "course": 77.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35770, - "attributes": { - "type": 18, - "sat": 11, - "distance": 94.59889861966451, - "totalDistance": 1301440.574216444, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:29:40.938+00:00", - "deviceTime": "2025-07-08T13:29:39.000+00:00", - "fixTime": "2025-07-08T13:29:39.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79237222222223, - "longitude": 24.14019833333333, - "altitude": 0.0, - "speed": 25.917936, - "course": 53.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35771, - "attributes": { - "type": 18, - "sat": 11, - "distance": 112.5078905290998, - "totalDistance": 1301553.082106973, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:29:50.984+00:00", - "deviceTime": "2025-07-08T13:29:49.000+00:00", - "fixTime": "2025-07-08T13:29:49.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79297722222222, - "longitude": 24.141359444444443, - "altitude": 0.0, - "speed": 10.799140000000001, - "course": 53.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35772, - "attributes": { - "type": 18, - "sat": 11, - "distance": 35.59194715020163, - "totalDistance": 1301588.6740541232, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:29:58.984+00:00", - "deviceTime": "2025-07-08T13:29:57.000+00:00", - "fixTime": "2025-07-08T13:29:57.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79320277777777, - "longitude": 24.141684444444444, - "altitude": 0.0, - "speed": 9.719226, - "course": 14.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35773, - "attributes": { - "type": 18, - "sat": 11, - "distance": 8.100808188188164, - "totalDistance": 1301596.7748623113, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:30:00.934+00:00", - "deviceTime": "2025-07-08T13:29:59.000+00:00", - "fixTime": "2025-07-08T13:29:59.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79327333333333, - "longitude": 24.14165888888889, - "altitude": 0.0, - "speed": 7.0194410000000005, - "course": 326.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35774, - "attributes": { - "type": 18, - "sat": 11, - "distance": 6.885579377152088, - "totalDistance": 1301603.6604416885, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:30:02.941+00:00", - "deviceTime": "2025-07-08T13:30:01.000+00:00", - "fixTime": "2025-07-08T13:30:01.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79331277777778, - "longitude": 24.141590555555556, - "altitude": 0.0, - "speed": 8.099355000000001, - "course": 293.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35775, - "attributes": { - "type": 18, - "sat": 11, - "distance": 98.30780165767568, - "totalDistance": 1301701.968243346, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:30:16.784+00:00", - "deviceTime": "2025-07-08T13:30:15.000+00:00", - "fixTime": "2025-07-08T13:30:15.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79380722222222, - "longitude": 24.14054111111111, - "altitude": 0.0, - "speed": 16.198710000000002, - "course": 339.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35776, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1301701.968243346, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:30:26.784+00:00", - "deviceTime": "2025-07-08T13:30:25.000+00:00", - "fixTime": "2025-07-08T13:30:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79380722222222, - "longitude": 24.14054111111111, - "altitude": 0.0, - "speed": 0.0, - "course": 339.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35777, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1301701.968243346, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:30:27.734+00:00", - "deviceTime": "2025-07-08T13:30:27.734+00:00", - "fixTime": "2025-07-08T13:30:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79380722222222, - "longitude": 24.14054111111111, - "altitude": 0.0, - "speed": 0.0, - "course": 339.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35778, - "attributes": { - "type": 18, - "sat": 11, - "distance": 99.95538781285299, - "totalDistance": 1301801.923631159, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:30:28.742+00:00", - "deviceTime": "2025-07-08T13:30:27.000+00:00", - "fixTime": "2025-07-08T13:30:27.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794671666666666, - "longitude": 24.140192777777777, - "altitude": 0.0, - "speed": 18.898495, - "course": 343.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35779, - "attributes": { - "type": 18, - "sat": 12, - "distance": 0.0, - "totalDistance": 1301801.923631159, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:30:38.783+00:00", - "deviceTime": "2025-07-08T13:30:37.000+00:00", - "fixTime": "2025-07-08T13:30:37.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794671666666666, - "longitude": 24.140192777777777, - "altitude": 0.0, - "speed": 0.0, - "course": 343.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35780, - "attributes": { - "type": 18, - "sat": 11, - "distance": 106.26961576424806, - "totalDistance": 1301908.1932469232, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:30:40.740+00:00", - "deviceTime": "2025-07-08T13:30:39.000+00:00", - "fixTime": "2025-07-08T13:30:39.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.795591111111115, - "longitude": 24.139824444444443, - "altitude": 0.0, - "speed": 16.738667, - "course": 345.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35781, - "attributes": { - "type": 18, - "sat": 11, - "distance": 24.14880966445486, - "totalDistance": 1301932.3420565876, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:30:45.075+00:00", - "deviceTime": "2025-07-08T13:30:43.000+00:00", - "fixTime": "2025-07-08T13:30:43.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79578222222222, - "longitude": 24.139677222222222, - "altitude": 0.0, - "speed": 10.259183, - "course": 272.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35782, - "attributes": { - "type": 18, - "sat": 11, - "distance": 13.692669721538435, - "totalDistance": 1301946.0347263091, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:30:46.937+00:00", - "deviceTime": "2025-07-08T13:30:45.000+00:00", - "fixTime": "2025-07-08T13:30:45.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.795746666666666, - "longitude": 24.139508333333332, - "altitude": 0.0, - "speed": 15.118796, - "course": 246.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35783, - "attributes": { - "type": 18, - "sat": 11, - "distance": 107.57203953702283, - "totalDistance": 1302053.6067658463, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:30:56.941+00:00", - "deviceTime": "2025-07-08T13:30:55.000+00:00", - "fixTime": "2025-07-08T13:30:55.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79521722222222, - "longitude": 24.13834888888889, - "altitude": 0.0, - "speed": 17.818581000000002, - "course": 236.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35784, - "attributes": { - "type": 18, - "sat": 11, - "distance": 71.72703441089907, - "totalDistance": 1302125.3338002572, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:31:06.985+00:00", - "deviceTime": "2025-07-08T13:31:05.000+00:00", - "fixTime": "2025-07-08T13:31:05.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794871666666666, - "longitude": 24.13756888888889, - "altitude": 0.0, - "speed": 16.738667, - "course": 219.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35785, - "attributes": { - "type": 18, - "sat": 11, - "distance": 34.45297704882243, - "totalDistance": 1302159.786777306, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:31:10.938+00:00", - "deviceTime": "2025-07-08T13:31:09.000+00:00", - "fixTime": "2025-07-08T13:31:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79460111111111, - "longitude": 24.137353333333333, - "altitude": 0.0, - "speed": 12.419011000000001, - "course": 200.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35786, - "attributes": { - "type": 18, - "sat": 11, - "distance": 47.36205415627431, - "totalDistance": 1302207.1488314625, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:31:23.783+00:00", - "deviceTime": "2025-07-08T13:31:22.000+00:00", - "fixTime": "2025-07-08T13:31:22.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79420944444445, - "longitude": 24.137114999999998, - "altitude": 0.0, - "speed": 10.799140000000001, - "course": 157.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35787, - "attributes": { - "type": 18, - "sat": 11, - "distance": 60.80382505026207, - "totalDistance": 1302267.9526565128, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:31:33.805+00:00", - "deviceTime": "2025-07-08T13:31:32.000+00:00", - "fixTime": "2025-07-08T13:31:32.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79369, - "longitude": 24.13735722222222, - "altitude": 0.0, - "speed": 8.099355000000001, - "course": 181.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35788, - "attributes": { - "type": 18, - "sat": 11, - "distance": 9.611139352282278, - "totalDistance": 1302277.563795865, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:31:35.735+00:00", - "deviceTime": "2025-07-08T13:31:34.000+00:00", - "fixTime": "2025-07-08T13:31:34.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79360777777778, - "longitude": 24.137319444444447, - "altitude": 0.0, - "speed": 11.339097, - "course": 209.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35789, - "attributes": { - "type": 18, - "sat": 11, - "distance": 72.98672825827144, - "totalDistance": 1302350.5505241232, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:31:45.793+00:00", - "deviceTime": "2025-07-08T13:31:44.000+00:00", - "fixTime": "2025-07-08T13:31:44.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79304888888888, - "longitude": 24.13682777777778, - "altitude": 0.0, - "speed": 12.419011000000001, - "course": 240.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35790, - "attributes": { - "type": 18, - "sat": 11, - "distance": 43.601666144302804, - "totalDistance": 1302394.1521902676, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:31:58.583+00:00", - "deviceTime": "2025-07-08T13:31:57.000+00:00", - "fixTime": "2025-07-08T13:31:57.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.792901666666666, - "longitude": 24.13630722222222, - "altitude": 0.0, - "speed": 14.038882000000001, - "course": 292.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35791, - "attributes": { - "type": 18, - "sat": 11, - "distance": 39.367514209258616, - "totalDistance": 1302433.519704477, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:32:04.591+00:00", - "deviceTime": "2025-07-08T13:32:03.000+00:00", - "fixTime": "2025-07-08T13:32:03.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79306555555555, - "longitude": 24.135857777777776, - "altitude": 0.0, - "speed": 9.719226, - "course": 311.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35792, - "attributes": { - "type": 18, - "sat": 11, - "distance": 26.281003507638715, - "totalDistance": 1302459.8007079845, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:32:08.542+00:00", - "deviceTime": "2025-07-08T13:32:07.000+00:00", - "fixTime": "2025-07-08T13:32:07.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79324888888888, - "longitude": 24.135644444444445, - "altitude": 0.0, - "speed": 12.958968, - "course": 340.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35793, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302459.8007079845, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:32:18.591+00:00", - "deviceTime": "2025-07-08T13:32:17.000+00:00", - "fixTime": "2025-07-08T13:32:17.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79324888888888, - "longitude": 24.135644444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 340.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35794, - "attributes": { - "type": 18, - "sat": 11, - "distance": 75.15615898399354, - "totalDistance": 1302534.9568669684, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:32:25.391+00:00", - "deviceTime": "2025-07-08T13:32:24.000+00:00", - "fixTime": "2025-07-08T13:32:24.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79391333333333, - "longitude": 24.135472777777778, - "altitude": 0.0, - "speed": 8.099355000000001, - "course": 52.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35795, - "attributes": { - "type": 18, - "sat": 11, - "distance": 7.635992598843165, - "totalDistance": 1302542.5928595674, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:32:27.335+00:00", - "deviceTime": "2025-07-08T13:32:26.000+00:00", - "fixTime": "2025-07-08T13:32:26.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793937222222226, - "longitude": 24.135565, - "altitude": 0.0, - "speed": 8.099355000000001, - "course": 82.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35796, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302542.5928595674, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:32:37.391+00:00", - "deviceTime": "2025-07-08T13:32:36.000+00:00", - "fixTime": "2025-07-08T13:32:36.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793937222222226, - "longitude": 24.135565, - "altitude": 0.0, - "speed": 0.0, - "course": 82.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35797, - "attributes": { - "type": 18, - "sat": 11, - "distance": 80.9536704521117, - "totalDistance": 1302623.5465300195, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:32:39.346+00:00", - "deviceTime": "2025-07-08T13:32:38.000+00:00", - "fixTime": "2025-07-08T13:32:38.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794137222222226, - "longitude": 24.136567777777778, - "altitude": 0.0, - "speed": 12.958968, - "course": 74.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35798, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302623.5465300195, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:32:49.389+00:00", - "deviceTime": "2025-07-08T13:32:48.000+00:00", - "fixTime": "2025-07-08T13:32:48.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794137222222226, - "longitude": 24.136567777777778, - "altitude": 0.0, - "speed": 0.0, - "course": 74.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35799, - "attributes": { - "type": 18, - "sat": 11, - "distance": 45.01657827311091, - "totalDistance": 1302668.5631082926, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:32:51.349+00:00", - "deviceTime": "2025-07-08T13:32:50.000+00:00", - "fixTime": "2025-07-08T13:32:50.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79427555555555, - "longitude": 24.137112777777777, - "altitude": 0.0, - "speed": 9.179269, - "course": 48.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35800, - "attributes": { - "type": 18, - "sat": 11, - "distance": 8.771887770805936, - "totalDistance": 1302677.3349960635, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:32:56.341+00:00", - "deviceTime": "2025-07-08T13:32:52.000+00:00", - "fixTime": "2025-07-08T13:32:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79434055555555, - "longitude": 24.13717666666667, - "altitude": 0.0, - "speed": 7.0194410000000005, - "course": 32.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35801, - "attributes": { - "type": 18, - "sat": 11, - "distance": 24.649645028482002, - "totalDistance": 1302701.984641092, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:32:58.141+00:00", - "deviceTime": "2025-07-08T13:32:57.000+00:00", - "fixTime": "2025-07-08T13:32:57.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794376666666665, - "longitude": 24.13749, - "altitude": 0.0, - "speed": 14.578839, - "course": 98.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35802, - "attributes": { - "type": 18, - "sat": 11, - "distance": 85.22256041310513, - "totalDistance": 1302787.207201505, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:33:08.189+00:00", - "deviceTime": "2025-07-08T13:33:07.000+00:00", - "fixTime": "2025-07-08T13:33:07.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79421, - "longitude": 24.138561666666664, - "altitude": 0.0, - "speed": 12.419011000000001, - "course": 110.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35803, - "attributes": { - "type": 18, - "sat": 11, - "distance": 12.612299200994313, - "totalDistance": 1302799.8195007062, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:33:10.137+00:00", - "deviceTime": "2025-07-08T13:33:09.000+00:00", - "fixTime": "2025-07-08T13:33:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794150555555554, - "longitude": 24.1387, - "altitude": 0.0, - "speed": 10.799140000000001, - "course": 126.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35804, - "attributes": { - "type": 18, - "sat": 11, - "distance": 9.000481317329305, - "totalDistance": 1302808.8199820234, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:33:12.144+00:00", - "deviceTime": "2025-07-08T13:33:11.000+00:00", - "fixTime": "2025-07-08T13:33:11.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79411166666667, - "longitude": 24.13880166666667, - "altitude": 0.0, - "speed": 5.939527, - "course": 111.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35805, - "attributes": { - "type": 18, - "sat": 11, - "distance": 10.67648394086922, - "totalDistance": 1302819.4964659642, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:33:16.144+00:00", - "deviceTime": "2025-07-08T13:33:15.000+00:00", - "fixTime": "2025-07-08T13:33:15.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 5.399570000000001, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35806, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:33:29.145+00:00", - "deviceTime": "2025-07-08T13:33:25.000+00:00", - "fixTime": "2025-07-08T13:33:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35807, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:33:38.990+00:00", - "deviceTime": "2025-07-08T13:33:37.000+00:00", - "fixTime": "2025-07-08T13:33:37.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35808, - "attributes": { - "type": 19, - "status": 68, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:33:39.936+00:00", - "deviceTime": "2025-07-08T13:33:39.936+00:00", - "fixTime": "2025-07-08T13:33:37.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35809, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:33:40.936+00:00", - "deviceTime": "2025-07-08T13:33:38.000+00:00", - "fixTime": "2025-07-08T13:33:38.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35810, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:33:49.085+00:00", - "deviceTime": "2025-07-08T13:33:47.000+00:00", - "fixTime": "2025-07-08T13:33:47.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35811, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:34:01.942+00:00", - "deviceTime": "2025-07-08T13:33:57.000+00:00", - "fixTime": "2025-07-08T13:33:57.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35812, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:34:11.791+00:00", - "deviceTime": "2025-07-08T13:34:10.000+00:00", - "fixTime": "2025-07-08T13:34:10.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35813, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:34:21.792+00:00", - "deviceTime": "2025-07-08T13:34:20.000+00:00", - "fixTime": "2025-07-08T13:34:20.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35814, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:34:34.740+00:00", - "deviceTime": "2025-07-08T13:34:30.000+00:00", - "fixTime": "2025-07-08T13:34:30.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35815, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:34:44.591+00:00", - "deviceTime": "2025-07-08T13:34:43.000+00:00", - "fixTime": "2025-07-08T13:34:43.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35816, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:34:54.592+00:00", - "deviceTime": "2025-07-08T13:34:53.000+00:00", - "fixTime": "2025-07-08T13:34:53.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35817, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:35:07.468+00:00", - "deviceTime": "2025-07-08T13:35:03.000+00:00", - "fixTime": "2025-07-08T13:35:03.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35818, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:35:11.344+00:00", - "deviceTime": "2025-07-08T13:35:11.344+00:00", - "fixTime": "2025-07-08T13:35:03.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35819, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:35:17.391+00:00", - "deviceTime": "2025-07-08T13:35:16.000+00:00", - "fixTime": "2025-07-08T13:35:16.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35820, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:35:27.391+00:00", - "deviceTime": "2025-07-08T13:35:26.000+00:00", - "fixTime": "2025-07-08T13:35:26.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35821, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:35:40.341+00:00", - "deviceTime": "2025-07-08T13:35:36.000+00:00", - "fixTime": "2025-07-08T13:35:36.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35822, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:35:50.190+00:00", - "deviceTime": "2025-07-08T13:35:49.000+00:00", - "fixTime": "2025-07-08T13:35:49.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35823, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302819.4964659642, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:36:00.191+00:00", - "deviceTime": "2025-07-08T13:35:59.000+00:00", - "fixTime": "2025-07-08T13:35:59.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794045000000004, - "longitude": 24.13890055555556, - "altitude": 0.0, - "speed": 0.0, - "course": 183.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35824, - "attributes": { - "type": 18, - "sat": 11, - "distance": 10.530824883646163, - "totalDistance": 1302830.0272908479, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:36:06.192+00:00", - "deviceTime": "2025-07-08T13:36:05.000+00:00", - "fixTime": "2025-07-08T13:36:05.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793950555555554, - "longitude": 24.138908333333333, - "altitude": 0.0, - "speed": 0.0, - "course": 229.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35825, - "attributes": { - "type": 18, - "sat": 11, - "distance": 7.270556507154314, - "totalDistance": 1302837.297847355, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:36:14.194+00:00", - "deviceTime": "2025-07-08T13:36:13.000+00:00", - "fixTime": "2025-07-08T13:36:13.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793945, - "longitude": 24.13900166666667, - "altitude": 0.0, - "speed": 6.479484, - "course": 56.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35826, - "attributes": { - "type": 18, - "sat": 11, - "distance": 19.85359781027848, - "totalDistance": 1302857.1514451653, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:36:24.191+00:00", - "deviceTime": "2025-07-08T13:36:23.000+00:00", - "fixTime": "2025-07-08T13:36:23.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79405166666667, - "longitude": 24.139206666666666, - "altitude": 0.0, - "speed": 10.799140000000001, - "course": 109.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35827, - "attributes": { - "type": 18, - "sat": 11, - "distance": 88.3138934588258, - "totalDistance": 1302945.465338624, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:36:34.136+00:00", - "deviceTime": "2025-07-08T13:36:33.000+00:00", - "fixTime": "2025-07-08T13:36:33.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793751666666665, - "longitude": 24.14026, - "altitude": 0.0, - "speed": 12.419011000000001, - "course": 111.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35828, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1302945.465338624, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:36:44.594+00:00", - "deviceTime": "2025-07-08T13:36:43.000+00:00", - "fixTime": "2025-07-08T13:36:43.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793751666666665, - "longitude": 24.14026, - "altitude": 0.0, - "speed": 0.0, - "course": 111.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35829, - "attributes": { - "type": 18, - "sat": 11, - "distance": 78.9481511446473, - "totalDistance": 1303024.4134897687, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:36:52.615+00:00", - "deviceTime": "2025-07-08T13:36:51.000+00:00", - "fixTime": "2025-07-08T13:36:51.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79345333333334, - "longitude": 24.141182777777775, - "altitude": 0.0, - "speed": 7.0194410000000005, - "course": 111.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35830, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1303024.4134897687, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:37:02.593+00:00", - "deviceTime": "2025-07-08T13:37:01.000+00:00", - "fixTime": "2025-07-08T13:37:01.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79345333333334, - "longitude": 24.141182777777775, - "altitude": 0.0, - "speed": 0.0, - "course": 111.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35831, - "attributes": { - "type": 18, - "sat": 11, - "distance": 21.302356543734977, - "totalDistance": 1303045.7158463125, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:37:04.543+00:00", - "deviceTime": "2025-07-08T13:37:03.000+00:00", - "fixTime": "2025-07-08T13:37:03.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79333944444444, - "longitude": 24.141403333333333, - "altitude": 0.0, - "speed": 0.0, - "course": 137.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35832, - "attributes": { - "type": 18, - "sat": 11, - "distance": 39.19879558330133, - "totalDistance": 1303084.9146418958, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:37:15.400+00:00", - "deviceTime": "2025-07-08T13:37:14.000+00:00", - "fixTime": "2025-07-08T13:37:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793279999999996, - "longitude": 24.14190111111111, - "altitude": 0.0, - "speed": 20.518366, - "course": 61.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35833, - "attributes": { - "type": 18, - "sat": 11, - "distance": 116.05492647579716, - "totalDistance": 1303200.9695683715, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:37:25.396+00:00", - "deviceTime": "2025-07-08T13:37:24.000+00:00", - "fixTime": "2025-07-08T13:37:24.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793773333333334, - "longitude": 24.143218333333333, - "altitude": 0.0, - "speed": 36.177119000000005, - "course": 62.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35834, - "attributes": { - "type": 18, - "sat": 11, - "distance": 67.1529980669277, - "totalDistance": 1303268.1225664385, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:37:29.340+00:00", - "deviceTime": "2025-07-08T13:37:28.000+00:00", - "fixTime": "2025-07-08T13:37:28.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.794024444444446, - "longitude": 24.144005, - "altitude": 0.0, - "speed": 26.457893000000002, - "course": 77.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35835, - "attributes": { - "type": 18, - "sat": 11, - "distance": 22.839274049131397, - "totalDistance": 1303290.9618404876, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:37:31.349+00:00", - "deviceTime": "2025-07-08T13:37:30.000+00:00", - "fixTime": "2025-07-08T13:37:30.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79400388888889, - "longitude": 24.14429777777778, - "altitude": 0.0, - "speed": 18.898495, - "course": 107.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35836, - "attributes": { - "type": 18, - "sat": 11, - "distance": 21.572112810167887, - "totalDistance": 1303312.5339532977, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:37:33.347+00:00", - "deviceTime": "2025-07-08T13:37:32.000+00:00", - "fixTime": "2025-07-08T13:37:32.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79384277777778, - "longitude": 24.14445222222222, - "altitude": 0.0, - "speed": 17.818581000000002, - "course": 155.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35837, - "attributes": { - "type": 18, - "sat": 11, - "distance": 18.429615279366033, - "totalDistance": 1303330.963568577, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:37:35.347+00:00", - "deviceTime": "2025-07-08T13:37:34.000+00:00", - "fixTime": "2025-07-08T13:37:34.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79367777777777, - "longitude": 24.144471666666668, - "altitude": 0.0, - "speed": 16.738667, - "course": 191.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35838, - "attributes": { - "type": 18, - "sat": 11, - "distance": 24.279130191837275, - "totalDistance": 1303355.2426987689, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:37:37.347+00:00", - "deviceTime": "2025-07-08T13:37:36.000+00:00", - "fixTime": "2025-07-08T13:37:36.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79348833333333, - "longitude": 24.14431666666667, - "altitude": 0.0, - "speed": 24.838022000000002, - "course": 210.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35839, - "attributes": { - "type": 18, - "sat": 11, - "distance": 73.65020586474118, - "totalDistance": 1303428.8929046337, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:37:49.339+00:00", - "deviceTime": "2025-07-08T13:37:42.000+00:00", - "fixTime": "2025-07-08T13:37:42.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79291944444444, - "longitude": 24.143832222222223, - "altitude": 0.0, - "speed": 15.658753, - "course": 194.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35840, - "attributes": { - "type": 18, - "sat": 11, - "distance": 64.66788738376884, - "totalDistance": 1303493.5607920175, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:37:51.144+00:00", - "deviceTime": "2025-07-08T13:37:50.000+00:00", - "fixTime": "2025-07-08T13:37:50.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79239611111111, - "longitude": 24.14419388888889, - "altitude": 0.0, - "speed": 17.818581000000002, - "course": 138.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35841, - "attributes": { - "type": 18, - "sat": 11, - "distance": 94.48133912574541, - "totalDistance": 1303588.0421311432, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:01.193+00:00", - "deviceTime": "2025-07-08T13:38:00.000+00:00", - "fixTime": "2025-07-08T13:38:00.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79178222222222, - "longitude": 24.145034444444445, - "altitude": 0.0, - "speed": 17.818581000000002, - "course": 138.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35842, - "attributes": { - "type": 18, - "sat": 11, - "distance": 85.29386499150304, - "totalDistance": 1303673.3359961347, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:11.193+00:00", - "deviceTime": "2025-07-08T13:38:10.000+00:00", - "fixTime": "2025-07-08T13:38:10.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79123444444445, - "longitude": 24.145802777777778, - "altitude": 0.0, - "speed": 14.038882000000001, - "course": 115.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35843, - "attributes": { - "type": 18, - "sat": 11, - "distance": 29.304430943617024, - "totalDistance": 1303702.6404270784, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:15.142+00:00", - "deviceTime": "2025-07-08T13:38:14.000+00:00", - "fixTime": "2025-07-08T13:38:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79129555555556, - "longitude": 24.146169999999998, - "altitude": 0.0, - "speed": 15.118796, - "course": 48.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35844, - "attributes": { - "type": 18, - "sat": 11, - "distance": 90.63790573684454, - "totalDistance": 1303793.2783328153, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:27.231+00:00", - "deviceTime": "2025-07-08T13:38:25.000+00:00", - "fixTime": "2025-07-08T13:38:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79174944444445, - "longitude": 24.147139444444445, - "altitude": 0.0, - "speed": 14.578839, - "course": 67.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35845, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1303793.2783328153, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:28.940+00:00", - "deviceTime": "2025-07-08T13:38:28.940+00:00", - "fixTime": "2025-07-08T13:38:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79174944444445, - "longitude": 24.147139444444445, - "altitude": 0.0, - "speed": 14.578839, - "course": 67.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35846, - "attributes": { - "type": 18, - "sat": 11, - "distance": 15.148902681035652, - "totalDistance": 1303808.4272354962, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:29.940+00:00", - "deviceTime": "2025-07-08T13:38:27.000+00:00", - "fixTime": "2025-07-08T13:38:27.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.791780555555555, - "longitude": 24.147329444444445, - "altitude": 0.0, - "speed": 14.038882000000001, - "course": 90.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35847, - "attributes": { - "type": 18, - "sat": 11, - "distance": 13.688666405454994, - "totalDistance": 1303822.1159019016, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:30.940+00:00", - "deviceTime": "2025-07-08T13:38:29.000+00:00", - "fixTime": "2025-07-08T13:38:29.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79174388888889, - "longitude": 24.14749777777778, - "altitude": 0.0, - "speed": 12.958968, - "course": 127.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35848, - "attributes": { - "type": 18, - "sat": 11, - "distance": 39.383842088124325, - "totalDistance": 1303861.4997439897, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:36.990+00:00", - "deviceTime": "2025-07-08T13:38:35.000+00:00", - "fixTime": "2025-07-08T13:38:35.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.791491111111114, - "longitude": 24.14785277777778, - "altitude": 0.0, - "speed": 10.799140000000001, - "course": 142.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35849, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1303861.4997439897, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:46.999+00:00", - "deviceTime": "2025-07-08T13:38:45.000+00:00", - "fixTime": "2025-07-08T13:38:45.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.791491111111114, - "longitude": 24.14785277777778, - "altitude": 0.0, - "speed": 0.0, - "course": 142.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35850, - "attributes": { - "type": 18, - "sat": 11, - "distance": 68.1542470860577, - "totalDistance": 1303929.6539910757, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:48.947+00:00", - "deviceTime": "2025-07-08T13:38:47.000+00:00", - "fixTime": "2025-07-08T13:38:47.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79098333333334, - "longitude": 24.148343333333337, - "altitude": 0.0, - "speed": 12.419011000000001, - "course": 157.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35851, - "attributes": { - "type": 18, - "sat": 11, - "distance": 11.147644454274445, - "totalDistance": 1303940.80163553, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:50.947+00:00", - "deviceTime": "2025-07-08T13:38:49.000+00:00", - "fixTime": "2025-07-08T13:38:49.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790907222222216, - "longitude": 24.148436666666665, - "altitude": 0.0, - "speed": 9.719226, - "course": 123.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35852, - "attributes": { - "type": 18, - "sat": 11, - "distance": 10.758772010663272, - "totalDistance": 1303951.5604075408, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:52.940+00:00", - "deviceTime": "2025-07-08T13:38:51.000+00:00", - "fixTime": "2025-07-08T13:38:51.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79089666666666, - "longitude": 24.148574444444442, - "altitude": 0.0, - "speed": 11.879054, - "course": 79.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35853, - "attributes": { - "type": 18, - "sat": 11, - "distance": 13.976918576225668, - "totalDistance": 1303965.537326117, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:57.940+00:00", - "deviceTime": "2025-07-08T13:38:53.000+00:00", - "fixTime": "2025-07-08T13:38:53.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79098666666667, - "longitude": 24.1487, - "altitude": 0.0, - "speed": 18.358538, - "course": 20.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35854, - "attributes": { - "type": 18, - "sat": 11, - "distance": 60.19370931230165, - "totalDistance": 1304025.7310354293, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:38:59.748+00:00", - "deviceTime": "2025-07-08T13:38:58.000+00:00", - "fixTime": "2025-07-08T13:38:58.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79139333333333, - "longitude": 24.14921111111111, - "altitude": 0.0, - "speed": 24.838022000000002, - "course": 49.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35855, - "attributes": { - "type": 18, - "sat": 11, - "distance": 136.02526906002976, - "totalDistance": 1304161.7563044892, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:39:09.790+00:00", - "deviceTime": "2025-07-08T13:39:08.000+00:00", - "fixTime": "2025-07-08T13:39:08.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.792145000000005, - "longitude": 24.150592777777778, - "altitude": 0.0, - "speed": 28.077764000000002, - "course": 51.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35856, - "attributes": { - "type": 18, - "sat": 11, - "distance": 158.81094878054262, - "totalDistance": 1304320.5672532697, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:39:19.798+00:00", - "deviceTime": "2025-07-08T13:39:18.000+00:00", - "fixTime": "2025-07-08T13:39:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79298222222222, - "longitude": 24.152249444444443, - "altitude": 0.0, - "speed": 32.397420000000004, - "course": 54.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35857, - "attributes": { - "type": 18, - "sat": 11, - "distance": 190.51955333910212, - "totalDistance": 1304511.0868066088, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:39:32.591+00:00", - "deviceTime": "2025-07-08T13:39:31.000+00:00", - "fixTime": "2025-07-08T13:39:31.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.793974444444444, - "longitude": 24.154249444444442, - "altitude": 0.0, - "speed": 14.578839, - "course": 53.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35858, - "attributes": { - "type": 18, - "sat": 11, - "distance": 12.787858579095316, - "totalDistance": 1304523.874665188, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:39:34.548+00:00", - "deviceTime": "2025-07-08T13:39:33.000+00:00", - "fixTime": "2025-07-08T13:39:33.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79401, - "longitude": 24.15440611111111, - "altitude": 0.0, - "speed": 11.339097, - "course": 101.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35859, - "attributes": { - "type": 18, - "sat": 11, - "distance": 12.20326258863362, - "totalDistance": 1304536.0779277766, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:39:36.541+00:00", - "deviceTime": "2025-07-08T13:39:35.000+00:00", - "fixTime": "2025-07-08T13:39:35.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79394777777778, - "longitude": 24.154535555555555, - "altitude": 0.0, - "speed": 12.958968, - "course": 135.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35860, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1304536.0779277766, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:39:46.591+00:00", - "deviceTime": "2025-07-08T13:39:45.000+00:00", - "fixTime": "2025-07-08T13:39:45.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79394777777778, - "longitude": 24.154535555555555, - "altitude": 0.0, - "speed": 0.0, - "course": 135.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35861, - "attributes": { - "type": 18, - "sat": 11, - "distance": 81.3872861045129, - "totalDistance": 1304617.465213881, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:39:54.591+00:00", - "deviceTime": "2025-07-08T13:39:53.000+00:00", - "fixTime": "2025-07-08T13:39:53.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79338666666667, - "longitude": 24.155207777777775, - "altitude": 0.0, - "speed": 19.438452, - "course": 134.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35862, - "attributes": { - "type": 18, - "sat": 11, - "distance": 112.03729440148814, - "totalDistance": 1304729.5025082827, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:40:07.391+00:00", - "deviceTime": "2025-07-08T13:40:06.000+00:00", - "fixTime": "2025-07-08T13:40:06.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79257777777777, - "longitude": 24.156066666666668, - "altitude": 0.0, - "speed": 18.898495, - "course": 146.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35863, - "attributes": { - "type": 18, - "sat": 11, - "distance": 43.89040768502504, - "totalDistance": 1304773.3929159676, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:40:13.346+00:00", - "deviceTime": "2025-07-08T13:40:12.000+00:00", - "fixTime": "2025-07-08T13:40:12.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79224, - "longitude": 24.156358333333333, - "altitude": 0.0, - "speed": 10.259183, - "course": 163.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35864, - "attributes": { - "type": 18, - "sat": 11, - "distance": 12.040319998423746, - "totalDistance": 1304785.4332359661, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:40:15.345+00:00", - "deviceTime": "2025-07-08T13:40:14.000+00:00", - "fixTime": "2025-07-08T13:40:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.792135, - "longitude": 24.15632111111111, - "altitude": 0.0, - "speed": 14.578839, - "course": 220.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35865, - "attributes": { - "type": 18, - "sat": 11, - "distance": 16.597494690261545, - "totalDistance": 1304802.0307306563, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:40:17.346+00:00", - "deviceTime": "2025-07-08T13:40:16.000+00:00", - "fixTime": "2025-07-08T13:40:16.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79204111111111, - "longitude": 24.156155000000002, - "altitude": 0.0, - "speed": 14.038882000000001, - "course": 236.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35866, - "attributes": { - "type": 18, - "sat": 11, - "distance": 74.64252091105216, - "totalDistance": 1304876.6732515674, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:40:27.391+00:00", - "deviceTime": "2025-07-08T13:40:26.000+00:00", - "fixTime": "2025-07-08T13:40:26.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79165, - "longitude": 24.15537388888889, - "altitude": 0.0, - "speed": 15.658753, - "course": 236.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35867, - "attributes": { - "type": 18, - "sat": 11, - "distance": 102.16920522812626, - "totalDistance": 1304978.8424567955, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:40:40.198+00:00", - "deviceTime": "2025-07-08T13:40:38.000+00:00", - "fixTime": "2025-07-08T13:40:38.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.791112777777776, - "longitude": 24.154306666666667, - "altitude": 0.0, - "speed": 16.198710000000002, - "course": 238.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35868, - "attributes": { - "type": 18, - "sat": 11, - "distance": 90.87394605878393, - "totalDistance": 1305069.7164028543, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:40:50.198+00:00", - "deviceTime": "2025-07-08T13:40:49.000+00:00", - "fixTime": "2025-07-08T13:40:49.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79065, - "longitude": 24.153342222222225, - "altitude": 0.0, - "speed": 12.419011000000001, - "course": 236.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35869, - "attributes": { - "type": 18, - "sat": 11, - "distance": 26.74805209525514, - "totalDistance": 1305096.4644549496, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:40:56.144+00:00", - "deviceTime": "2025-07-08T13:40:54.000+00:00", - "fixTime": "2025-07-08T13:40:54.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790508333333335, - "longitude": 24.153063888888887, - "altitude": 0.0, - "speed": 7.559398, - "course": 215.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35870, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305096.4644549496, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:41:09.141+00:00", - "deviceTime": "2025-07-08T13:41:05.000+00:00", - "fixTime": "2025-07-08T13:41:05.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790508333333335, - "longitude": 24.153063888888887, - "altitude": 0.0, - "speed": 0.0, - "course": 215.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35871, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305096.4644549496, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:41:18.989+00:00", - "deviceTime": "2025-07-08T13:41:17.000+00:00", - "fixTime": "2025-07-08T13:41:17.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790508333333335, - "longitude": 24.153063888888887, - "altitude": 0.0, - "speed": 0.0, - "course": 215.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35872, - "attributes": { - "type": 18, - "sat": 11, - "distance": 13.915537716508362, - "totalDistance": 1305110.3799926662, - "motion": true, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:41:28.989+00:00", - "deviceTime": "2025-07-08T13:41:27.000+00:00", - "fixTime": "2025-07-08T13:41:27.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79038333333333, - "longitude": 24.153062222222225, - "altitude": 0.0, - "speed": 6.479484, - "course": 152.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35873, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305110.3799926662, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:41:41.950+00:00", - "deviceTime": "2025-07-08T13:41:37.000+00:00", - "fixTime": "2025-07-08T13:41:37.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79038333333333, - "longitude": 24.153062222222225, - "altitude": 0.0, - "speed": 0.0, - "course": 152.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35874, - "attributes": { - "type": 18, - "sat": 11, - "distance": 1.5582164612370426, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:41:43.747+00:00", - "deviceTime": "2025-07-08T13:41:42.000+00:00", - "fixTime": "2025-07-08T13:41:42.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35875, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:41:45.747+00:00", - "deviceTime": "2025-07-08T13:41:45.747+00:00", - "fixTime": "2025-07-08T13:41:42.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35876, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:41:54.088+00:00", - "deviceTime": "2025-07-08T13:41:52.000+00:00", - "fixTime": "2025-07-08T13:41:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35877, - "attributes": { - "type": 19, - "status": 68, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:42:02.791+00:00", - "deviceTime": "2025-07-08T13:42:02.791+00:00", - "fixTime": "2025-07-08T13:41:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35878, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:42:03.741+00:00", - "deviceTime": "2025-07-08T13:42:02.000+00:00", - "fixTime": "2025-07-08T13:42:02.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35879, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:42:16.590+00:00", - "deviceTime": "2025-07-08T13:42:15.000+00:00", - "fixTime": "2025-07-08T13:42:15.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35880, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:42:26.606+00:00", - "deviceTime": "2025-07-08T13:42:25.000+00:00", - "fixTime": "2025-07-08T13:42:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35881, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:42:36.592+00:00", - "deviceTime": "2025-07-08T13:42:35.000+00:00", - "fixTime": "2025-07-08T13:42:35.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35882, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:42:49.392+00:00", - "deviceTime": "2025-07-08T13:42:48.000+00:00", - "fixTime": "2025-07-08T13:42:48.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35883, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:42:59.390+00:00", - "deviceTime": "2025-07-08T13:42:58.000+00:00", - "fixTime": "2025-07-08T13:42:58.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35884, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:43:09.392+00:00", - "deviceTime": "2025-07-08T13:43:08.000+00:00", - "fixTime": "2025-07-08T13:43:08.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35885, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:43:22.190+00:00", - "deviceTime": "2025-07-08T13:43:21.000+00:00", - "fixTime": "2025-07-08T13:43:21.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35886, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:43:32.146+00:00", - "deviceTime": "2025-07-08T13:43:31.000+00:00", - "fixTime": "2025-07-08T13:43:31.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35887, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:43:42.199+00:00", - "deviceTime": "2025-07-08T13:43:41.000+00:00", - "fixTime": "2025-07-08T13:43:41.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35888, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:43:54.990+00:00", - "deviceTime": "2025-07-08T13:43:53.000+00:00", - "fixTime": "2025-07-08T13:43:53.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35889, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:44:05.121+00:00", - "deviceTime": "2025-07-08T13:44:03.000+00:00", - "fixTime": "2025-07-08T13:44:03.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35890, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:44:14.997+00:00", - "deviceTime": "2025-07-08T13:44:13.000+00:00", - "fixTime": "2025-07-08T13:44:13.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35891, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:44:27.793+00:00", - "deviceTime": "2025-07-08T13:44:26.000+00:00", - "fixTime": "2025-07-08T13:44:26.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35892, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:44:37.813+00:00", - "deviceTime": "2025-07-08T13:44:36.000+00:00", - "fixTime": "2025-07-08T13:44:36.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35893, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:44:47.790+00:00", - "deviceTime": "2025-07-08T13:44:46.000+00:00", - "fixTime": "2025-07-08T13:44:46.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35894, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:45:00.650+00:00", - "deviceTime": "2025-07-08T13:44:59.000+00:00", - "fixTime": "2025-07-08T13:44:59.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35895, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:45:10.592+00:00", - "deviceTime": "2025-07-08T13:45:09.000+00:00", - "fixTime": "2025-07-08T13:45:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35896, - "attributes": { - "type": 19, - "status": 68, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305111.9382091274, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:45:19.609+00:00", - "deviceTime": "2025-07-08T13:45:19.609+00:00", - "fixTime": "2025-07-08T13:45:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79037, - "longitude": 24.153068333333334, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35897, - "attributes": { - "type": 18, - "sat": 11, - "distance": 3.0689826510710456, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:45:20.546+00:00", - "deviceTime": "2025-07-08T13:45:18.000+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35898, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:48:40.022+00:00", - "deviceTime": "2025-07-08T13:48:40.022+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35899, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:52:06.231+00:00", - "deviceTime": "2025-07-08T13:52:06.231+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35900, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:55:29.453+00:00", - "deviceTime": "2025-07-08T13:55:29.453+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35901, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T13:58:52.671+00:00", - "deviceTime": "2025-07-08T13:58:52.671+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35902, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:02:09.490+00:00", - "deviceTime": "2025-07-08T14:02:09.490+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35903, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:05:26.501+00:00", - "deviceTime": "2025-07-08T14:05:26.501+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35904, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:08:46.720+00:00", - "deviceTime": "2025-07-08T14:08:46.720+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35905, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:12:09.754+00:00", - "deviceTime": "2025-07-08T14:12:09.754+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35906, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:15:26.768+00:00", - "deviceTime": "2025-07-08T14:15:26.768+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35907, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:18:46.581+00:00", - "deviceTime": "2025-07-08T14:18:46.581+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35908, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:22:12.397+00:00", - "deviceTime": "2025-07-08T14:22:12.397+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35909, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:25:29.211+00:00", - "deviceTime": "2025-07-08T14:25:29.211+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35910, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:28:46.030+00:00", - "deviceTime": "2025-07-08T14:28:46.030+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35911, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:32:05.962+00:00", - "deviceTime": "2025-07-08T14:32:05.962+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35912, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:35:25.860+00:00", - "deviceTime": "2025-07-08T14:35:25.860+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35913, - "attributes": { - "type": 19, - "status": 6, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.0071917784, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:36:15.439+00:00", - "deviceTime": "2025-07-08T14:36:15.439+00:00", - "fixTime": "2025-07-08T13:45:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790395000000004, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35914, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.13099006306462, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:38:20.679+00:00", - "deviceTime": "2025-07-08T14:38:19.000+00:00", - "fixTime": "2025-07-08T14:38:19.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35915, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:38:21.620+00:00", - "deviceTime": "2025-07-08T14:38:19.000+00:00", - "fixTime": "2025-07-08T14:38:19.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35916, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:38:33.471+00:00", - "deviceTime": "2025-07-08T14:38:32.000+00:00", - "fixTime": "2025-07-08T14:38:32.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35917, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:38:43.473+00:00", - "deviceTime": "2025-07-08T14:38:42.000+00:00", - "fixTime": "2025-07-08T14:38:42.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35918, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:38:53.477+00:00", - "deviceTime": "2025-07-08T14:38:52.000+00:00", - "fixTime": "2025-07-08T14:38:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35919, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:39:06.278+00:00", - "deviceTime": "2025-07-08T14:39:05.000+00:00", - "fixTime": "2025-07-08T14:39:05.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35920, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:39:16.271+00:00", - "deviceTime": "2025-07-08T14:39:15.000+00:00", - "fixTime": "2025-07-08T14:39:15.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35921, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:39:26.268+00:00", - "deviceTime": "2025-07-08T14:39:25.000+00:00", - "fixTime": "2025-07-08T14:39:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35922, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:39:38.080+00:00", - "deviceTime": "2025-07-08T14:39:38.080+00:00", - "fixTime": "2025-07-08T14:39:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35923, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:39:39.015+00:00", - "deviceTime": "2025-07-08T14:39:38.000+00:00", - "fixTime": "2025-07-08T14:39:38.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35924, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:39:47.126+00:00", - "deviceTime": "2025-07-08T14:39:45.000+00:00", - "fixTime": "2025-07-08T14:39:45.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35925, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:39:57.070+00:00", - "deviceTime": "2025-07-08T14:39:55.000+00:00", - "fixTime": "2025-07-08T14:39:55.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35926, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:40:09.871+00:00", - "deviceTime": "2025-07-08T14:40:08.000+00:00", - "fixTime": "2025-07-08T14:40:08.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35927, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:40:19.871+00:00", - "deviceTime": "2025-07-08T14:40:18.000+00:00", - "fixTime": "2025-07-08T14:40:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35928, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:40:29.876+00:00", - "deviceTime": "2025-07-08T14:40:28.000+00:00", - "fixTime": "2025-07-08T14:40:28.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35929, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:40:42.670+00:00", - "deviceTime": "2025-07-08T14:40:41.000+00:00", - "fixTime": "2025-07-08T14:40:41.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35930, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:40:52.679+00:00", - "deviceTime": "2025-07-08T14:40:51.000+00:00", - "fixTime": "2025-07-08T14:40:51.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35931, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:41:02.678+00:00", - "deviceTime": "2025-07-08T14:41:01.000+00:00", - "fixTime": "2025-07-08T14:41:01.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35932, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:41:15.470+00:00", - "deviceTime": "2025-07-08T14:41:14.000+00:00", - "fixTime": "2025-07-08T14:41:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35933, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:41:25.472+00:00", - "deviceTime": "2025-07-08T14:41:24.000+00:00", - "fixTime": "2025-07-08T14:41:24.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35934, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:41:35.471+00:00", - "deviceTime": "2025-07-08T14:41:34.000+00:00", - "fixTime": "2025-07-08T14:41:34.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35935, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:41:48.270+00:00", - "deviceTime": "2025-07-08T14:41:47.000+00:00", - "fixTime": "2025-07-08T14:41:47.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35936, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:41:58.275+00:00", - "deviceTime": "2025-07-08T14:41:57.000+00:00", - "fixTime": "2025-07-08T14:41:57.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35937, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:42:08.275+00:00", - "deviceTime": "2025-07-08T14:42:07.000+00:00", - "fixTime": "2025-07-08T14:42:07.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35938, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:42:21.076+00:00", - "deviceTime": "2025-07-08T14:42:19.000+00:00", - "fixTime": "2025-07-08T14:42:19.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35939, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:42:31.069+00:00", - "deviceTime": "2025-07-08T14:42:29.000+00:00", - "fixTime": "2025-07-08T14:42:29.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35940, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:42:41.071+00:00", - "deviceTime": "2025-07-08T14:42:39.000+00:00", - "fixTime": "2025-07-08T14:42:39.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35941, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:42:53.869+00:00", - "deviceTime": "2025-07-08T14:42:52.000+00:00", - "fixTime": "2025-07-08T14:42:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35942, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:42:54.814+00:00", - "deviceTime": "2025-07-08T14:42:54.814+00:00", - "fixTime": "2025-07-08T14:42:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35943, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:43:03.873+00:00", - "deviceTime": "2025-07-08T14:43:02.000+00:00", - "fixTime": "2025-07-08T14:43:02.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35944, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:43:13.869+00:00", - "deviceTime": "2025-07-08T14:43:12.000+00:00", - "fixTime": "2025-07-08T14:43:12.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35945, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:43:26.671+00:00", - "deviceTime": "2025-07-08T14:43:25.000+00:00", - "fixTime": "2025-07-08T14:43:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35946, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:43:36.671+00:00", - "deviceTime": "2025-07-08T14:43:35.000+00:00", - "fixTime": "2025-07-08T14:43:35.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35947, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:43:46.672+00:00", - "deviceTime": "2025-07-08T14:43:45.000+00:00", - "fixTime": "2025-07-08T14:43:45.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35948, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:43:59.471+00:00", - "deviceTime": "2025-07-08T14:43:58.000+00:00", - "fixTime": "2025-07-08T14:43:58.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35949, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:44:09.469+00:00", - "deviceTime": "2025-07-08T14:44:08.000+00:00", - "fixTime": "2025-07-08T14:44:08.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35950, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:44:19.469+00:00", - "deviceTime": "2025-07-08T14:44:18.000+00:00", - "fixTime": "2025-07-08T14:44:18.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35951, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:44:32.271+00:00", - "deviceTime": "2025-07-08T14:44:31.000+00:00", - "fixTime": "2025-07-08T14:44:31.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35952, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:44:42.269+00:00", - "deviceTime": "2025-07-08T14:44:41.000+00:00", - "fixTime": "2025-07-08T14:44:41.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35953, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:44:52.269+00:00", - "deviceTime": "2025-07-08T14:44:51.000+00:00", - "fixTime": "2025-07-08T14:44:51.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35954, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:45:05.078+00:00", - "deviceTime": "2025-07-08T14:45:03.000+00:00", - "fixTime": "2025-07-08T14:45:03.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35955, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:45:15.189+00:00", - "deviceTime": "2025-07-08T14:45:13.000+00:00", - "fixTime": "2025-07-08T14:45:13.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35956, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:45:25.069+00:00", - "deviceTime": "2025-07-08T14:45:24.000+00:00", - "fixTime": "2025-07-08T14:45:24.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35957, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:45:37.876+00:00", - "deviceTime": "2025-07-08T14:45:36.000+00:00", - "fixTime": "2025-07-08T14:45:36.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35958, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:45:47.874+00:00", - "deviceTime": "2025-07-08T14:45:46.000+00:00", - "fixTime": "2025-07-08T14:45:46.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35959, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:45:57.871+00:00", - "deviceTime": "2025-07-08T14:45:56.000+00:00", - "fixTime": "2025-07-08T14:45:56.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35960, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:46:10.672+00:00", - "deviceTime": "2025-07-08T14:46:09.000+00:00", - "fixTime": "2025-07-08T14:46:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35961, - "attributes": { - "type": 19, - "status": 70, - "ignition": true, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:46:11.616+00:00", - "deviceTime": "2025-07-08T14:46:11.616+00:00", - "fixTime": "2025-07-08T14:46:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35962, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:46:20.679+00:00", - "deviceTime": "2025-07-08T14:46:19.000+00:00", - "fixTime": "2025-07-08T14:46:19.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35963, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:46:30.670+00:00", - "deviceTime": "2025-07-08T14:46:29.000+00:00", - "fixTime": "2025-07-08T14:46:29.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35964, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:46:43.471+00:00", - "deviceTime": "2025-07-08T14:46:42.000+00:00", - "fixTime": "2025-07-08T14:46:42.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35965, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:46:53.469+00:00", - "deviceTime": "2025-07-08T14:46:52.000+00:00", - "fixTime": "2025-07-08T14:46:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35966, - "attributes": { - "type": 19, - "status": 68, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:46:59.471+00:00", - "deviceTime": "2025-07-08T14:46:59.471+00:00", - "fixTime": "2025-07-08T14:46:52.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35967, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:47:03.417+00:00", - "deviceTime": "2025-07-08T14:47:02.000+00:00", - "fixTime": "2025-07-08T14:47:02.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35968, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:47:16.269+00:00", - "deviceTime": "2025-07-08T14:47:15.000+00:00", - "fixTime": "2025-07-08T14:47:15.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35969, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:47:26.269+00:00", - "deviceTime": "2025-07-08T14:47:25.000+00:00", - "fixTime": "2025-07-08T14:47:25.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35970, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:47:36.270+00:00", - "deviceTime": "2025-07-08T14:47:35.000+00:00", - "fixTime": "2025-07-08T14:47:35.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35971, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:47:49.070+00:00", - "deviceTime": "2025-07-08T14:47:47.000+00:00", - "fixTime": "2025-07-08T14:47:47.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35972, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:47:59.070+00:00", - "deviceTime": "2025-07-08T14:47:57.000+00:00", - "fixTime": "2025-07-08T14:47:57.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35973, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:48:09.070+00:00", - "deviceTime": "2025-07-08T14:48:07.000+00:00", - "fixTime": "2025-07-08T14:48:07.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35974, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:48:21.869+00:00", - "deviceTime": "2025-07-08T14:48:20.000+00:00", - "fixTime": "2025-07-08T14:48:20.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35975, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:48:32.104+00:00", - "deviceTime": "2025-07-08T14:48:30.000+00:00", - "fixTime": "2025-07-08T14:48:30.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35976, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:48:41.870+00:00", - "deviceTime": "2025-07-08T14:48:40.000+00:00", - "fixTime": "2025-07-08T14:48:40.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35977, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:48:54.672+00:00", - "deviceTime": "2025-07-08T14:48:53.000+00:00", - "fixTime": "2025-07-08T14:48:53.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35978, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:49:04.683+00:00", - "deviceTime": "2025-07-08T14:49:03.000+00:00", - "fixTime": "2025-07-08T14:49:03.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35979, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:49:14.669+00:00", - "deviceTime": "2025-07-08T14:49:13.000+00:00", - "fixTime": "2025-07-08T14:49:13.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35980, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:49:27.471+00:00", - "deviceTime": "2025-07-08T14:49:26.000+00:00", - "fixTime": "2025-07-08T14:49:26.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35981, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:49:37.472+00:00", - "deviceTime": "2025-07-08T14:49:36.000+00:00", - "fixTime": "2025-07-08T14:49:36.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35982, - "attributes": { - "type": 18, - "sat": 11, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:49:47.469+00:00", - "deviceTime": "2025-07-08T14:49:46.000+00:00", - "fixTime": "2025-07-08T14:49:46.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35983, - "attributes": { - "type": 18, - "sat": 10, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:50:00.269+00:00", - "deviceTime": "2025-07-08T14:49:59.000+00:00", - "fixTime": "2025-07-08T14:49:59.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35984, - "attributes": { - "type": 18, - "sat": 10, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:50:10.277+00:00", - "deviceTime": "2025-07-08T14:50:09.000+00:00", - "fixTime": "2025-07-08T14:50:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35985, - "attributes": { - "type": 19, - "status": 68, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.1381818415, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:50:16.270+00:00", - "deviceTime": "2025-07-08T14:50:16.270+00:00", - "fixTime": "2025-07-08T14:50:09.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.790393888888886, - "longitude": 24.153085555555556, - "altitude": 0.0, - "speed": 0.0, - "course": 305.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35986, - "attributes": { - "type": 18, - "sat": 10, - "distance": 0.20459883607366738, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:50:17.227+00:00", - "deviceTime": "2025-07-08T14:50:14.000+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - }, - { - "id": 35987, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:53:36.298+00:00", - "deviceTime": "2025-07-08T14:53:36.298+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35988, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T14:56:53.111+00:00", - "deviceTime": "2025-07-08T14:56:53.111+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35989, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:00:16.129+00:00", - "deviceTime": "2025-07-08T15:00:16.129+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35990, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:03:36.550+00:00", - "deviceTime": "2025-07-08T15:03:36.550+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35991, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:06:53.560+00:00", - "deviceTime": "2025-07-08T15:06:53.560+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35992, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:10:10.381+00:00", - "deviceTime": "2025-07-08T15:10:10.381+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35993, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:13:30.201+00:00", - "deviceTime": "2025-07-08T15:13:30.201+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35994, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:16:50.221+00:00", - "deviceTime": "2025-07-08T15:16:50.221+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35995, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:20:10.279+00:00", - "deviceTime": "2025-07-08T15:20:10.279+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35996, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:23:36.651+00:00", - "deviceTime": "2025-07-08T15:23:36.651+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35997, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:26:59.670+00:00", - "deviceTime": "2025-07-08T15:26:59.670+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35998, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:30:19.898+00:00", - "deviceTime": "2025-07-08T15:30:19.898+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 35999, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:33:43.327+00:00", - "deviceTime": "2025-07-08T15:33:43.327+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36000, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:37:03.719+00:00", - "deviceTime": "2025-07-08T15:37:03.719+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36001, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:40:30.141+00:00", - "deviceTime": "2025-07-08T15:40:30.141+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36002, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:43:47.159+00:00", - "deviceTime": "2025-07-08T15:43:47.159+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36003, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:47:03.980+00:00", - "deviceTime": "2025-07-08T15:47:03.980+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36004, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:50:23.789+00:00", - "deviceTime": "2025-07-08T15:50:23.789+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36005, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:53:40.616+00:00", - "deviceTime": "2025-07-08T15:53:40.616+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36006, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T15:56:57.437+00:00", - "deviceTime": "2025-07-08T15:56:57.437+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36007, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:00:20.559+00:00", - "deviceTime": "2025-07-08T16:00:20.559+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36008, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:03:40.460+00:00", - "deviceTime": "2025-07-08T16:03:40.460+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36009, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:06:57.891+00:00", - "deviceTime": "2025-07-08T16:06:57.891+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36010, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:10:21.498+00:00", - "deviceTime": "2025-07-08T16:10:21.498+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36011, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:13:41.710+00:00", - "deviceTime": "2025-07-08T16:13:41.710+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36012, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:16:58.529+00:00", - "deviceTime": "2025-07-08T16:16:58.529+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36013, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:20:15.349+00:00", - "deviceTime": "2025-07-08T16:20:15.349+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36014, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:23:38.560+00:00", - "deviceTime": "2025-07-08T16:23:38.560+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36015, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:27:02.074+00:00", - "deviceTime": "2025-07-08T16:27:02.074+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36016, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:30:22.199+00:00", - "deviceTime": "2025-07-08T16:30:22.199+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36017, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:33:39.021+00:00", - "deviceTime": "2025-07-08T16:33:39.021+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36018, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:36:58.839+00:00", - "deviceTime": "2025-07-08T16:36:58.839+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36019, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:40:15.650+00:00", - "deviceTime": "2025-07-08T16:40:15.650+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36020, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:43:32.472+00:00", - "deviceTime": "2025-07-08T16:43:32.472+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36021, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:46:52.289+00:00", - "deviceTime": "2025-07-08T16:46:52.289+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36022, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:50:12.513+00:00", - "deviceTime": "2025-07-08T16:50:12.513+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36023, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:53:32.385+00:00", - "deviceTime": "2025-07-08T16:53:32.385+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36024, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T16:56:52.148+00:00", - "deviceTime": "2025-07-08T16:56:52.148+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36025, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:00:08.950+00:00", - "deviceTime": "2025-07-08T17:00:08.950+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36026, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:03:25.973+00:00", - "deviceTime": "2025-07-08T17:03:25.973+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36027, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:06:55.388+00:00", - "deviceTime": "2025-07-08T17:06:55.388+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36028, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:10:18.202+00:00", - "deviceTime": "2025-07-08T17:10:18.202+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36029, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:13:38.028+00:00", - "deviceTime": "2025-07-08T17:13:38.028+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36030, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:16:54.840+00:00", - "deviceTime": "2025-07-08T17:16:54.840+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36031, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:20:11.452+00:00", - "deviceTime": "2025-07-08T17:20:11.452+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36032, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:23:22.671+00:00", - "deviceTime": "2025-07-08T17:23:22.671+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36033, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:26:39.880+00:00", - "deviceTime": "2025-07-08T17:26:39.880+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36034, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:30:06.310+00:00", - "deviceTime": "2025-07-08T17:30:06.310+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36035, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:33:35.521+00:00", - "deviceTime": "2025-07-08T17:33:35.521+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36036, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:36:55.740+00:00", - "deviceTime": "2025-07-08T17:36:55.740+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36037, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:40:18.958+00:00", - "deviceTime": "2025-07-08T17:40:18.958+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36038, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:43:35.770+00:00", - "deviceTime": "2025-07-08T17:43:35.770+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36039, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:46:52.580+00:00", - "deviceTime": "2025-07-08T17:46:52.580+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36040, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:50:09.400+00:00", - "deviceTime": "2025-07-08T17:50:09.400+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36041, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:53:26.220+00:00", - "deviceTime": "2025-07-08T17:53:26.220+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36042, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T17:56:43.051+00:00", - "deviceTime": "2025-07-08T17:56:43.051+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36043, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:00:06.450+00:00", - "deviceTime": "2025-07-08T18:00:06.450+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36044, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:03:29.477+00:00", - "deviceTime": "2025-07-08T18:03:29.477+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36045, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:06:52.697+00:00", - "deviceTime": "2025-07-08T18:06:52.697+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36046, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:10:19.107+00:00", - "deviceTime": "2025-07-08T18:10:19.107+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36047, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:13:42.127+00:00", - "deviceTime": "2025-07-08T18:13:42.127+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36048, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:17:08.548+00:00", - "deviceTime": "2025-07-08T18:17:08.548+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36049, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:20:34.557+00:00", - "deviceTime": "2025-07-08T18:20:34.557+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36050, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:23:57.970+00:00", - "deviceTime": "2025-07-08T18:23:57.970+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36051, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:27:21.196+00:00", - "deviceTime": "2025-07-08T18:27:21.196+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36052, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 4, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:30:38.215+00:00", - "deviceTime": "2025-07-08T18:30:38.215+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36053, - "attributes": { - "type": 19, - "status": 4, - "ignition": false, - "charge": true, - "blocked": false, - "batteryLevel": 100, - "rssi": 3, - "distance": 0.0, - "totalDistance": 1305115.3427806776, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:33:55.025+00:00", - "deviceTime": "2025-07-08T18:33:55.025+00:00", - "fixTime": "2025-07-08T14:50:14.000+00:00", - "outdated": false, - "valid": true, - "latitude": 45.79039222222222, - "longitude": 24.153084444444445, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": null, - "geofenceIds": null - }, - { - "id": 36054, - "attributes": { - "type": 18, - "sat": 0, - "distance": 0.2511071490034291, - "totalDistance": 1305115.5938878267, - "motion": false, - "hours": 303552 - }, - "deviceId": 1, - "protocol": "gt06", - "serverTime": "2025-07-08T18:35:32.187+00:00", - "deviceTime": "2025-07-08T18:35:27.000+00:00", - "fixTime": "2025-07-08T18:35:27.000+00:00", - "outdated": false, - "valid": false, - "latitude": 45.790394444444445, - "longitude": 24.153085, - "altitude": 0.0, - "speed": 0.0, - "course": 0.0, - "address": null, - "accuracy": 0.0, - "network": { - "radioType": "gsm", - "considerIp": false, - "cellTowers": [ - { - "cellId": 0, - "locationAreaCode": 0, - "mobileCountryCode": 226, - "mobileNetworkCode": 5 - } - ] - }, - "geofenceIds": null - } -] \ No newline at end of file diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0000.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0000.png new file mode 100644 index 0000000..9a9dd84 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0000.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0001.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0001.png new file mode 100644 index 0000000..bead177 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0001.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0002.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0002.png new file mode 100644 index 0000000..37572ba Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0002.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0003.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0003.png new file mode 100644 index 0000000..d968d97 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0003.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0004.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0004.png new file mode 100644 index 0000000..c47a8c3 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0004.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0005.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0005.png new file mode 100644 index 0000000..15b0fa5 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0005.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0006.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0006.png new file mode 100644 index 0000000..94f8cff Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0006.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0007.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0007.png new file mode 100644 index 0000000..f0f9de0 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0007.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0008.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0008.png new file mode 100644 index 0000000..05f4b34 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0008.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0009.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0009.png new file mode 100644 index 0000000..93b6a5f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0009.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0010.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0010.png new file mode 100644 index 0000000..d734a54 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0010.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0011.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0011.png new file mode 100644 index 0000000..f585a0a Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0011.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0012.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0012.png new file mode 100644 index 0000000..26bfa7b Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0012.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0013.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0013.png new file mode 100644 index 0000000..3797fbf Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0013.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0014.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0014.png new file mode 100644 index 0000000..df352db Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0014.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0015.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0015.png new file mode 100644 index 0000000..fca32c9 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0015.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0016.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0016.png new file mode 100644 index 0000000..be7a643 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0016.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0017.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0017.png new file mode 100644 index 0000000..42390f7 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0017.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0018.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0018.png new file mode 100644 index 0000000..51814e2 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0018.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0019.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0019.png new file mode 100644 index 0000000..f655875 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0019.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0020.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0020.png new file mode 100644 index 0000000..dd60be9 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0020.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0021.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0021.png new file mode 100644 index 0000000..d64d960 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0021.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0022.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0022.png new file mode 100644 index 0000000..559a8bd Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0022.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0023.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0023.png new file mode 100644 index 0000000..55efde3 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0023.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0024.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0024.png new file mode 100644 index 0000000..0cc866f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0024.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0025.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0025.png new file mode 100644 index 0000000..92019ad Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0025.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0026.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0026.png new file mode 100644 index 0000000..8070756 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0026.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0027.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0027.png new file mode 100644 index 0000000..542de47 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0027.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0028.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0028.png new file mode 100644 index 0000000..c1bb992 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0028.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0029.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0029.png new file mode 100644 index 0000000..166b987 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0029.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0030.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0030.png new file mode 100644 index 0000000..4904e51 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0030.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0031.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0031.png new file mode 100644 index 0000000..a7300da Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0031.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0032.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0032.png new file mode 100644 index 0000000..85566af Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0032.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0033.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0033.png new file mode 100644 index 0000000..56973da Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0033.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0034.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0034.png new file mode 100644 index 0000000..f8eb445 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0034.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0035.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0035.png new file mode 100644 index 0000000..11767ac Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0035.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0036.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0036.png new file mode 100644 index 0000000..63b8079 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0036.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0037.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0037.png new file mode 100644 index 0000000..02ccf2f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0037.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0038.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0038.png new file mode 100644 index 0000000..1e81ddd Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0038.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0039.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0039.png new file mode 100644 index 0000000..1d84190 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0039.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0040.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0040.png new file mode 100644 index 0000000..f0d39f0 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0040.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0041.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0041.png new file mode 100644 index 0000000..17a1fb0 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0041.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0042.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0042.png new file mode 100644 index 0000000..0575b48 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0042.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0043.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0043.png new file mode 100644 index 0000000..8693152 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0043.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0044.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0044.png new file mode 100644 index 0000000..39eabf3 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0044.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0045.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0045.png new file mode 100644 index 0000000..3c6d205 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0045.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0046.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0046.png new file mode 100644 index 0000000..267a882 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0046.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0047.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0047.png new file mode 100644 index 0000000..4c53594 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0047.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0048.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0048.png new file mode 100644 index 0000000..140e69e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0048.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0049.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0049.png new file mode 100644 index 0000000..b0f9fc7 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0049.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0050.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0050.png new file mode 100644 index 0000000..5c92082 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0050.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0051.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0051.png new file mode 100644 index 0000000..9502399 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0051.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0052.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0052.png new file mode 100644 index 0000000..f250051 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0052.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0053.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0053.png new file mode 100644 index 0000000..02271d4 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0053.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0054.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0054.png new file mode 100644 index 0000000..ef8a915 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0054.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0055.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0055.png new file mode 100644 index 0000000..db51664 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0055.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0056.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0056.png new file mode 100644 index 0000000..8d105cf Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0056.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0057.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0057.png new file mode 100644 index 0000000..e2c3721 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0057.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0058.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0058.png new file mode 100644 index 0000000..4781a3c Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0058.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0059.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0059.png new file mode 100644 index 0000000..b3f7aaa Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0059.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0060.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0060.png new file mode 100644 index 0000000..92142cc Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0060.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0061.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0061.png new file mode 100644 index 0000000..d6512ce Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0061.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0062.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0062.png new file mode 100644 index 0000000..8833d65 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0062.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0063.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0063.png new file mode 100644 index 0000000..98e8a8c Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0063.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0064.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0064.png new file mode 100644 index 0000000..f840e0a Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0064.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0065.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0065.png new file mode 100644 index 0000000..01e8573 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0065.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0066.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0066.png new file mode 100644 index 0000000..846c53b Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0066.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0067.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0067.png new file mode 100644 index 0000000..b100134 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0067.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0068.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0068.png new file mode 100644 index 0000000..09f8318 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0068.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0069.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0069.png new file mode 100644 index 0000000..cc2d052 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0069.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0070.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0070.png new file mode 100644 index 0000000..f359118 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0070.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0071.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0071.png new file mode 100644 index 0000000..c845409 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0071.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0072.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0072.png new file mode 100644 index 0000000..c5a7a11 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0072.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0073.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0073.png new file mode 100644 index 0000000..9dbfdd3 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0073.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0074.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0074.png new file mode 100644 index 0000000..4bc5c9a Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0074.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0075.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0075.png new file mode 100644 index 0000000..0e6658f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0075.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0076.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0076.png new file mode 100644 index 0000000..c47c59a Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0076.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0077.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0077.png new file mode 100644 index 0000000..471dbad Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0077.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0078.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0078.png new file mode 100644 index 0000000..2515988 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0078.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0079.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0079.png new file mode 100644 index 0000000..3a97f01 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0079.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0080.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0080.png new file mode 100644 index 0000000..a935dac Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0080.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0081.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0081.png new file mode 100644 index 0000000..263d506 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0081.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0082.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0082.png new file mode 100644 index 0000000..379669e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0082.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0083.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0083.png new file mode 100644 index 0000000..2540368 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0083.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0084.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0084.png new file mode 100644 index 0000000..16f67bd Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0084.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0085.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0085.png new file mode 100644 index 0000000..115cda2 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0085.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0086.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0086.png new file mode 100644 index 0000000..f891ccb Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0086.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0087.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0087.png new file mode 100644 index 0000000..346ce82 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0087.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0088.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0088.png new file mode 100644 index 0000000..05e914b Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0088.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0089.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0089.png new file mode 100644 index 0000000..ba4d75c Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0089.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0090.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0090.png new file mode 100644 index 0000000..09fca31 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0090.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0091.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0091.png new file mode 100644 index 0000000..cdd64bc Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0091.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0092.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0092.png new file mode 100644 index 0000000..acc9bfe Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0092.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0093.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0093.png new file mode 100644 index 0000000..33b5328 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0093.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0094.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0094.png new file mode 100644 index 0000000..1e7c9e7 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0094.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0095.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0095.png new file mode 100644 index 0000000..e8d8be5 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0095.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0096.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0096.png new file mode 100644 index 0000000..4bde2e5 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0096.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0097.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0097.png new file mode 100644 index 0000000..fdcc4c7 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0097.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0098.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0098.png new file mode 100644 index 0000000..22ad6ad Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0098.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0099.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0099.png new file mode 100644 index 0000000..987acce Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0099.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0100.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0100.png new file mode 100644 index 0000000..485a26f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0100.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0101.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0101.png new file mode 100644 index 0000000..6b3de81 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0101.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0102.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0102.png new file mode 100644 index 0000000..cbc7ba2 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0102.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0103.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0103.png new file mode 100644 index 0000000..1f00300 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0103.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0104.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0104.png new file mode 100644 index 0000000..01e569e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0104.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0105.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0105.png new file mode 100644 index 0000000..70596b3 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0105.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0106.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0106.png new file mode 100644 index 0000000..a47881e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0106.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0107.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0107.png new file mode 100644 index 0000000..b36ec47 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0107.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0108.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0108.png new file mode 100644 index 0000000..3641694 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0108.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0109.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0109.png new file mode 100644 index 0000000..c107ba7 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0109.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0110.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0110.png new file mode 100644 index 0000000..3fca379 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0110.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0111.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0111.png new file mode 100644 index 0000000..5d12fed Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0111.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0112.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0112.png new file mode 100644 index 0000000..e11da51 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0112.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0113.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0113.png new file mode 100644 index 0000000..473b216 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0113.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0114.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0114.png new file mode 100644 index 0000000..f000ff3 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0114.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0115.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0115.png new file mode 100644 index 0000000..620b140 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0115.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0116.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0116.png new file mode 100644 index 0000000..5cfddd3 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0116.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0117.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0117.png new file mode 100644 index 0000000..b1f89f6 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0117.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0118.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0118.png new file mode 100644 index 0000000..c921c94 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0118.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0119.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0119.png new file mode 100644 index 0000000..20aa0df Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0119.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0120.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0120.png new file mode 100644 index 0000000..9b65ac5 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0120.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0121.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0121.png new file mode 100644 index 0000000..7975695 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0121.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0122.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0122.png new file mode 100644 index 0000000..c661c8b Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0122.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0123.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0123.png new file mode 100644 index 0000000..69321d8 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0123.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0124.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0124.png new file mode 100644 index 0000000..f0b378a Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0124.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0125.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0125.png new file mode 100644 index 0000000..2f5463b Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0125.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0126.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0126.png new file mode 100644 index 0000000..d145b38 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0126.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0127.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0127.png new file mode 100644 index 0000000..13fbde2 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0127.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0128.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0128.png new file mode 100644 index 0000000..73f4f84 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0128.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0129.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0129.png new file mode 100644 index 0000000..0f902fb Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0129.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0130.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0130.png new file mode 100644 index 0000000..e98cc66 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0130.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0131.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0131.png new file mode 100644 index 0000000..e766e92 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0131.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0132.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0132.png new file mode 100644 index 0000000..bee6a25 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0132.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0133.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0133.png new file mode 100644 index 0000000..8649291 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0133.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0134.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0134.png new file mode 100644 index 0000000..c48d4a2 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0134.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0135.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0135.png new file mode 100644 index 0000000..3e71228 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0135.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0136.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0136.png new file mode 100644 index 0000000..0b2d54f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0136.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0137.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0137.png new file mode 100644 index 0000000..b1cb19f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0137.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0138.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0138.png new file mode 100644 index 0000000..c7f2a83 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0138.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0139.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0139.png new file mode 100644 index 0000000..fc5cad5 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0139.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0140.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0140.png new file mode 100644 index 0000000..6874b37 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0140.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0141.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0141.png new file mode 100644 index 0000000..e77c18a Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0141.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0142.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0142.png new file mode 100644 index 0000000..6f771c8 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0142.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0143.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0143.png new file mode 100644 index 0000000..5404515 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0143.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0144.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0144.png new file mode 100644 index 0000000..078e0af Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0144.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0145.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0145.png new file mode 100644 index 0000000..67cbe3c Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0145.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0146.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0146.png new file mode 100644 index 0000000..60bfac0 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0146.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0147.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0147.png new file mode 100644 index 0000000..26b7350 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0147.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0148.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0148.png new file mode 100644 index 0000000..0ef1954 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0148.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0149.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0149.png new file mode 100644 index 0000000..2bf695d Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0149.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0150.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0150.png new file mode 100644 index 0000000..1f3d1d4 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0150.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0151.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0151.png new file mode 100644 index 0000000..e238840 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0151.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0152.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0152.png new file mode 100644 index 0000000..2f04905 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0152.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0153.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0153.png new file mode 100644 index 0000000..7abceef Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0153.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0154.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0154.png new file mode 100644 index 0000000..05d2cc9 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0154.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0155.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0155.png new file mode 100644 index 0000000..271c803 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0155.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0156.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0156.png new file mode 100644 index 0000000..914542a Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0156.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0157.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0157.png new file mode 100644 index 0000000..b0d27fc Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0157.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0158.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0158.png new file mode 100644 index 0000000..112dd6c Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0158.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0159.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0159.png new file mode 100644 index 0000000..2b2f549 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0159.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0160.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0160.png new file mode 100644 index 0000000..a7f0dca Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0160.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0161.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0161.png new file mode 100644 index 0000000..19d8c75 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0161.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0162.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0162.png new file mode 100644 index 0000000..4861137 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0162.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0163.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0163.png new file mode 100644 index 0000000..b40672b Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0163.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0164.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0164.png new file mode 100644 index 0000000..1409338 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0164.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0165.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0165.png new file mode 100644 index 0000000..6a1b89a Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0165.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0166.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0166.png new file mode 100644 index 0000000..b331635 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0166.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0167.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0167.png new file mode 100644 index 0000000..758fdbc Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0167.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0168.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0168.png new file mode 100644 index 0000000..51274e0 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0168.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0169.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0169.png new file mode 100644 index 0000000..6621fc3 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0169.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0170.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0170.png new file mode 100644 index 0000000..7cf3ab8 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0170.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0171.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0171.png new file mode 100644 index 0000000..04b60b6 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0171.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0172.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0172.png new file mode 100644 index 0000000..5b56ba9 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0172.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0173.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0173.png new file mode 100644 index 0000000..f9bb226 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0173.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0174.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0174.png new file mode 100644 index 0000000..d7781ba Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0174.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0175.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0175.png new file mode 100644 index 0000000..4aa6c45 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0175.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0176.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0176.png new file mode 100644 index 0000000..b518372 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0176.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0177.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0177.png new file mode 100644 index 0000000..b320469 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0177.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0178.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0178.png new file mode 100644 index 0000000..8996f10 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0178.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0179.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0179.png new file mode 100644 index 0000000..f5d4249 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0179.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0180.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0180.png new file mode 100644 index 0000000..fe3caab Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0180.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0181.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0181.png new file mode 100644 index 0000000..3d8acb1 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0181.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0182.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0182.png new file mode 100644 index 0000000..e72b424 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0182.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0183.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0183.png new file mode 100644 index 0000000..24c6431 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0183.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0184.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0184.png new file mode 100644 index 0000000..73df3d8 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0184.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0185.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0185.png new file mode 100644 index 0000000..08c679e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0185.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0186.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0186.png new file mode 100644 index 0000000..5aa26e6 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0186.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0187.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0187.png new file mode 100644 index 0000000..ac3627e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0187.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0188.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0188.png new file mode 100644 index 0000000..06afa71 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0188.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0189.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0189.png new file mode 100644 index 0000000..3bc50f8 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0189.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0190.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0190.png new file mode 100644 index 0000000..4ce0e7d Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0190.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0191.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0191.png new file mode 100644 index 0000000..8a22480 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0191.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0192.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0192.png new file mode 100644 index 0000000..e3da63f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0192.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0193.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0193.png new file mode 100644 index 0000000..46ca713 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0193.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0194.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0194.png new file mode 100644 index 0000000..daa7154 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0194.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0195.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0195.png new file mode 100644 index 0000000..31431b1 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0195.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0196.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0196.png new file mode 100644 index 0000000..1b85097 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0196.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0197.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0197.png new file mode 100644 index 0000000..24fe2ff Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0197.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0198.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0198.png new file mode 100644 index 0000000..de2d3a8 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0198.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0199.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0199.png new file mode 100644 index 0000000..5dd7fdc Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0199.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0200.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0200.png new file mode 100644 index 0000000..cc1edd1 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0200.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0201.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0201.png new file mode 100644 index 0000000..f5b4019 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0201.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0202.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0202.png new file mode 100644 index 0000000..05d6b68 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0202.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0203.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0203.png new file mode 100644 index 0000000..1e3ad08 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0203.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0204.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0204.png new file mode 100644 index 0000000..713a37f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0204.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0205.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0205.png new file mode 100644 index 0000000..ef2ea2c Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0205.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0206.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0206.png new file mode 100644 index 0000000..470625f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0206.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0207.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0207.png new file mode 100644 index 0000000..dd67f7e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0207.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0208.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0208.png new file mode 100644 index 0000000..10cff84 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0208.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0209.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0209.png new file mode 100644 index 0000000..5b22d22 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0209.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0210.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0210.png new file mode 100644 index 0000000..9824b61 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0210.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0211.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0211.png new file mode 100644 index 0000000..b891fbe Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0211.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0212.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0212.png new file mode 100644 index 0000000..66b18c3 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0212.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0213.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0213.png new file mode 100644 index 0000000..d531c35 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0213.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0214.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0214.png new file mode 100644 index 0000000..c9a0ab4 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0214.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0215.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0215.png new file mode 100644 index 0000000..4830486 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0215.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0216.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0216.png new file mode 100644 index 0000000..cde3e0c Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0216.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0217.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0217.png new file mode 100644 index 0000000..5ce854e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0217.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0218.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0218.png new file mode 100644 index 0000000..f32c3c5 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0218.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0219.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0219.png new file mode 100644 index 0000000..05118e5 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0219.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0220.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0220.png new file mode 100644 index 0000000..bb5ab45 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0220.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0221.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0221.png new file mode 100644 index 0000000..2f9a283 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0221.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0222.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0222.png new file mode 100644 index 0000000..aeb03ef Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0222.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0223.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0223.png new file mode 100644 index 0000000..c366fc6 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0223.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0224.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0224.png new file mode 100644 index 0000000..ab45867 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0224.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0225.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0225.png new file mode 100644 index 0000000..b68d22b Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0225.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0226.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0226.png new file mode 100644 index 0000000..428402b Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0226.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0227.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0227.png new file mode 100644 index 0000000..b3dfcbb Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0227.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0228.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0228.png new file mode 100644 index 0000000..a007152 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0228.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0229.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0229.png new file mode 100644 index 0000000..d539e05 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0229.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0230.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0230.png new file mode 100644 index 0000000..3048038 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0230.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0231.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0231.png new file mode 100644 index 0000000..b59e082 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0231.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0232.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0232.png new file mode 100644 index 0000000..25b98b2 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0232.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0233.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0233.png new file mode 100644 index 0000000..4ce0a3c Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0233.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0234.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0234.png new file mode 100644 index 0000000..656b3a9 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0234.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0235.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0235.png new file mode 100644 index 0000000..35bde5d Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0235.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0236.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0236.png new file mode 100644 index 0000000..3d82c69 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0236.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0237.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0237.png new file mode 100644 index 0000000..c656a83 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0237.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0238.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0238.png new file mode 100644 index 0000000..1a02e49 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0238.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0239.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0239.png new file mode 100644 index 0000000..a7b23c6 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0239.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0240.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0240.png new file mode 100644 index 0000000..1b79cf1 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0240.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0241.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0241.png new file mode 100644 index 0000000..d03c1f0 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0241.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0242.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0242.png new file mode 100644 index 0000000..f2d1898 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0242.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0243.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0243.png new file mode 100644 index 0000000..28ce659 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0243.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0244.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0244.png new file mode 100644 index 0000000..d7aa2b0 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0244.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0245.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0245.png new file mode 100644 index 0000000..984423f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0245.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0246.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0246.png new file mode 100644 index 0000000..9707821 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0246.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0247.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0247.png new file mode 100644 index 0000000..fa420ab Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0247.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0248.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0248.png new file mode 100644 index 0000000..de29f60 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0248.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0249.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0249.png new file mode 100644 index 0000000..5102946 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0249.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0250.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0250.png new file mode 100644 index 0000000..bd874bb Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0250.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0251.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0251.png new file mode 100644 index 0000000..b5af0e8 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0251.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0252.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0252.png new file mode 100644 index 0000000..6de8cb4 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0252.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0253.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0253.png new file mode 100644 index 0000000..700ec02 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0253.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0254.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0254.png new file mode 100644 index 0000000..29f8207 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0254.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0255.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0255.png new file mode 100644 index 0000000..d4123dc Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0255.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0256.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0256.png new file mode 100644 index 0000000..f66db60 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0256.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0257.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0257.png new file mode 100644 index 0000000..58f39f9 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0257.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0258.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0258.png new file mode 100644 index 0000000..28986bb Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0258.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0259.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0259.png new file mode 100644 index 0000000..94a02c4 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0259.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0260.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0260.png new file mode 100644 index 0000000..47301b0 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0260.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0261.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0261.png new file mode 100644 index 0000000..f96bc4e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0261.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0262.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0262.png new file mode 100644 index 0000000..9e3ada9 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0262.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0263.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0263.png new file mode 100644 index 0000000..8258013 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0263.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0264.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0264.png new file mode 100644 index 0000000..95aeaa0 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0264.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0265.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0265.png new file mode 100644 index 0000000..95c7bab Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0265.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0266.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0266.png new file mode 100644 index 0000000..8fca91c Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0266.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0267.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0267.png new file mode 100644 index 0000000..45caf6a Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0267.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0268.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0268.png new file mode 100644 index 0000000..210574a Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0268.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0269.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0269.png new file mode 100644 index 0000000..01d53ec Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0269.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0270.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0270.png new file mode 100644 index 0000000..466bac3 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0270.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0271.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0271.png new file mode 100644 index 0000000..92f6f0e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0271.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0272.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0272.png new file mode 100644 index 0000000..1c64409 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0272.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0273.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0273.png new file mode 100644 index 0000000..2dc9a85 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0273.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0274.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0274.png new file mode 100644 index 0000000..58da81c Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0274.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0275.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0275.png new file mode 100644 index 0000000..f8c0929 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0275.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0276.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0276.png new file mode 100644 index 0000000..8842bc1 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0276.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0277.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0277.png new file mode 100644 index 0000000..74033ec Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0277.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0278.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0278.png new file mode 100644 index 0000000..4313db0 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0278.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0279.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0279.png new file mode 100644 index 0000000..f186f5c Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0279.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0280.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0280.png new file mode 100644 index 0000000..572cc65 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0280.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0281.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0281.png new file mode 100644 index 0000000..6570f59 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0281.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0282.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0282.png new file mode 100644 index 0000000..581391a Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0282.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0283.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0283.png new file mode 100644 index 0000000..ff2094f Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0283.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0284.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0284.png new file mode 100644 index 0000000..5ea5181 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0284.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0285.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0285.png new file mode 100644 index 0000000..84d8234 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0285.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0286.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0286.png new file mode 100644 index 0000000..780d7eb Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0286.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0287.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0287.png new file mode 100644 index 0000000..d686306 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0287.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0288.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0288.png new file mode 100644 index 0000000..1612d6e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0288.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0289.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0289.png new file mode 100644 index 0000000..adf0ecf Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0289.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0290.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0290.png new file mode 100644 index 0000000..05a7905 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0290.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0291.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0291.png new file mode 100644 index 0000000..83e964e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0291.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0292.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0292.png new file mode 100644 index 0000000..b5b2fd8 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0292.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0293.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0293.png new file mode 100644 index 0000000..323c08e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0293.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0294.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0294.png new file mode 100644 index 0000000..1c86cb4 Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0294.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0295.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0295.png new file mode 100644 index 0000000..1314cde Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0295.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0296.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0296.png new file mode 100644 index 0000000..2ef628b Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0296.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0297.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0297.png new file mode 100644 index 0000000..1e0406e Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0297.png differ diff --git a/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0298.png b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0298.png new file mode 100644 index 0000000..453ee0d Binary files /dev/null and b/resources/projects/testtrip/nav_frames/GoogleEarth_Frame_0298.png differ diff --git a/resources/projects/testtrip/pauses.json b/resources/projects/testtrip/pauses.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/resources/projects/testtrip/pauses.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/resources/projects/testtrip/positions.json b/resources/projects/testtrip/positions.json new file mode 100644 index 0000000..b4d7ce4 --- /dev/null +++ b/resources/projects/testtrip/positions.json @@ -0,0 +1,9634 @@ +[ + { + "id": 34985, + "attributes": { + "type": 18, + "sat": 12, + "distance": 54.3356395538284, + "totalDistance": 1290030.4227783633, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:14.062+00:00", + "deviceTime": "2025-07-07T04:25:46.000+00:00", + "fixTime": "2025-07-07T04:25:46.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79016777777778, + "longitude": 24.152482222222222, + "altitude": 0.0, + "speed": 17.278624, + "course": 247.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34986, + "attributes": { + "type": 18, + "sat": 12, + "distance": 184.86780762286668, + "totalDistance": 1290160.9549464323, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:15.062+00:00", + "deviceTime": "2025-07-07T04:25:59.000+00:00", + "fixTime": "2025-07-07T04:25:59.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.789785, + "longitude": 24.150870555555557, + "altitude": 0.0, + "speed": 18.898495, + "course": 252.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34987, + "attributes": { + "type": 18, + "sat": 12, + "distance": 241.88428676686826, + "totalDistance": 1290217.9714255764, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:16.070+00:00", + "deviceTime": "2025-07-07T04:26:11.000+00:00", + "fixTime": "2025-07-07T04:26:11.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.78964611111111, + "longitude": 24.150157777777775, + "altitude": 0.0, + "speed": 0.0, + "course": 258.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34988, + "attributes": { + "type": 18, + "sat": 12, + "distance": 264.0612018005642, + "totalDistance": 1290240.14834061, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:17.094+00:00", + "deviceTime": "2025-07-07T04:26:31.000+00:00", + "fixTime": "2025-07-07T04:26:31.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.789881111111114, + "longitude": 24.14975, + "altitude": 0.0, + "speed": 26.99785, + "course": 325.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34989, + "attributes": { + "type": 18, + "sat": 12, + "distance": 333.68291392942564, + "totalDistance": 1290309.770052739, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:18.062+00:00", + "deviceTime": "2025-07-07T04:26:41.000+00:00", + "fixTime": "2025-07-07T04:26:41.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79078777777778, + "longitude": 24.148780555555554, + "altitude": 0.0, + "speed": 16.198710000000002, + "course": 350.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34990, + "attributes": { + "type": 18, + "sat": 12, + "distance": 346.60432537960605, + "totalDistance": 1290322.6914641892, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:19.071+00:00", + "deviceTime": "2025-07-07T04:26:45.000+00:00", + "fixTime": "2025-07-07T04:26:45.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.791062777777775, + "longitude": 24.14867388888889, + "altitude": 0.0, + "speed": 11.879054, + "course": 317.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34991, + "attributes": { + "type": 18, + "sat": 12, + "distance": 359.9215697906572, + "totalDistance": 1290336.0087086002, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:20.071+00:00", + "deviceTime": "2025-07-07T04:26:47.000+00:00", + "fixTime": "2025-07-07T04:26:47.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79112888888889, + "longitude": 24.148518333333335, + "altitude": 0.0, + "speed": 15.658753, + "course": 298.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34992, + "attributes": { + "type": 18, + "sat": 12, + "distance": 378.6973713466371, + "totalDistance": 1290354.7845101561, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:21.070+00:00", + "deviceTime": "2025-07-07T04:26:49.000+00:00", + "fixTime": "2025-07-07T04:26:49.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79126, + "longitude": 24.148313333333334, + "altitude": 0.0, + "speed": 23.758108, + "course": 322.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34994, + "attributes": { + "type": 18, + "sat": 12, + "distance": 449.7797614611252, + "totalDistance": 1290425.8669002706, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:26.070+00:00", + "deviceTime": "2025-07-07T04:26:55.000+00:00", + "fixTime": "2025-07-07T04:26:55.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79177666666667, + "longitude": 24.147578333333332, + "altitude": 0.0, + "speed": 27.537807, + "course": 306.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34995, + "attributes": { + "type": 18, + "sat": 12, + "distance": 589.1056248147717, + "totalDistance": 1290565.1927636242, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:27.071+00:00", + "deviceTime": "2025-07-07T04:27:08.000+00:00", + "fixTime": "2025-07-07T04:27:08.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79258277777778, + "longitude": 24.146105555555554, + "altitude": 0.0, + "speed": 21.058323, + "course": 307.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34996, + "attributes": { + "type": 18, + "sat": 12, + "distance": 702.5343836208081, + "totalDistance": 1290678.6215224303, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:28.063+00:00", + "deviceTime": "2025-07-07T04:27:18.000+00:00", + "fixTime": "2025-07-07T04:27:18.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79327722222222, + "longitude": 24.144959444444446, + "altitude": 0.0, + "speed": 22.138237, + "course": 313.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34997, + "attributes": { + "type": 18, + "sat": 12, + "distance": 739.8023776290471, + "totalDistance": 1290715.8895164386, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:29.063+00:00", + "deviceTime": "2025-07-07T04:27:22.000+00:00", + "fixTime": "2025-07-07T04:27:22.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793595, + "longitude": 24.144655, + "altitude": 0.0, + "speed": 20.518366, + "course": 337.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34998, + "attributes": { + "type": 18, + "sat": 12, + "distance": 775.9397661883465, + "totalDistance": 1290752.0269049979, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:30.057+00:00", + "deviceTime": "2025-07-07T04:27:26.000+00:00", + "fixTime": "2025-07-07T04:27:26.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79390555555556, + "longitude": 24.144369444444447, + "altitude": 0.0, + "speed": 17.818581000000002, + "course": 312.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34999, + "attributes": { + "type": 18, + "sat": 12, + "distance": 794.1158544115888, + "totalDistance": 1290770.202993221, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:31.071+00:00", + "deviceTime": "2025-07-07T04:27:28.000+00:00", + "fixTime": "2025-07-07T04:27:28.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79399333333333, + "longitude": 24.14417166666667, + "altitude": 0.0, + "speed": 16.198710000000002, + "course": 291.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35000, + "attributes": { + "type": 18, + "sat": 12, + "distance": 811.0317972663262, + "totalDistance": 1290787.1189360758, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:32.064+00:00", + "deviceTime": "2025-07-07T04:27:30.000+00:00", + "fixTime": "2025-07-07T04:27:30.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79400888888889, + "longitude": 24.143933888888892, + "altitude": 0.0, + "speed": 18.898495, + "course": 266.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35001, + "attributes": { + "type": 18, + "sat": 12, + "distance": 826.4498396570932, + "totalDistance": 1290802.5369784667, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:33.072+00:00", + "deviceTime": "2025-07-07T04:27:32.000+00:00", + "fixTime": "2025-07-07T04:27:32.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79394611111111, + "longitude": 24.143658333333335, + "altitude": 0.0, + "speed": 22.138237, + "course": 243.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35003, + "attributes": { + "type": 18, + "sat": 12, + "distance": 908.0917397373343, + "totalDistance": 1290884.178878547, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:40.906+00:00", + "deviceTime": "2025-07-07T04:27:45.000+00:00", + "fixTime": "2025-07-07T04:27:45.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79335833333333, + "longitude": 24.14212111111111, + "altitude": 0.0, + "speed": 16.198710000000002, + "course": 242.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35004, + "attributes": { + "type": 18, + "sat": 12, + "distance": 920.7587869773707, + "totalDistance": 1290896.8459257868, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:41.861+00:00", + "deviceTime": "2025-07-07T04:27:47.000+00:00", + "fixTime": "2025-07-07T04:27:47.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793309444444446, + "longitude": 24.141920555555558, + "altitude": 0.0, + "speed": 15.658753, + "course": 262.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35005, + "attributes": { + "type": 18, + "sat": 12, + "distance": 935.8797180193787, + "totalDistance": 1290911.966856829, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:42.881+00:00", + "deviceTime": "2025-07-07T04:27:49.000+00:00", + "fixTime": "2025-07-07T04:27:49.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79331722222222, + "longitude": 24.141717222222223, + "altitude": 0.0, + "speed": 13.498925, + "course": 281.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35006, + "attributes": { + "type": 18, + "sat": 12, + "distance": 946.6704024343591, + "totalDistance": 1290922.757541244, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:43.862+00:00", + "deviceTime": "2025-07-07T04:27:51.000+00:00", + "fixTime": "2025-07-07T04:27:51.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79329, + "longitude": 24.141555555555556, + "altitude": 0.0, + "speed": 11.879054, + "course": 234.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35007, + "attributes": { + "type": 18, + "sat": 12, + "distance": 948.9777924023862, + "totalDistance": 1290925.064931212, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:44.861+00:00", + "deviceTime": "2025-07-07T04:27:53.000+00:00", + "fixTime": "2025-07-07T04:27:53.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793168333333334, + "longitude": 24.141463888888886, + "altitude": 0.0, + "speed": 16.738667, + "course": 197.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35008, + "attributes": { + "type": 18, + "sat": 12, + "distance": 952.6849858650455, + "totalDistance": 1290928.7721246746, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:45.861+00:00", + "deviceTime": "2025-07-07T04:27:55.000+00:00", + "fixTime": "2025-07-07T04:27:55.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793008888888885, + "longitude": 24.141339444444444, + "altitude": 0.0, + "speed": 21.598280000000003, + "course": 219.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35009, + "attributes": { + "type": 18, + "sat": 12, + "distance": 966.0527440288936, + "totalDistance": 1290942.1398828384, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:46.861+00:00", + "deviceTime": "2025-07-07T04:27:57.000+00:00", + "fixTime": "2025-07-07T04:27:57.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792873888888884, + "longitude": 24.141101111111112, + "altitude": 0.0, + "speed": 24.838022000000002, + "course": 234.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35010, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1103.0002728217892, + "totalDistance": 1291079.0874116314, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:47.863+00:00", + "deviceTime": "2025-07-07T04:28:10.000+00:00", + "fixTime": "2025-07-07T04:28:10.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79195, + "longitude": 24.139005555555553, + "altitude": 0.0, + "speed": 29.157678, + "course": 263.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35012, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1163.959639414415, + "totalDistance": 1291140.046778224, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:52.869+00:00", + "deviceTime": "2025-07-07T04:28:14.000+00:00", + "fixTime": "2025-07-07T04:28:14.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79202111111111, + "longitude": 24.138226666666668, + "altitude": 0.0, + "speed": 30.777549, + "course": 284.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35013, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1316.768713568204, + "totalDistance": 1291292.8558523776, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:53.869+00:00", + "deviceTime": "2025-07-07T04:28:24.000+00:00", + "fixTime": "2025-07-07T04:28:24.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792379999999994, + "longitude": 24.136315, + "altitude": 0.0, + "speed": 28.077764000000002, + "course": 284.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35014, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1445.274531994593, + "totalDistance": 1291421.361670804, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:54.861+00:00", + "deviceTime": "2025-07-07T04:28:34.000+00:00", + "fixTime": "2025-07-07T04:28:34.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79269166666667, + "longitude": 24.134711666666664, + "altitude": 0.0, + "speed": 24.298065, + "course": 285.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35015, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1585.647994454226, + "totalDistance": 1291561.7351332637, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:55.861+00:00", + "deviceTime": "2025-07-07T04:28:50.000+00:00", + "fixTime": "2025-07-07T04:28:50.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79306666666667, + "longitude": 24.13297111111111, + "altitude": 0.0, + "speed": 9.719226, + "course": 314.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35016, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1608.400382834014, + "totalDistance": 1291584.4875216435, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:56.861+00:00", + "deviceTime": "2025-07-07T04:28:56.000+00:00", + "fixTime": "2025-07-07T04:28:56.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79321722222222, + "longitude": 24.132713888888887, + "altitude": 0.0, + "speed": 9.179269, + "course": 276.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35017, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1619.3338014904225, + "totalDistance": 1291595.4209403, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:57.861+00:00", + "deviceTime": "2025-07-07T04:28:58.000+00:00", + "fixTime": "2025-07-07T04:28:58.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793191666666665, + "longitude": 24.132563333333334, + "altitude": 0.0, + "speed": 12.958968, + "course": 251.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35018, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1632.4842079501748, + "totalDistance": 1291608.5713467596, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:58.861+00:00", + "deviceTime": "2025-07-07T04:29:00.000+00:00", + "fixTime": "2025-07-07T04:29:00.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79317833333334, + "longitude": 24.132387222222224, + "altitude": 0.0, + "speed": 13.498925, + "course": 273.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35019, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1705.5022020587705, + "totalDistance": 1291681.5893408682, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:59.869+00:00", + "deviceTime": "2025-07-07T04:29:14.000+00:00", + "fixTime": "2025-07-07T04:29:14.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79335666666667, + "longitude": 24.131478333333334, + "altitude": 0.0, + "speed": 12.419011000000001, + "course": 288.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35021, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1746.6588097266979, + "totalDistance": 1291722.745948536, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:04.861+00:00", + "deviceTime": "2025-07-07T04:29:26.000+00:00", + "fixTime": "2025-07-07T04:29:26.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79349055555555, + "longitude": 24.13097555555556, + "altitude": 0.0, + "speed": 10.799140000000001, + "course": 247.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35022, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1820.0262380444499, + "totalDistance": 1291796.113376854, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:05.869+00:00", + "deviceTime": "2025-07-07T04:29:38.000+00:00", + "fixTime": "2025-07-07T04:29:38.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793262222222225, + "longitude": 24.129953333333333, + "altitude": 0.0, + "speed": 23.218151000000002, + "course": 257.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35023, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1896.7152228228897, + "totalDistance": 1291872.8023616325, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:06.861+00:00", + "deviceTime": "2025-07-07T04:29:51.000+00:00", + "fixTime": "2025-07-07T04:29:51.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79306555555555, + "longitude": 24.128905555555555, + "altitude": 0.0, + "speed": 7.0194410000000005, + "course": 255.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35024, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1955.9645058425895, + "totalDistance": 1291932.0516446522, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:07.861+00:00", + "deviceTime": "2025-07-07T04:30:05.000+00:00", + "fixTime": "2025-07-07T04:30:05.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79299222222222, + "longitude": 24.128117777777778, + "altitude": 0.0, + "speed": 17.818581000000002, + "course": 271.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35025, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2064.082906887677, + "totalDistance": 1292040.1700456971, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:14.875+00:00", + "deviceTime": "2025-07-07T04:30:15.000+00:00", + "fixTime": "2025-07-07T04:30:15.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793151111111115, + "longitude": 24.126743333333334, + "altitude": 0.0, + "speed": 15.658753, + "course": 279.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35026, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2141.3194532213247, + "totalDistance": 1292117.4065920308, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:15.659+00:00", + "deviceTime": "2025-07-07T04:30:31.000+00:00", + "fixTime": "2025-07-07T04:30:31.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79327333333333, + "longitude": 24.125763333333335, + "altitude": 0.0, + "speed": 0.0, + "course": 280.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35027, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2245.8106923253144, + "totalDistance": 1292221.8978311347, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:16.659+00:00", + "deviceTime": "2025-07-07T04:31:00.000+00:00", + "fixTime": "2025-07-07T04:31:00.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79341888888889, + "longitude": 24.124433333333332, + "altitude": 0.0, + "speed": 30.777549, + "course": 280.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35028, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2351.1949229638335, + "totalDistance": 1292327.2820617734, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:17.659+00:00", + "deviceTime": "2025-07-07T04:31:14.000+00:00", + "fixTime": "2025-07-07T04:31:14.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79361333333333, + "longitude": 24.123102222222222, + "altitude": 0.0, + "speed": 32.937377, + "course": 279.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35030, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2484.085038862162, + "totalDistance": 1292460.1721776717, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:22.666+00:00", + "deviceTime": "2025-07-07T04:31:22.000+00:00", + "fixTime": "2025-07-07T04:31:22.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793706666666665, + "longitude": 24.12139111111111, + "altitude": 0.0, + "speed": 26.99785, + "course": 275.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35031, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2513.7919095769707, + "totalDistance": 1292489.8790483864, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:23.659+00:00", + "deviceTime": "2025-07-07T04:31:24.000+00:00", + "fixTime": "2025-07-07T04:31:24.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793683333333334, + "longitude": 24.120999444444443, + "altitude": 0.0, + "speed": 28.617721, + "course": 254.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35032, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2692.408535554249, + "totalDistance": 1292668.4956743638, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:24.659+00:00", + "deviceTime": "2025-07-07T04:31:36.000+00:00", + "fixTime": "2025-07-07T04:31:36.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793525, + "longitude": 24.11864611111111, + "altitude": 0.0, + "speed": 27.537807, + "course": 267.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35033, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2844.0219440764686, + "totalDistance": 1292820.109082886, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:25.667+00:00", + "deviceTime": "2025-07-07T04:31:46.000+00:00", + "fixTime": "2025-07-07T04:31:46.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79346722222222, + "longitude": 24.116667777777778, + "altitude": 0.0, + "speed": 30.777549, + "course": 263.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35034, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2993.15965989949, + "totalDistance": 1292969.246798709, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:26.659+00:00", + "deviceTime": "2025-07-07T04:31:56.000+00:00", + "fixTime": "2025-07-07T04:31:56.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793218333333336, + "longitude": 24.114694999999998, + "altitude": 0.0, + "speed": 29.697635000000002, + "course": 259.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35035, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3199.7376811238987, + "totalDistance": 1293175.8248199334, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:27.659+00:00", + "deviceTime": "2025-07-07T04:32:09.000+00:00", + "fixTime": "2025-07-07T04:32:09.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792877777777775, + "longitude": 24.11197611111111, + "altitude": 0.0, + "speed": 29.697635000000002, + "course": 259.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35036, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3325.5265861297717, + "totalDistance": 1293301.6137249393, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:28.659+00:00", + "deviceTime": "2025-07-07T04:32:19.000+00:00", + "fixTime": "2025-07-07T04:32:19.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79266888888889, + "longitude": 24.11032666666667, + "altitude": 0.0, + "speed": 18.898495, + "course": 263.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35037, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3345.032659135459, + "totalDistance": 1293321.119797945, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:29.667+00:00", + "deviceTime": "2025-07-07T04:32:21.000+00:00", + "fixTime": "2025-07-07T04:32:21.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792677222222224, + "longitude": 24.110075555555557, + "altitude": 0.0, + "speed": 19.438452, + "course": 288.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35039, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3383.3318926987677, + "totalDistance": 1293359.4190315083, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:34.667+00:00", + "deviceTime": "2025-07-07T04:32:25.000+00:00", + "fixTime": "2025-07-07T04:32:25.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79268555555556, + "longitude": 24.109581666666664, + "altitude": 0.0, + "speed": 21.598280000000003, + "course": 235.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35040, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3425.2082459530056, + "totalDistance": 1293401.2953847626, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:35.659+00:00", + "deviceTime": "2025-07-07T04:32:29.000+00:00", + "fixTime": "2025-07-07T04:32:29.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79248833333333, + "longitude": 24.10902111111111, + "altitude": 0.0, + "speed": 25.917936, + "course": 258.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35041, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3597.983357434887, + "totalDistance": 1293574.0704962444, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:36.661+00:00", + "deviceTime": "2025-07-07T04:32:42.000+00:00", + "fixTime": "2025-07-07T04:32:42.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79216722222222, + "longitude": 24.10676388888889, + "altitude": 0.0, + "speed": 28.077764000000002, + "course": 257.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35042, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3729.193119674452, + "totalDistance": 1293705.280258484, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:37.661+00:00", + "deviceTime": "2025-07-07T04:32:52.000+00:00", + "fixTime": "2025-07-07T04:32:52.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.791920555555556, + "longitude": 24.105054444444445, + "altitude": 0.0, + "speed": 26.99785, + "course": 258.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35043, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3872.758837498868, + "totalDistance": 1293848.8459763085, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:38.660+00:00", + "deviceTime": "2025-07-07T04:33:02.000+00:00", + "fixTime": "2025-07-07T04:33:02.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79166055555555, + "longitude": 24.103188888888887, + "altitude": 0.0, + "speed": 29.157678, + "course": 258.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35044, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4048.6612673621903, + "totalDistance": 1294024.7484061718, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:39.661+00:00", + "deviceTime": "2025-07-07T04:33:15.000+00:00", + "fixTime": "2025-07-07T04:33:15.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79134166666667, + "longitude": 24.100908333333333, + "altitude": 0.0, + "speed": 26.99785, + "course": 259.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35045, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4183.962571571091, + "totalDistance": 1294160.0497103806, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:40.661+00:00", + "deviceTime": "2025-07-07T04:33:25.000+00:00", + "fixTime": "2025-07-07T04:33:25.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79110166666667, + "longitude": 24.099157777777776, + "altitude": 0.0, + "speed": 25.377979, + "course": 257.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35046, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4315.029628672752, + "totalDistance": 1294291.1167674821, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:41.661+00:00", + "deviceTime": "2025-07-07T04:33:35.000+00:00", + "fixTime": "2025-07-07T04:33:35.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79086555555555, + "longitude": 24.097464444444444, + "altitude": 0.0, + "speed": 24.298065, + "course": 258.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35048, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4487.044623020476, + "totalDistance": 1294463.13176183, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:52.507+00:00", + "deviceTime": "2025-07-07T04:33:48.000+00:00", + "fixTime": "2025-07-07T04:33:48.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79056166666667, + "longitude": 24.095245555555557, + "altitude": 0.0, + "speed": 25.917936, + "course": 259.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35049, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4610.688494116152, + "totalDistance": 1294586.7756329256, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:53.467+00:00", + "deviceTime": "2025-07-07T04:33:58.000+00:00", + "fixTime": "2025-07-07T04:33:58.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79033555555556, + "longitude": 24.09365277777778, + "altitude": 0.0, + "speed": 22.138237, + "course": 259.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35050, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4713.3182136979285, + "totalDistance": 1294689.4053525075, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:54.467+00:00", + "deviceTime": "2025-07-07T04:34:08.000+00:00", + "fixTime": "2025-07-07T04:34:08.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79013, + "longitude": 24.092332222222222, + "altitude": 0.0, + "speed": 11.339097, + "course": 259.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35051, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4802.688830063726, + "totalDistance": 1294778.7759688732, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:55.460+00:00", + "deviceTime": "2025-07-07T04:34:22.000+00:00", + "fixTime": "2025-07-07T04:34:22.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.78998666666667, + "longitude": 24.091182777777775, + "altitude": 0.0, + "speed": 14.578839, + "course": 264.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35052, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4830.774170203011, + "totalDistance": 1294806.8613090124, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:56.459+00:00", + "deviceTime": "2025-07-07T04:34:26.000+00:00", + "fixTime": "2025-07-07T04:34:26.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79004944444445, + "longitude": 24.09082, + "altitude": 0.0, + "speed": 15.118796, + "course": 319.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35053, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4838.277323304506, + "totalDistance": 1294814.364462114, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:57.466+00:00", + "deviceTime": "2025-07-07T04:34:28.000+00:00", + "fixTime": "2025-07-07T04:34:28.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.790195555555556, + "longitude": 24.090721666666667, + "altitude": 0.0, + "speed": 19.438452, + "course": 339.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35054, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4886.365431933276, + "totalDistance": 1294862.4525707427, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:58.459+00:00", + "deviceTime": "2025-07-07T04:34:38.000+00:00", + "fixTime": "2025-07-07T04:34:38.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79127944444444, + "longitude": 24.090111666666665, + "altitude": 0.0, + "speed": 25.377979, + "course": 337.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35055, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4955.965090065332, + "totalDistance": 1294932.0522288748, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:59.459+00:00", + "deviceTime": "2025-07-07T04:34:54.000+00:00", + "fixTime": "2025-07-07T04:34:54.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79273, + "longitude": 24.089286666666666, + "altitude": 0.0, + "speed": 29.157678, + "course": 339.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35057, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5017.099660725424, + "totalDistance": 1294993.1867995348, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:04.467+00:00", + "deviceTime": "2025-07-07T04:35:04.000+00:00", + "fixTime": "2025-07-07T04:35:04.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793997222222224, + "longitude": 24.088614999999997, + "altitude": 0.0, + "speed": 26.457893000000002, + "course": 344.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35058, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5072.7570001727445, + "totalDistance": 1295048.8441389822, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:05.459+00:00", + "deviceTime": "2025-07-07T04:35:14.000+00:00", + "fixTime": "2025-07-07T04:35:14.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.795339444444444, + "longitude": 24.08807388888889, + "altitude": 0.0, + "speed": 30.237592, + "course": 344.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35059, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5170.208126317026, + "totalDistance": 1295146.2952651265, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:06.459+00:00", + "deviceTime": "2025-07-07T04:35:30.000+00:00", + "fixTime": "2025-07-07T04:35:30.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.797475, + "longitude": 24.08720611111111, + "altitude": 0.0, + "speed": 30.777549, + "course": 344.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35060, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5236.739265000647, + "totalDistance": 1295212.8264038102, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:07.460+00:00", + "deviceTime": "2025-07-07T04:35:40.000+00:00", + "fixTime": "2025-07-07T04:35:40.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79879888888888, + "longitude": 24.08665277777778, + "altitude": 0.0, + "speed": 24.298065, + "course": 343.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35061, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5254.765757872008, + "totalDistance": 1295230.8528966815, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:08.467+00:00", + "deviceTime": "2025-07-07T04:35:44.000+00:00", + "fixTime": "2025-07-07T04:35:44.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.799126666666666, + "longitude": 24.086502777777778, + "altitude": 0.0, + "speed": 13.498925, + "course": 326.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35062, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5264.911964674059, + "totalDistance": 1295240.9991034835, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:09.468+00:00", + "deviceTime": "2025-07-07T04:35:46.000+00:00", + "fixTime": "2025-07-07T04:35:46.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79917722222222, + "longitude": 24.086383333333334, + "altitude": 0.0, + "speed": 8.639312, + "course": 273.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35063, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5271.850038123666, + "totalDistance": 1295247.937176933, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:10.468+00:00", + "deviceTime": "2025-07-07T04:35:48.000+00:00", + "fixTime": "2025-07-07T04:35:48.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.799168333333334, + "longitude": 24.086289999999998, + "altitude": 0.0, + "speed": 5.939527, + "course": 254.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35064, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5329.067718252046, + "totalDistance": 1295305.1548570616, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:11.460+00:00", + "deviceTime": "2025-07-07T04:36:05.000+00:00", + "fixTime": "2025-07-07T04:36:05.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79900055555555, + "longitude": 24.08549611111111, + "altitude": 0.0, + "speed": 0.0, + "course": 132.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35066, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5304.958904061157, + "totalDistance": 1295281.0460428707, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:16.467+00:00", + "deviceTime": "2025-07-07T13:51:20.000+00:00", + "fixTime": "2025-07-07T13:51:20.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79905722222222, + "longitude": 24.08582666666667, + "altitude": 0.0, + "speed": 9.719226, + "course": 71.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35067, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5276.853023698395, + "totalDistance": 1295252.9401625078, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:17.460+00:00", + "deviceTime": "2025-07-07T13:51:32.000+00:00", + "fixTime": "2025-07-07T13:51:32.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79902611111112, + "longitude": 24.086186666666666, + "altitude": 0.0, + "speed": 16.198710000000002, + "course": 145.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35068, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5267.439047375433, + "totalDistance": 1295243.526186185, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:18.460+00:00", + "deviceTime": "2025-07-07T13:51:34.000+00:00", + "fixTime": "2025-07-07T13:51:34.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79884722222222, + "longitude": 24.086263333333335, + "altitude": 0.0, + "speed": 23.758108, + "course": 168.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35069, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5144.082686519279, + "totalDistance": 1295120.1698253287, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:19.468+00:00", + "deviceTime": "2025-07-07T13:51:50.000+00:00", + "fixTime": "2025-07-07T13:51:50.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79632277777778, + "longitude": 24.087314444444445, + "altitude": 0.0, + "speed": 37.79699, + "course": 163.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35070, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5069.207710564146, + "totalDistance": 1295045.2948493736, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:26.450+00:00", + "deviceTime": "2025-07-07T13:52:00.000+00:00", + "fixTime": "2025-07-07T13:52:00.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79478222222222, + "longitude": 24.08803888888889, + "altitude": 0.0, + "speed": 28.077764000000002, + "course": 165.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35071, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5046.872703988213, + "totalDistance": 1295022.9598427976, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:27.260+00:00", + "deviceTime": "2025-07-07T13:52:04.000+00:00", + "fixTime": "2025-07-07T13:52:04.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79439, + "longitude": 24.08827666666667, + "altitude": 0.0, + "speed": 20.518366, + "course": 137.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35072, + "attributes": { + "type": 18, + "sat": 12, + "distance": 5026.959253948468, + "totalDistance": 1295003.046392758, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:28.260+00:00", + "deviceTime": "2025-07-07T13:52:08.000+00:00", + "fixTime": "2025-07-07T13:52:08.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79413944444445, + "longitude": 24.08850388888889, + "altitude": 0.0, + "speed": 17.818581000000002, + "course": 166.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35073, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4939.036994520285, + "totalDistance": 1294915.1241333298, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:29.260+00:00", + "deviceTime": "2025-07-07T13:52:24.000+00:00", + "fixTime": "2025-07-07T13:52:24.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79229222222222, + "longitude": 24.08947611111111, + "altitude": 0.0, + "speed": 24.298065, + "course": 161.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35075, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4921.691654521144, + "totalDistance": 1294897.7787933305, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:34.260+00:00", + "deviceTime": "2025-07-07T13:52:28.000+00:00", + "fixTime": "2025-07-07T13:52:28.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79198944444445, + "longitude": 24.089683333333333, + "altitude": 0.0, + "speed": 14.038882000000001, + "course": 130.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35076, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4906.157484170787, + "totalDistance": 1294882.2446229802, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:35.261+00:00", + "deviceTime": "2025-07-07T13:52:30.000+00:00", + "fixTime": "2025-07-07T13:52:30.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79196166666667, + "longitude": 24.089882222222222, + "altitude": 0.0, + "speed": 17.818581000000002, + "course": 87.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35077, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4764.979487432716, + "totalDistance": 1294741.0666262421, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:36.260+00:00", + "deviceTime": "2025-07-07T13:52:40.000+00:00", + "fixTime": "2025-07-07T13:52:40.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792319444444445, + "longitude": 24.09172222222222, + "altitude": 0.0, + "speed": 32.397420000000004, + "course": 76.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35078, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4616.281217099183, + "totalDistance": 1294592.3683559087, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:37.260+00:00", + "deviceTime": "2025-07-07T13:52:50.000+00:00", + "fixTime": "2025-07-07T13:52:50.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792677222222224, + "longitude": 24.093664999999998, + "altitude": 0.0, + "speed": 31.857463000000003, + "course": 71.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35079, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4448.270695039948, + "totalDistance": 1294424.3578338495, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:38.260+00:00", + "deviceTime": "2025-07-07T13:53:01.000+00:00", + "fixTime": "2025-07-07T13:53:01.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79319611111111, + "longitude": 24.09587888888889, + "altitude": 0.0, + "speed": 25.377979, + "course": 72.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35080, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4407.646037949916, + "totalDistance": 1294383.7331767594, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:39.260+00:00", + "deviceTime": "2025-07-07T13:53:05.000+00:00", + "fixTime": "2025-07-07T13:53:05.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79336277777778, + "longitude": 24.096420555555557, + "altitude": 0.0, + "speed": 21.598280000000003, + "course": 42.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35081, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4400.936743146546, + "totalDistance": 1294377.023881956, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:40.260+00:00", + "deviceTime": "2025-07-07T13:53:07.000+00:00", + "fixTime": "2025-07-07T13:53:07.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79353666666667, + "longitude": 24.09652611111111, + "altitude": 0.0, + "speed": 20.518366, + "course": 4.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35082, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4407.142246108876, + "totalDistance": 1294383.2293849185, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:41.260+00:00", + "deviceTime": "2025-07-07T13:53:09.000+00:00", + "fixTime": "2025-07-07T13:53:09.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79371722222222, + "longitude": 24.096466666666668, + "altitude": 0.0, + "speed": 19.438452, + "course": 335.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35084, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4414.505356314462, + "totalDistance": 1294390.5924951239, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:46.267+00:00", + "deviceTime": "2025-07-07T13:53:11.000+00:00", + "fixTime": "2025-07-07T13:53:11.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793875, + "longitude": 24.096390555555555, + "altitude": 0.0, + "speed": 16.738667, + "course": 355.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35085, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4408.620286632105, + "totalDistance": 1294384.7074254416, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:47.260+00:00", + "deviceTime": "2025-07-07T13:53:13.000+00:00", + "fixTime": "2025-07-07T13:53:13.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.794045555555556, + "longitude": 24.096488333333333, + "altitude": 0.0, + "speed": 21.598280000000003, + "course": 31.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35086, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4390.578653422494, + "totalDistance": 1294366.665792232, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:48.260+00:00", + "deviceTime": "2025-07-07T13:53:15.000+00:00", + "fixTime": "2025-07-07T13:53:15.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79418666666667, + "longitude": 24.096740555555556, + "altitude": 0.0, + "speed": 26.457893000000002, + "course": 57.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35087, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4361.482355440353, + "totalDistance": 1294337.5694942498, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:49.260+00:00", + "deviceTime": "2025-07-07T13:53:17.000+00:00", + "fixTime": "2025-07-07T13:53:17.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79427166666667, + "longitude": 24.09712888888889, + "altitude": 0.0, + "speed": 32.937377, + "course": 76.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35088, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4154.793427688008, + "totalDistance": 1294130.8805664976, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:50.259+00:00", + "deviceTime": "2025-07-07T13:53:30.000+00:00", + "fixTime": "2025-07-07T13:53:30.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79474333333334, + "longitude": 24.099878888888888, + "altitude": 0.0, + "speed": 29.157678, + "course": 74.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35089, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4101.201300456561, + "totalDistance": 1294077.2884392662, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:51.267+00:00", + "deviceTime": "2025-07-07T13:53:34.000+00:00", + "fixTime": "2025-07-07T13:53:34.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79477555555555, + "longitude": 24.100579444444442, + "altitude": 0.0, + "speed": 26.457893000000002, + "course": 101.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35090, + "attributes": { + "type": 18, + "sat": 12, + "distance": 4072.557941550186, + "totalDistance": 1294048.6450803597, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:52.267+00:00", + "deviceTime": "2025-07-07T13:53:36.000+00:00", + "fixTime": "2025-07-07T13:53:36.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79478888888889, + "longitude": 24.100953333333333, + "altitude": 0.0, + "speed": 31.317506, + "course": 73.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35091, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3906.538641127405, + "totalDistance": 1293882.6257799368, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:53.259+00:00", + "deviceTime": "2025-07-07T13:53:46.000+00:00", + "fixTime": "2025-07-07T13:53:46.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.795114444444444, + "longitude": 24.103168333333336, + "altitude": 0.0, + "speed": 34.017291, + "course": 79.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35093, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3764.3224588791736, + "totalDistance": 1293740.4095976886, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:04.147+00:00", + "deviceTime": "2025-07-07T13:53:56.000+00:00", + "fixTime": "2025-07-07T13:53:56.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79539388888889, + "longitude": 24.105075, + "altitude": 0.0, + "speed": 28.617721, + "course": 78.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35094, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3626.3915880937475, + "totalDistance": 1293602.4787269032, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:05.074+00:00", + "deviceTime": "2025-07-07T13:54:07.000+00:00", + "fixTime": "2025-07-07T13:54:07.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79565777777778, + "longitude": 24.106931666666664, + "altitude": 0.0, + "speed": 21.598280000000003, + "course": 77.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35095, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3543.230992505204, + "totalDistance": 1293519.3181313146, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:06.065+00:00", + "deviceTime": "2025-07-07T13:54:17.000+00:00", + "fixTime": "2025-07-07T13:54:17.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.795813888888894, + "longitude": 24.108055, + "altitude": 0.0, + "speed": 17.278624, + "course": 79.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35096, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3490.0049432785154, + "totalDistance": 1293466.092082088, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:07.066+00:00", + "deviceTime": "2025-07-07T13:54:23.000+00:00", + "fixTime": "2025-07-07T13:54:23.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.795859444444446, + "longitude": 24.10876222222222, + "altitude": 0.0, + "speed": 15.658753, + "course": 107.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35097, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3476.516851347653, + "totalDistance": 1293452.6039901571, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:08.075+00:00", + "deviceTime": "2025-07-07T13:54:25.000+00:00", + "fixTime": "2025-07-07T13:54:25.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79574888888889, + "longitude": 24.108911111111112, + "altitude": 0.0, + "speed": 18.898495, + "course": 156.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35098, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3455.8848363912225, + "totalDistance": 1293431.9719752008, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:09.065+00:00", + "deviceTime": "2025-07-07T13:54:34.000+00:00", + "fixTime": "2025-07-07T13:54:34.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79512777777777, + "longitude": 24.109036111111113, + "altitude": 0.0, + "speed": 15.658753, + "course": 185.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35099, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3447.62495847274, + "totalDistance": 1293423.7120972823, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:10.066+00:00", + "deviceTime": "2025-07-07T13:54:36.000+00:00", + "fixTime": "2025-07-07T13:54:36.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.794941666666666, + "longitude": 24.10910388888889, + "altitude": 0.0, + "speed": 25.377979, + "course": 156.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35100, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3399.8591682740175, + "totalDistance": 1293375.9463070836, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:11.066+00:00", + "deviceTime": "2025-07-07T13:54:46.000+00:00", + "fixTime": "2025-07-07T13:54:46.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793688888888894, + "longitude": 24.10949722222222, + "altitude": 0.0, + "speed": 22.678194, + "course": 168.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35102, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3372.921175710643, + "totalDistance": 1293349.0083145201, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:16.072+00:00", + "deviceTime": "2025-07-07T13:55:00.000+00:00", + "fixTime": "2025-07-07T13:55:00.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792827777777774, + "longitude": 24.109731666666665, + "altitude": 0.0, + "speed": 0.0, + "course": 173.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35103, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3343.5873465679724, + "totalDistance": 1293319.6744853775, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:17.073+00:00", + "deviceTime": "2025-07-07T13:55:10.000+00:00", + "fixTime": "2025-07-07T13:55:10.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79253333333333, + "longitude": 24.110079444444445, + "altitude": 0.0, + "speed": 24.298065, + "course": 72.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35104, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3193.1709735072873, + "totalDistance": 1293169.2581123167, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:18.065+00:00", + "deviceTime": "2025-07-07T13:55:20.000+00:00", + "fixTime": "2025-07-07T13:55:20.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79281833333334, + "longitude": 24.11205388888889, + "altitude": 0.0, + "speed": 25.917936, + "course": 77.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35105, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3152.50513801735, + "totalDistance": 1293128.5922768267, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:19.065+00:00", + "deviceTime": "2025-07-07T13:55:30.000+00:00", + "fixTime": "2025-07-07T13:55:30.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792898888888885, + "longitude": 24.112589444444446, + "altitude": 0.0, + "speed": 0.0, + "course": 84.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35106, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3136.9327941317356, + "totalDistance": 1293113.0199329413, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:20.065+00:00", + "deviceTime": "2025-07-07T13:55:46.000+00:00", + "fixTime": "2025-07-07T13:55:46.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792923333333334, + "longitude": 24.112793888888888, + "altitude": 0.0, + "speed": 0.0, + "course": 85.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35107, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3126.8856110623265, + "totalDistance": 1293102.972749872, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:21.073+00:00", + "deviceTime": "2025-07-07T13:56:08.000+00:00", + "fixTime": "2025-07-07T13:56:08.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79288388888889, + "longitude": 24.11291888888889, + "altitude": 0.0, + "speed": 7.559398, + "course": 112.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35108, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3114.7809581985616, + "totalDistance": 1293090.868097008, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:22.065+00:00", + "deviceTime": "2025-07-07T13:56:10.000+00:00", + "fixTime": "2025-07-07T13:56:10.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79281722222222, + "longitude": 24.113067222222224, + "altitude": 0.0, + "speed": 19.438452, + "course": 129.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35109, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3033.7209911937166, + "totalDistance": 1293009.8081300033, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:23.065+00:00", + "deviceTime": "2025-07-07T13:56:21.000+00:00", + "fixTime": "2025-07-07T13:56:21.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79216666666667, + "longitude": 24.114045555555556, + "altitude": 0.0, + "speed": 14.038882000000001, + "course": 154.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35111, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3029.0093608844745, + "totalDistance": 1293005.096499694, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:28.074+00:00", + "deviceTime": "2025-07-07T13:56:23.000+00:00", + "fixTime": "2025-07-07T13:56:23.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79203555555556, + "longitude": 24.114095, + "altitude": 0.0, + "speed": 15.658753, + "course": 171.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35112, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3028.6435070908587, + "totalDistance": 1293004.7306459004, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:29.073+00:00", + "deviceTime": "2025-07-07T13:56:27.000+00:00", + "fixTime": "2025-07-07T13:56:27.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79176166666667, + "longitude": 24.11407888888889, + "altitude": 0.0, + "speed": 12.419011000000001, + "course": 188.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35113, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3025.784908745342, + "totalDistance": 1293001.872047555, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:30.073+00:00", + "deviceTime": "2025-07-07T13:56:35.000+00:00", + "fixTime": "2025-07-07T13:56:35.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79143555555555, + "longitude": 24.11409611111111, + "altitude": 0.0, + "speed": 5.939527, + "course": 169.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35114, + "attributes": { + "type": 18, + "sat": 12, + "distance": 3016.428543490729, + "totalDistance": 1292992.5156823003, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:31.065+00:00", + "deviceTime": "2025-07-07T13:56:41.000+00:00", + "fixTime": "2025-07-07T13:56:41.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79120277777778, + "longitude": 24.114206111111113, + "altitude": 0.0, + "speed": 10.259183, + "course": 154.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35115, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2964.784575596981, + "totalDistance": 1292940.8717144064, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:38.076+00:00", + "deviceTime": "2025-07-07T13:56:52.000+00:00", + "fixTime": "2025-07-07T13:56:52.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79059, + "longitude": 24.114857222222223, + "altitude": 0.0, + "speed": 15.658753, + "course": 138.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35116, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2916.968707333994, + "totalDistance": 1292893.0558461435, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:38.867+00:00", + "deviceTime": "2025-07-07T13:57:02.000+00:00", + "fixTime": "2025-07-07T13:57:02.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79020944444445, + "longitude": 24.11547444444444, + "altitude": 0.0, + "speed": 0.0, + "course": 131.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35117, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2579.399500644814, + "totalDistance": 1292555.4866394543, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:39.867+00:00", + "deviceTime": "2025-07-07T13:58:15.000+00:00", + "fixTime": "2025-07-07T13:58:15.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79087888888889, + "longitude": 24.11982722222222, + "altitude": 0.0, + "speed": 27.537807, + "course": 24.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35118, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2543.5011547408176, + "totalDistance": 1292519.5882935503, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:40.867+00:00", + "deviceTime": "2025-07-07T13:58:25.000+00:00", + "fixTime": "2025-07-07T13:58:25.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792076111111115, + "longitude": 24.120366666666666, + "altitude": 0.0, + "speed": 28.077764000000002, + "course": 19.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35120, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2511.9124141609273, + "totalDistance": 1292487.9995529705, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:45.874+00:00", + "deviceTime": "2025-07-07T13:58:35.000+00:00", + "fixTime": "2025-07-07T13:58:35.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79308222222222, + "longitude": 24.120911111111113, + "altitude": 0.0, + "speed": 13.498925, + "course": 27.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35121, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2491.2281692166007, + "totalDistance": 1292467.315308026, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:46.875+00:00", + "deviceTime": "2025-07-07T13:58:53.000+00:00", + "fixTime": "2025-07-07T13:58:53.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79337388888889, + "longitude": 24.121231666666667, + "altitude": 0.0, + "speed": 0.0, + "course": 32.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35122, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2480.2769659805845, + "totalDistance": 1292456.3641047901, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:47.875+00:00", + "deviceTime": "2025-07-07T13:59:33.000+00:00", + "fixTime": "2025-07-07T13:59:33.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793457222222216, + "longitude": 24.121389999999998, + "altitude": 0.0, + "speed": 5.939527, + "course": 53.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35123, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2472.5258152268652, + "totalDistance": 1292448.6129540363, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:48.867+00:00", + "deviceTime": "2025-07-07T13:59:35.000+00:00", + "fixTime": "2025-07-07T13:59:35.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79349555555556, + "longitude": 24.12149833333333, + "altitude": 0.0, + "speed": 11.879054, + "course": 69.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35124, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2444.702919261049, + "totalDistance": 1292420.7900580706, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:49.867+00:00", + "deviceTime": "2025-07-07T13:59:41.000+00:00", + "fixTime": "2025-07-07T13:59:41.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79354111111111, + "longitude": 24.121869444444446, + "altitude": 0.0, + "speed": 7.0194410000000005, + "course": 86.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35125, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2387.3669799904005, + "totalDistance": 1292363.4541188, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:50.867+00:00", + "deviceTime": "2025-07-07T14:00:09.000+00:00", + "fixTime": "2025-07-07T14:00:09.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793569444444444, + "longitude": 24.122621666666667, + "altitude": 0.0, + "speed": 0.0, + "course": 101.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35126, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2358.701732642062, + "totalDistance": 1292334.7888714515, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:51.867+00:00", + "deviceTime": "2025-07-07T14:00:23.000+00:00", + "fixTime": "2025-07-07T14:00:23.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79356166666667, + "longitude": 24.122993333333334, + "altitude": 0.0, + "speed": 0.0, + "course": 93.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35127, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2264.3835429026817, + "totalDistance": 1292240.4706817123, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:52.867+00:00", + "deviceTime": "2025-07-07T14:00:40.000+00:00", + "fixTime": "2025-07-07T14:00:40.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79347722222222, + "longitude": 24.12420388888889, + "altitude": 0.0, + "speed": 5.399570000000001, + "course": 99.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35129, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2216.491349739748, + "totalDistance": 1292192.5784885492, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:57.875+00:00", + "deviceTime": "2025-07-07T14:01:15.000+00:00", + "fixTime": "2025-07-07T14:01:15.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79344833333333, + "longitude": 24.124821666666666, + "altitude": 0.0, + "speed": 0.0, + "course": 91.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35130, + "attributes": { + "type": 18, + "sat": 12, + "distance": 2132.319182508846, + "totalDistance": 1292108.4063213184, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:58.867+00:00", + "deviceTime": "2025-07-07T14:01:56.000+00:00", + "fixTime": "2025-07-07T14:01:56.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79333, + "longitude": 24.12589277777778, + "altitude": 0.0, + "speed": 19.438452, + "course": 101.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35131, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1994.6745686003921, + "totalDistance": 1291970.76170741, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:59.875+00:00", + "deviceTime": "2025-07-07T14:02:09.000+00:00", + "fixTime": "2025-07-07T14:02:09.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79309833333333, + "longitude": 24.127636111111112, + "altitude": 0.0, + "speed": 15.658753, + "course": 101.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35132, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1938.1858968746008, + "totalDistance": 1291914.2730356841, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:00.867+00:00", + "deviceTime": "2025-07-07T14:02:15.000+00:00", + "fixTime": "2025-07-07T14:02:15.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793045000000006, + "longitude": 24.128360555555556, + "altitude": 0.0, + "speed": 23.758108, + "course": 84.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35133, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1813.8302889954937, + "totalDistance": 1291789.917427805, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:01.867+00:00", + "deviceTime": "2025-07-07T14:02:25.000+00:00", + "fixTime": "2025-07-07T14:02:25.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79329333333334, + "longitude": 24.130042222222222, + "altitude": 0.0, + "speed": 20.518366, + "course": 80.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35134, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1723.5688139532074, + "totalDistance": 1291699.6559527628, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:02.867+00:00", + "deviceTime": "2025-07-07T14:02:37.000+00:00", + "fixTime": "2025-07-07T14:02:37.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79334166666667, + "longitude": 24.13123722222222, + "altitude": 0.0, + "speed": 20.518366, + "course": 93.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35135, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1630.369199361305, + "totalDistance": 1291606.456338171, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:03.867+00:00", + "deviceTime": "2025-07-07T14:02:45.000+00:00", + "fixTime": "2025-07-07T14:02:45.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793080555555555, + "longitude": 24.132388888888887, + "altitude": 0.0, + "speed": 15.658753, + "course": 126.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35136, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1606.2412840493905, + "totalDistance": 1291582.3284228588, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:04.867+00:00", + "deviceTime": "2025-07-07T14:02:48.000+00:00", + "fixTime": "2025-07-07T14:02:48.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792976111111116, + "longitude": 24.13267777777778, + "altitude": 0.0, + "speed": 18.358538, + "course": 94.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35138, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1476.5941119928625, + "totalDistance": 1291452.6812508025, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:12.717+00:00", + "deviceTime": "2025-07-07T14:02:57.000+00:00", + "fixTime": "2025-07-07T14:02:57.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79271444444444, + "longitude": 24.134307777777774, + "altitude": 0.0, + "speed": 25.917936, + "course": 104.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35139, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1339.4636425683468, + "totalDistance": 1291315.5507813778, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:13.672+00:00", + "deviceTime": "2025-07-07T14:03:07.000+00:00", + "fixTime": "2025-07-07T14:03:07.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792395000000006, + "longitude": 24.13602222222222, + "altitude": 0.0, + "speed": 26.99785, + "course": 106.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35140, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1151.4344674022448, + "totalDistance": 1291127.5216062118, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:14.664+00:00", + "deviceTime": "2025-07-07T14:03:20.000+00:00", + "fixTime": "2025-07-07T14:03:20.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.791965, + "longitude": 24.13837777777778, + "altitude": 0.0, + "speed": 29.157678, + "course": 102.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35141, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1095.0435350364125, + "totalDistance": 1291071.130673846, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:15.672+00:00", + "deviceTime": "2025-07-07T14:03:24.000+00:00", + "fixTime": "2025-07-07T14:03:24.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.791894444444445, + "longitude": 24.139097222222222, + "altitude": 0.0, + "speed": 26.457893000000002, + "course": 87.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35142, + "attributes": { + "type": 18, + "sat": 12, + "distance": 1070.1324799295821, + "totalDistance": 1291046.219618739, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:16.664+00:00", + "deviceTime": "2025-07-07T14:03:26.000+00:00", + "fixTime": "2025-07-07T14:03:26.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79197833333334, + "longitude": 24.139440555555556, + "altitude": 0.0, + "speed": 28.617721, + "course": 62.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35143, + "attributes": { + "type": 18, + "sat": 12, + "distance": 968.6393724766949, + "totalDistance": 1290944.726511286, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:17.664+00:00", + "deviceTime": "2025-07-07T14:03:36.000+00:00", + "fixTime": "2025-07-07T14:03:36.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792806666666664, + "longitude": 24.141038888888886, + "altitude": 0.0, + "speed": 22.138237, + "course": 52.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35144, + "attributes": { + "type": 18, + "sat": 12, + "distance": 919.1032655665958, + "totalDistance": 1290895.190404376, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:18.672+00:00", + "deviceTime": "2025-07-07T14:03:52.000+00:00", + "fixTime": "2025-07-07T14:03:52.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793266111111116, + "longitude": 24.141920555555558, + "altitude": 0.0, + "speed": 20.518366, + "course": 58.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35145, + "attributes": { + "type": 18, + "sat": 12, + "distance": 823.6759863340419, + "totalDistance": 1290799.7631251435, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:19.672+00:00", + "deviceTime": "2025-07-07T14:04:02.000+00:00", + "fixTime": "2025-07-07T14:04:02.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79392, + "longitude": 24.14367888888889, + "altitude": 0.0, + "speed": 28.077764000000002, + "course": 63.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35147, + "attributes": { + "type": 18, + "sat": 12, + "distance": 805.0853639218939, + "totalDistance": 1290781.1725027314, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:24.672+00:00", + "deviceTime": "2025-07-07T14:04:04.000+00:00", + "fixTime": "2025-07-07T14:04:04.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793995, + "longitude": 24.144010555555553, + "altitude": 0.0, + "speed": 24.838022000000002, + "course": 87.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35148, + "attributes": { + "type": 18, + "sat": 12, + "distance": 782.2665169317954, + "totalDistance": 1290758.3536557413, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:25.665+00:00", + "deviceTime": "2025-07-07T14:04:06.000+00:00", + "fixTime": "2025-07-07T14:04:06.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79393944444445, + "longitude": 24.144303333333333, + "altitude": 0.0, + "speed": 22.138237, + "course": 123.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35149, + "attributes": { + "type": 18, + "sat": 12, + "distance": 762.2422467036417, + "totalDistance": 1290738.3293855132, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:26.665+00:00", + "deviceTime": "2025-07-07T14:04:08.000+00:00", + "fixTime": "2025-07-07T14:04:08.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793796666666665, + "longitude": 24.144483888888892, + "altitude": 0.0, + "speed": 18.898495, + "course": 150.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35150, + "attributes": { + "type": 18, + "sat": 12, + "distance": 754.3474017973289, + "totalDistance": 1290730.4345406068, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:27.672+00:00", + "deviceTime": "2025-07-07T14:04:10.000+00:00", + "fixTime": "2025-07-07T14:04:10.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79360444444444, + "longitude": 24.14445, + "altitude": 0.0, + "speed": 21.598280000000003, + "course": 199.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35151, + "attributes": { + "type": 18, + "sat": 12, + "distance": 764.1722791144178, + "totalDistance": 1290740.2594179239, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:28.665+00:00", + "deviceTime": "2025-07-07T14:04:16.000+00:00", + "fixTime": "2025-07-07T14:04:16.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.793078333333334, + "longitude": 24.143956666666664, + "altitude": 0.0, + "speed": 21.058323, + "course": 214.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35152, + "attributes": { + "type": 18, + "sat": 12, + "distance": 744.261442155733, + "totalDistance": 1290720.3485809653, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:29.664+00:00", + "deviceTime": "2025-07-07T14:04:23.000+00:00", + "fixTime": "2025-07-07T14:04:23.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79262111111111, + "longitude": 24.143982777777776, + "altitude": 0.0, + "speed": 18.898495, + "course": 133.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35153, + "attributes": { + "type": 18, + "sat": 12, + "distance": 626.0533657045256, + "totalDistance": 1290602.140504514, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:30.665+00:00", + "deviceTime": "2025-07-07T14:04:33.000+00:00", + "fixTime": "2025-07-07T14:04:33.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.791717777777784, + "longitude": 24.145193888888887, + "altitude": 0.0, + "speed": 24.298065, + "course": 136.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35154, + "attributes": { + "type": 18, + "sat": 12, + "distance": 554.0502455780136, + "totalDistance": 1290530.1373843874, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:31.673+00:00", + "deviceTime": "2025-07-07T14:04:41.000+00:00", + "fixTime": "2025-07-07T14:04:41.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79121, + "longitude": 24.14599777777778, + "altitude": 0.0, + "speed": 14.038882000000001, + "course": 106.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35156, + "attributes": { + "type": 18, + "sat": 12, + "distance": 538.163092286176, + "totalDistance": 1290514.2502310956, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:36.665+00:00", + "deviceTime": "2025-07-07T14:04:43.000+00:00", + "fixTime": "2025-07-07T14:04:43.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79125055555556, + "longitude": 24.146214444444446, + "altitude": 0.0, + "speed": 18.358538, + "course": 62.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35157, + "attributes": { + "type": 18, + "sat": 12, + "distance": 523.4730192818237, + "totalDistance": 1290499.5601580914, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:37.673+00:00", + "deviceTime": "2025-07-07T14:04:45.000+00:00", + "fixTime": "2025-07-07T14:04:45.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79139333333333, + "longitude": 24.146445, + "altitude": 0.0, + "speed": 21.598280000000003, + "course": 47.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35158, + "attributes": { + "type": 18, + "sat": 12, + "distance": 478.93350871633277, + "totalDistance": 1290455.0206475258, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:38.673+00:00", + "deviceTime": "2025-07-07T14:04:51.000+00:00", + "fixTime": "2025-07-07T14:04:51.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79172666666667, + "longitude": 24.147159444444444, + "altitude": 0.0, + "speed": 18.358538, + "course": 68.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35159, + "attributes": { + "type": 18, + "sat": 12, + "distance": 434.4815498912985, + "totalDistance": 1290410.568688701, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:39.673+00:00", + "deviceTime": "2025-07-07T14:04:56.000+00:00", + "fixTime": "2025-07-07T14:04:56.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.791625, + "longitude": 24.147713888888887, + "altitude": 0.0, + "speed": 21.058323, + "course": 134.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35160, + "attributes": { + "type": 18, + "sat": 12, + "distance": 370.36978958779065, + "totalDistance": 1290346.4569283973, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:46.650+00:00", + "deviceTime": "2025-07-07T14:05:08.000+00:00", + "fixTime": "2025-07-07T14:05:08.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.791022777777776, + "longitude": 24.148351666666667, + "altitude": 0.0, + "speed": 12.419011000000001, + "course": 150.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35161, + "attributes": { + "type": 18, + "sat": 12, + "distance": 360.80554307005235, + "totalDistance": 1290336.8926818795, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:47.465+00:00", + "deviceTime": "2025-07-07T14:05:10.000+00:00", + "fixTime": "2025-07-07T14:05:10.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79091444444445, + "longitude": 24.14845166666667, + "altitude": 0.0, + "speed": 13.498925, + "course": 135.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35162, + "attributes": { + "type": 18, + "sat": 12, + "distance": 350.35022722026815, + "totalDistance": 1290326.4373660297, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:48.465+00:00", + "deviceTime": "2025-07-07T14:05:12.000+00:00", + "fixTime": "2025-07-07T14:05:12.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79090111111111, + "longitude": 24.148585, + "altitude": 0.0, + "speed": 10.259183, + "course": 70.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35163, + "attributes": { + "type": 18, + "sat": 12, + "distance": 343.0562869824298, + "totalDistance": 1290319.143425792, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:49.465+00:00", + "deviceTime": "2025-07-07T14:05:14.000+00:00", + "fixTime": "2025-07-07T14:05:14.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79102944444444, + "longitude": 24.148711111111112, + "altitude": 0.0, + "speed": 18.898495, + "course": 21.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35165, + "attributes": { + "type": 18, + "sat": 12, + "distance": 335.4276537398718, + "totalDistance": 1290311.5147925494, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:54.476+00:00", + "deviceTime": "2025-07-07T14:05:16.000+00:00", + "fixTime": "2025-07-07T14:05:16.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.791174444444444, + "longitude": 24.148857222222222, + "altitude": 0.0, + "speed": 18.358538, + "course": 44.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35166, + "attributes": { + "type": 18, + "sat": 12, + "distance": 271.36337661219005, + "totalDistance": 1290247.4505154216, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:55.474+00:00", + "deviceTime": "2025-07-07T14:05:29.000+00:00", + "fixTime": "2025-07-07T14:05:29.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79211333333333, + "longitude": 24.150495, + "altitude": 0.0, + "speed": 30.237592, + "course": 51.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35167, + "attributes": { + "type": 18, + "sat": 12, + "distance": 288.9923599912471, + "totalDistance": 1290265.0794988007, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:56.465+00:00", + "deviceTime": "2025-07-07T14:05:39.000+00:00", + "fixTime": "2025-07-07T14:05:39.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79298166666666, + "longitude": 24.15222111111111, + "altitude": 0.0, + "speed": 24.838022000000002, + "course": 54.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35168, + "attributes": { + "type": 18, + "sat": 12, + "distance": 359.17618839152584, + "totalDistance": 1290335.2633272011, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:57.466+00:00", + "deviceTime": "2025-07-07T14:05:49.000+00:00", + "fixTime": "2025-07-07T14:05:49.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79365555555556, + "longitude": 24.153592777777778, + "altitude": 0.0, + "speed": 24.298065, + "course": 54.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35169, + "attributes": { + "type": 18, + "sat": 12, + "distance": 409.04570606727003, + "totalDistance": 1290385.1328448767, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:58.473+00:00", + "deviceTime": "2025-07-07T14:05:57.000+00:00", + "fixTime": "2025-07-07T14:05:57.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79399166666666, + "longitude": 24.15446222222222, + "altitude": 0.0, + "speed": 14.038882000000001, + "course": 122.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35170, + "attributes": { + "type": 18, + "sat": 12, + "distance": 400.2835444762743, + "totalDistance": 1290376.3706832859, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:59.474+00:00", + "deviceTime": "2025-07-07T14:05:59.000+00:00", + "fixTime": "2025-07-07T14:05:59.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79387722222222, + "longitude": 24.154617777777776, + "altitude": 0.0, + "speed": 18.898495, + "course": 142.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35171, + "attributes": { + "type": 18, + "sat": 12, + "distance": 349.179292984302, + "totalDistance": 1290325.2664317938, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:09:00.466+00:00", + "deviceTime": "2025-07-07T14:06:09.000+00:00", + "fixTime": "2025-07-07T14:06:09.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79308611111111, + "longitude": 24.155492777777777, + "altitude": 0.0, + "speed": 20.518366, + "course": 145.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35172, + "attributes": { + "type": 18, + "sat": 12, + "distance": 325.32891875113586, + "totalDistance": 1290301.4160575606, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:09:01.466+00:00", + "deviceTime": "2025-07-07T14:06:23.000+00:00", + "fixTime": "2025-07-07T14:06:23.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.792375, + "longitude": 24.15620722222222, + "altitude": 0.0, + "speed": 17.818581000000002, + "course": 143.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35174, + "attributes": { + "type": 18, + "sat": 12, + "distance": 321.4986915405765, + "totalDistance": 1290297.5858303502, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:09:06.474+00:00", + "deviceTime": "2025-07-07T14:06:27.000+00:00", + "fixTime": "2025-07-07T14:06:27.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79217222222223, + "longitude": 24.156378333333333, + "altitude": 0.0, + "speed": 10.259183, + "course": 183.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35175, + "attributes": { + "type": 18, + "sat": 12, + "distance": 261.1296082098329, + "totalDistance": 1290237.2167470194, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:09:07.467+00:00", + "deviceTime": "2025-07-07T14:06:35.000+00:00", + "fixTime": "2025-07-07T14:06:35.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.791809444444446, + "longitude": 24.155794999999998, + "altitude": 0.0, + "speed": 16.198710000000002, + "course": 236.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35176, + "attributes": { + "type": 18, + "sat": 12, + "distance": 173.5545992611188, + "totalDistance": 1290149.6417380706, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:09:08.474+00:00", + "deviceTime": "2025-07-07T14:06:45.000+00:00", + "fixTime": "2025-07-07T14:06:45.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.791373888888884, + "longitude": 24.154854444444442, + "altitude": 0.0, + "speed": 15.118796, + "course": 238.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35177, + "attributes": { + "type": 18, + "sat": 12, + "distance": 73.85184930700389, + "totalDistance": 1290049.9389881166, + "motion": true, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:09:09.474+00:00", + "deviceTime": "2025-07-07T14:06:55.000+00:00", + "fixTime": "2025-07-07T14:06:55.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.790862777777775, + "longitude": 24.15379833333333, + "altitude": 0.0, + "speed": 16.198710000000002, + "course": 233.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35178, + "attributes": { + "type": 18, + "sat": 12, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:09:10.466+00:00", + "deviceTime": "2025-07-07T14:07:08.000+00:00", + "fixTime": "2025-07-07T14:07:08.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 0, + "mobileNetworkCode": 0 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34984, + "attributes": { + "type": 18, + "sat": 0, + "distance": 17.455662761975965, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:13.069+00:00", + "deviceTime": "2025-07-07T16:04:11.000+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 34993, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:22.062+00:00", + "deviceTime": "2025-07-07T16:04:22.062+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35002, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:34.063+00:00", + "deviceTime": "2025-07-07T16:04:34.063+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35011, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:04:48.861+00:00", + "deviceTime": "2025-07-07T16:04:48.861+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35020, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:00.863+00:00", + "deviceTime": "2025-07-07T16:05:00.863+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35029, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:18.659+00:00", + "deviceTime": "2025-07-07T16:05:18.659+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35038, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:30.667+00:00", + "deviceTime": "2025-07-07T16:05:30.667+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35047, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:05:42.661+00:00", + "deviceTime": "2025-07-07T16:05:42.661+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35056, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:00.459+00:00", + "deviceTime": "2025-07-07T16:06:00.459+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35065, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:12.460+00:00", + "deviceTime": "2025-07-07T16:06:12.460+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35074, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:30.259+00:00", + "deviceTime": "2025-07-07T16:06:30.259+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35083, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:42.268+00:00", + "deviceTime": "2025-07-07T16:06:42.268+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35092, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:06:54.259+00:00", + "deviceTime": "2025-07-07T16:06:54.259+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35101, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:12.073+00:00", + "deviceTime": "2025-07-07T16:07:12.073+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35110, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:24.065+00:00", + "deviceTime": "2025-07-07T16:07:24.065+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35119, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:41.867+00:00", + "deviceTime": "2025-07-07T16:07:41.867+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35128, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:07:53.867+00:00", + "deviceTime": "2025-07-07T16:07:53.867+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35137, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:05.867+00:00", + "deviceTime": "2025-07-07T16:08:05.867+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35146, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:20.672+00:00", + "deviceTime": "2025-07-07T16:08:20.672+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35155, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:32.673+00:00", + "deviceTime": "2025-07-07T16:08:32.673+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35164, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:08:50.465+00:00", + "deviceTime": "2025-07-07T16:08:50.465+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35173, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:09:02.466+00:00", + "deviceTime": "2025-07-07T16:09:02.466+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35179, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:09:11.466+00:00", + "deviceTime": "2025-07-07T16:09:11.466+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35180, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:12:29.322+00:00", + "deviceTime": "2025-07-07T16:12:29.322+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35181, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:15:46.129+00:00", + "deviceTime": "2025-07-07T16:15:46.129+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35182, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:19:11.933+00:00", + "deviceTime": "2025-07-07T16:19:11.933+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35183, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:22:31.728+00:00", + "deviceTime": "2025-07-07T16:22:31.728+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35184, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 3, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:25:48.527+00:00", + "deviceTime": "2025-07-07T16:25:48.527+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35185, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:29:05.344+00:00", + "deviceTime": "2025-07-07T16:29:05.344+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35186, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:32:22.146+00:00", + "deviceTime": "2025-07-07T16:32:22.146+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35187, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:35:38.966+00:00", + "deviceTime": "2025-07-07T16:35:38.966+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35188, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:38:55.794+00:00", + "deviceTime": "2025-07-07T16:38:55.794+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35189, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:42:12.557+00:00", + "deviceTime": "2025-07-07T16:42:12.557+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35190, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:45:29.392+00:00", + "deviceTime": "2025-07-07T16:45:29.392+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35191, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:48:46.155+00:00", + "deviceTime": "2025-07-07T16:48:46.155+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35192, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:52:02.959+00:00", + "deviceTime": "2025-07-07T16:52:02.959+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35193, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:55:22.780+00:00", + "deviceTime": "2025-07-07T16:55:22.780+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35194, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T16:58:39.558+00:00", + "deviceTime": "2025-07-07T16:58:39.558+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35195, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:01:56.380+00:00", + "deviceTime": "2025-07-07T17:01:56.380+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35196, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:05:13.177+00:00", + "deviceTime": "2025-07-07T17:05:13.177+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35197, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:08:29.981+00:00", + "deviceTime": "2025-07-07T17:08:29.981+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35198, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:11:46.788+00:00", + "deviceTime": "2025-07-07T17:11:46.788+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35199, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:15:03.566+00:00", + "deviceTime": "2025-07-07T17:15:03.566+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35200, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:18:20.359+00:00", + "deviceTime": "2025-07-07T17:18:20.359+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35201, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:21:37.161+00:00", + "deviceTime": "2025-07-07T17:21:37.161+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35202, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:24:53.965+00:00", + "deviceTime": "2025-07-07T17:24:53.965+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35203, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:28:10.760+00:00", + "deviceTime": "2025-07-07T17:28:10.760+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35204, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:31:27.563+00:00", + "deviceTime": "2025-07-07T17:31:27.563+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35205, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 3, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:34:44.406+00:00", + "deviceTime": "2025-07-07T17:34:44.406+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35206, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:38:01.164+00:00", + "deviceTime": "2025-07-07T17:38:01.164+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35207, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:41:17.966+00:00", + "deviceTime": "2025-07-07T17:41:17.966+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35208, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:44:34.821+00:00", + "deviceTime": "2025-07-07T17:44:34.821+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35209, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:47:51.561+00:00", + "deviceTime": "2025-07-07T17:47:51.561+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35210, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:51:08.373+00:00", + "deviceTime": "2025-07-07T17:51:08.373+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35211, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:54:25.173+00:00", + "deviceTime": "2025-07-07T17:54:25.173+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35212, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T17:57:41.966+00:00", + "deviceTime": "2025-07-07T17:57:41.966+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35213, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:00:58.756+00:00", + "deviceTime": "2025-07-07T18:00:58.756+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35214, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:04:15.565+00:00", + "deviceTime": "2025-07-07T18:04:15.565+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35215, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:07:32.357+00:00", + "deviceTime": "2025-07-07T18:07:32.357+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35216, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:10:49.165+00:00", + "deviceTime": "2025-07-07T18:10:49.165+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35217, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 3, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:14:05.957+00:00", + "deviceTime": "2025-07-07T18:14:05.957+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35218, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:17:22.799+00:00", + "deviceTime": "2025-07-07T18:17:22.799+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35219, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:20:39.558+00:00", + "deviceTime": "2025-07-07T18:20:39.558+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35220, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:23:56.376+00:00", + "deviceTime": "2025-07-07T18:23:56.376+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35221, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:27:13.184+00:00", + "deviceTime": "2025-07-07T18:27:13.184+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35222, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:30:29.988+00:00", + "deviceTime": "2025-07-07T18:30:29.988+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35223, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:33:46.769+00:00", + "deviceTime": "2025-07-07T18:33:46.769+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35224, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 3, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:37:03.570+00:00", + "deviceTime": "2025-07-07T18:37:03.570+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35225, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:40:20.371+00:00", + "deviceTime": "2025-07-07T18:40:20.371+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35226, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 3, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:43:37.182+00:00", + "deviceTime": "2025-07-07T18:43:37.182+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35227, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:46:53.972+00:00", + "deviceTime": "2025-07-07T18:46:53.972+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35228, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:50:10.783+00:00", + "deviceTime": "2025-07-07T18:50:10.783+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35229, + "attributes": { + "type": 19, + "status": 4, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 3, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:53:27.598+00:00", + "deviceTime": "2025-07-07T18:53:27.598+00:00", + "fixTime": "2025-07-07T16:04:11.000+00:00", + "outdated": false, + "valid": false, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35230, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:54:46.312+00:00", + "deviceTime": "2025-07-07T18:54:40.000+00:00", + "fixTime": "2025-07-07T18:54:40.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35231, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:54:54.181+00:00", + "deviceTime": "2025-07-07T18:54:53.000+00:00", + "fixTime": "2025-07-07T18:54:53.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35232, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:55:04.181+00:00", + "deviceTime": "2025-07-07T18:55:03.000+00:00", + "fixTime": "2025-07-07T18:55:03.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35233, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:55:14.189+00:00", + "deviceTime": "2025-07-07T18:55:13.000+00:00", + "fixTime": "2025-07-07T18:55:13.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35234, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:55:26.979+00:00", + "deviceTime": "2025-07-07T18:55:25.000+00:00", + "fixTime": "2025-07-07T18:55:25.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35235, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:55:36.980+00:00", + "deviceTime": "2025-07-07T18:55:35.000+00:00", + "fixTime": "2025-07-07T18:55:35.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35236, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:55:46.979+00:00", + "deviceTime": "2025-07-07T18:55:45.000+00:00", + "fixTime": "2025-07-07T18:55:45.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35237, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:55:59.780+00:00", + "deviceTime": "2025-07-07T18:55:58.000+00:00", + "fixTime": "2025-07-07T18:55:58.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35238, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:56:09.779+00:00", + "deviceTime": "2025-07-07T18:56:08.000+00:00", + "fixTime": "2025-07-07T18:56:08.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35239, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:56:19.778+00:00", + "deviceTime": "2025-07-07T18:56:18.000+00:00", + "fixTime": "2025-07-07T18:56:18.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35240, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:56:32.578+00:00", + "deviceTime": "2025-07-07T18:56:31.000+00:00", + "fixTime": "2025-07-07T18:56:31.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35241, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:56:42.682+00:00", + "deviceTime": "2025-07-07T18:56:41.000+00:00", + "fixTime": "2025-07-07T18:56:41.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35242, + "attributes": { + "type": 19, + "status": 68, + "ignition": false, + "charge": true, + "blocked": false, + "batteryLevel": 100, + "rssi": 4, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:56:44.539+00:00", + "deviceTime": "2025-07-07T18:56:44.539+00:00", + "fixTime": "2025-07-07T18:56:41.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": null, + "geofenceIds": null + }, + { + "id": 35243, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:56:52.579+00:00", + "deviceTime": "2025-07-07T18:56:51.000+00:00", + "fixTime": "2025-07-07T18:56:51.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35244, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:57:05.380+00:00", + "deviceTime": "2025-07-07T18:57:04.000+00:00", + "fixTime": "2025-07-07T18:57:04.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35245, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:57:15.380+00:00", + "deviceTime": "2025-07-07T18:57:14.000+00:00", + "fixTime": "2025-07-07T18:57:14.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35246, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:57:25.378+00:00", + "deviceTime": "2025-07-07T18:57:24.000+00:00", + "fixTime": "2025-07-07T18:57:24.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35247, + "attributes": { + "type": 18, + "sat": 11, + "distance": 0.0, + "totalDistance": 1289976.0871388095, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:57:38.179+00:00", + "deviceTime": "2025-07-07T18:57:37.000+00:00", + "fixTime": "2025-07-07T18:57:37.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.79045111111112, + "longitude": 24.15305222222222, + "altitude": 0.0, + "speed": 0.0, + "course": 187.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + }, + { + "id": 35248, + "attributes": { + "type": 18, + "sat": 11, + "distance": 14.80462218190218, + "totalDistance": 1289990.8917609914, + "motion": false, + "hours": 303552 + }, + "deviceId": 1, + "protocol": "gt06", + "serverTime": "2025-07-07T18:57:44.185+00:00", + "deviceTime": "2025-07-07T18:57:42.000+00:00", + "fixTime": "2025-07-07T18:57:42.000+00:00", + "outdated": false, + "valid": true, + "latitude": 45.790325, + "longitude": 24.152991666666665, + "altitude": 0.0, + "speed": 0.0, + "course": 0.0, + "address": null, + "accuracy": 0.0, + "network": { + "radioType": "gsm", + "considerIp": false, + "cellTowers": [ + { + "cellId": 0, + "locationAreaCode": 0, + "mobileCountryCode": 226, + "mobileNetworkCode": 5 + } + ] + }, + "geofenceIds": null + } +] \ No newline at end of file diff --git a/resources/projects/testtrip/preview.html b/resources/projects/testtrip/preview.html new file mode 100644 index 0000000..1260439 --- /dev/null +++ b/resources/projects/testtrip/preview.html @@ -0,0 +1,192 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/projects/testtrip/preview.png b/resources/projects/testtrip/preview.png new file mode 100644 index 0000000..03ce14f Binary files /dev/null and b/resources/projects/testtrip/preview.png differ diff --git a/screens/__pycache__/create_animation_screen.cpython-311.pyc b/screens/__pycache__/create_animation_screen.cpython-311.pyc index 8f7fefc..f1d798b 100644 Binary files a/screens/__pycache__/create_animation_screen.cpython-311.pyc and b/screens/__pycache__/create_animation_screen.cpython-311.pyc differ diff --git a/screens/create_animation_screen.py b/screens/create_animation_screen.py index b3061a3..930e859 100644 --- a/screens/create_animation_screen.py +++ b/screens/create_animation_screen.py @@ -9,8 +9,7 @@ from kivy.properties import StringProperty, NumericProperty, AliasProperty from py_scripts.utils import ( process_preview_util, optimize_route_entries_util ) -from py_scripts.video_3d_generator import generate_3d_video_animation -from py_scripts.advanced_3d_generator import Advanced3DGenerator +from py_scripts.advanced_3d_generator import NavigationAnimationGenerator from py_scripts.blender_animator import BlenderGPSAnimator from kivy.uix.popup import Popup from kivy.uix.button import Button @@ -51,8 +50,6 @@ class CreateAnimationScreen(Screen): count = 0 self.ids.route_entries_label.text = f"Your route has {count} entries," - - def open_rename_popup(self): from kivy.uix.popup import Popup from kivy.uix.boxlayout import BoxLayout @@ -131,7 +128,6 @@ class CreateAnimationScreen(Screen): on_save=lambda: self.on_pre_enter() ) - def preview_route(self): # Show processing popup layout = BoxLayout(orientation='vertical', spacing=10, padding=10) @@ -168,291 +164,16 @@ class CreateAnimationScreen(Screen): 0.5 ) - def open_pauses_popup(self): - """Navigate to the pause edit screen""" - pause_edit_screen = self.manager.get_screen("pause_edit") - pause_edit_screen.set_project_and_callback(self.project_name, self.on_pre_enter) - self.manager.current = "pause_edit" - - def generate_3d_video(self): - """Show video generation mode selection popup""" - self.show_video_generation_options() - - def generate_3d_video_test_mode(self): - """Generate a 3D video animation in 720p test mode for faster processing""" - # Show processing popup with test mode indication - layout = BoxLayout(orientation='vertical', spacing=10, padding=10) - label = Label(text="Preparing 720p test video generation...") - progress = ProgressBar(max=100, value=0) - layout.add_widget(label) - layout.add_widget(progress) - popup = Popup( - title="Generating 3D Video Animation (720p Test Mode)", - content=layout, - size_hint=(0.9, None), - size=(0, 200), - auto_dismiss=False - ) - popup.open() - - # Schedule the 3D video generation in test mode - Clock.schedule_once( - lambda dt: generate_3d_video_animation( - self.project_name, - RESOURCES_FOLDER, - label, - progress, - popup, - Clock, - test_mode=True # Enable test mode - ), - 0.5 - ) - - def generate_3d_video_production_mode(self): - """Generate a 3D video animation in 2K production mode for high quality""" - # Show processing popup with production mode indication - layout = BoxLayout(orientation='vertical', spacing=10, padding=10) - label = Label(text="Preparing 2K production video generation...") - progress = ProgressBar(max=100, value=0) - layout.add_widget(label) - layout.add_widget(progress) - popup = Popup( - title="Generating 3D Video Animation (2K Production Mode)", - content=layout, - size_hint=(0.9, None), - size=(0, 200), - auto_dismiss=False - ) - popup.open() - - # Schedule the 3D video generation in production mode - Clock.schedule_once( - lambda dt: generate_3d_video_animation( - self.project_name, - RESOURCES_FOLDER, - label, - progress, - popup, - Clock, - test_mode=False # Disable test mode for production - ), - 0.5 - ) - - def show_video_generation_options(self): - """Show popup with video generation mode options including new advanced animations""" - from kivy.uix.popup import Popup - from kivy.uix.boxlayout import BoxLayout - from kivy.uix.button import Button - from kivy.uix.label import Label - - layout = BoxLayout(orientation='vertical', spacing=12, padding=15) - - # Title - title_label = Label( - text="Choose Animation Style & Quality", - font_size=20, - size_hint_y=None, - height=40, - color=(1, 1, 1, 1) - ) - layout.add_widget(title_label) - - # Classic 3D Mode - classic_layout = BoxLayout(orientation='vertical', spacing=5) - classic_title = Label( - text="🏃♂️ Classic 3D (Original Pipeline)", - font_size=16, - size_hint_y=None, - height=30, - color=(0.2, 0.8, 0.2, 1) - ) - classic_desc = Label( - text="• Traditional OpenCV/PIL approach\n• Fast generation\n• Good for simple tracks\n• Test (720p) or Production (2K)", - font_size=11, - size_hint_y=None, - height=70, - color=(0.9, 0.9, 0.9, 1), - halign="left", - valign="middle" - ) - classic_desc.text_size = (None, None) - classic_layout.add_widget(classic_title) - classic_layout.add_widget(classic_desc) - layout.add_widget(classic_layout) - - # Classic buttons - classic_btn_layout = BoxLayout(orientation='horizontal', spacing=10, size_hint_y=None, height=45) - classic_test_btn = Button( - text="Classic 720p", - background_color=(0.2, 0.8, 0.2, 1), - font_size=12 - ) - classic_prod_btn = Button( - text="Classic 2K", - background_color=(0.3, 0.6, 0.3, 1), - font_size=12 - ) - classic_btn_layout.add_widget(classic_test_btn) - classic_btn_layout.add_widget(classic_prod_btn) - layout.add_widget(classic_btn_layout) - - # Advanced Pydeck/Plotly Mode - advanced_layout = BoxLayout(orientation='vertical', spacing=5) - advanced_title = Label( - text="🚀 Advanced 3D (Pydeck + Plotly)", - font_size=16, - size_hint_y=None, - height=30, - color=(0.2, 0.6, 0.9, 1) - ) - advanced_desc = Label( - text="• Professional geospatial visualization\n• Interactive 3D terrain\n• Advanced camera movements\n• High-quality animations", - font_size=11, - size_hint_y=None, - height=70, - color=(0.9, 0.9, 0.9, 1), - halign="left", - valign="middle" - ) - advanced_desc.text_size = (None, None) - advanced_layout.add_widget(advanced_title) - advanced_layout.add_widget(advanced_desc) - layout.add_widget(advanced_layout) - - # Advanced button - advanced_btn = Button( - text="Generate Advanced 3D Animation", - background_color=(0.2, 0.6, 0.9, 1), - size_hint_y=None, - height=45, - font_size=13 - ) - layout.add_widget(advanced_btn) - - # Google Earth Flythrough Mode - google_earth_layout = BoxLayout(orientation='vertical', spacing=5) - google_earth_title = Label( - text="🌍 Google Earth Flythrough", - font_size=16, - size_hint_y=None, - height=30, - color=(0.1, 0.8, 0.1, 1) - ) - google_earth_desc = Label( - text="• Realistic 3D terrain with mountains\n• Cinematic camera following at 1000-2000m\n• Google Earth-style flythrough\n• Professional geographic animation", - font_size=11, - size_hint_y=None, - height=70, - color=(0.9, 0.9, 0.9, 1), - halign="left", - valign="middle" - ) - google_earth_desc.text_size = (None, None) - google_earth_layout.add_widget(google_earth_title) - google_earth_layout.add_widget(google_earth_desc) - layout.add_widget(google_earth_layout) - - # Google Earth button - google_earth_btn = Button( - text="Generate Google Earth Flythrough", - background_color=(0.1, 0.8, 0.1, 1), - size_hint_y=None, - height=45, - font_size=13 - ) - layout.add_widget(google_earth_btn) - - # Blender Cinema Mode - blender_layout = BoxLayout(orientation='vertical', spacing=5) - blender_title = Label( - text="� Cinema Quality (Blender)", - font_size=16, - size_hint_y=None, - height=30, - color=(0.9, 0.6, 0.2, 1) - ) - blender_desc = Label( - text="• Professional 3D rendering\n• Photorealistic visuals\n• Cinema-grade quality\n• Longer processing time", - font_size=11, - size_hint_y=None, - height=70, - color=(0.9, 0.9, 0.9, 1), - halign="left", - valign="middle" - ) - blender_desc.text_size = (None, None) - blender_layout.add_widget(blender_title) - blender_layout.add_widget(blender_desc) - layout.add_widget(blender_layout) - - # Blender button - blender_btn = Button( - text="Generate Blender Cinema Animation", - background_color=(0.9, 0.6, 0.2, 1), - size_hint_y=None, - height=45, - font_size=13 - ) - layout.add_widget(blender_btn) - - # Cancel button - cancel_btn = Button( - text="Cancel", - background_color=(0.5, 0.5, 0.5, 1), - size_hint_y=None, - height=40, - font_size=12 - ) - layout.add_widget(cancel_btn) - - popup = Popup( - title="Select Animation Style", - content=layout, - size_hint=(0.95, 0.9), - auto_dismiss=False - ) - - def start_classic_test(instance): - popup.dismiss() - self.generate_3d_video_test_mode() - - def start_classic_production(instance): - popup.dismiss() - self.generate_3d_video_production_mode() - - def start_advanced_3d(instance): - popup.dismiss() - self.generate_advanced_3d_animation() - - def start_google_earth(instance): - popup.dismiss() - self.generate_google_earth_animation() - - def start_blender_animation(instance): - popup.dismiss() - self.generate_blender_animation() - - classic_test_btn.bind(on_press=start_classic_test) - classic_prod_btn.bind(on_press=start_classic_production) - advanced_btn.bind(on_press=start_advanced_3d) - google_earth_btn.bind(on_press=start_google_earth) - blender_btn.bind(on_press=start_blender_animation) - cancel_btn.bind(on_press=lambda x: popup.dismiss()) - - popup.open() - - def generate_advanced_3d_animation(self): - """Generate advanced 3D animation using Pydeck and Plotly""" + def generate_google_earth_animation(self): + """Generate Google Earth-style flythrough animation using NavigationAnimationGenerator""" # Show processing popup layout = BoxLayout(orientation='vertical', spacing=10, padding=10) - label = Label(text="Initializing advanced 3D animation...") + label = Label(text="Initializing Google Earth flythrough...") progress = ProgressBar(max=100, value=0) layout.add_widget(label) layout.add_widget(progress) popup = Popup( - title="Generating Advanced 3D Animation", + title="Generating Google Earth Flythrough", content=layout, size_hint=(0.9, None), size=(0, 200), @@ -460,7 +181,7 @@ class CreateAnimationScreen(Screen): ) popup.open() - def run_advanced_animation(): + def run_google_earth_animation(): try: # Update status def update_status(progress_val, status_text): @@ -480,38 +201,38 @@ class CreateAnimationScreen(Screen): update_status(10, "Loading GPS data...") # Check dependencies first - generator = Advanced3DGenerator(project_folder) + generator = NavigationAnimationGenerator(project_folder) generator.check_dependencies() update_status(20, "Processing GPS coordinates...") df = generator.load_gps_data(positions_path) - update_status(40, "Creating 3D visualization frames...") - output_video_path = os.path.join(project_folder, f"{self.project_name}_advanced_3d_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp4") + update_status(40, "Creating Google Earth flythrough...") + output_video_path = os.path.join(project_folder, f"{self.project_name}_google_earth_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp4") # Progress callback for the generator def generator_progress(progress, message): - update_status(40 + (progress * 0.4), message) # Map 0-100% to 40-80% + update_status(40 + (progress * 0.5), message) # Map 0-100% to 40-90% - update_status(80, "Rendering video...") - success = generator.generate_3d_animation( - positions_path, - output_video_path, - style='advanced', - progress_callback=generator_progress - ) + update_status(90, "Creating flythrough video...") + success = generator.generate_frames(positions_path, style='google_earth', progress_callback=generator_progress) - if success: - update_status(100, "Advanced 3D animation complete!") - output_path = output_video_path + if success and len(success) > 0: + update_status(95, "Rendering final video...") + video_success = generator.create_video(success, output_video_path, generator_progress) + if video_success: + update_status(100, "Google Earth flythrough complete!") + output_path = output_video_path + else: + raise Exception("Failed to create video from frames") else: - raise Exception("Failed to generate video") + raise Exception("Failed to generate frames") def show_success(dt): popup.dismiss() self.show_success_popup( - "Advanced 3D Animation Complete!", - f"Your high-quality 3D animation has been saved to:\n{output_path}", + "Google Earth Flythrough Complete!", + f"Your Google Earth-style flythrough has been saved to:\n{output_path}", output_path ) @@ -521,13 +242,13 @@ class CreateAnimationScreen(Screen): error_message = str(e) def show_error(dt): popup.dismiss() - self.show_error_popup("Advanced Animation Error", error_message) + self.show_error_popup("Google Earth Animation Error", error_message) Clock.schedule_once(show_error, 0) # Schedule the animation generation - Clock.schedule_once(lambda dt: run_advanced_animation(), 0.5) - + Clock.schedule_once(lambda dt: run_google_earth_animation(), 0.5) + def generate_blender_animation(self): """Generate cinema-quality animation using Blender""" # Show processing popup @@ -588,13 +309,13 @@ class CreateAnimationScreen(Screen): update_status(100, "Blender cinema animation complete!") output_path = output_video_path else: - raise Exception("Failed to render Blender animation") + raise Exception("Failed to generate Blender animation") def show_success(dt): popup.dismiss() self.show_success_popup( "Blender Cinema Animation Complete!", - f"Your cinema-quality animation has been rendered to:\n{output_path}", + f"Your cinema-quality animation has been saved to:\n{output_path}", output_path ) @@ -610,26 +331,34 @@ class CreateAnimationScreen(Screen): # Schedule the animation generation Clock.schedule_once(lambda dt: run_blender_animation(), 0.5) - - def generate_google_earth_animation(self): - """Generate Google Earth-style flythrough animation with terrain""" + + def generate_progressive_3d_animation(self): + """Generate a progressive 3D animation that builds the trip point by point""" # Show processing popup layout = BoxLayout(orientation='vertical', spacing=10, padding=10) - label = Label(text="Initializing Google Earth flythrough...") + label = Label(text="Initializing progressive 3D animation...") progress = ProgressBar(max=100, value=0) layout.add_widget(label) layout.add_widget(progress) popup = Popup( - title="Generating Google Earth Flythrough", + title="Generating Progressive 3D Animation", content=layout, size_hint=(0.9, None), size=(0, 200), auto_dismiss=False ) popup.open() - - def run_google_earth_animation(): + + def run_progressive_animation(): try: + # Import here to avoid startup delays + import matplotlib + matplotlib.use('Agg') # Use non-interactive backend + import matplotlib.pyplot as plt + from mpl_toolkits.mplot3d import Axes3D + import numpy as np + import cv2 # Use OpenCV instead of MoviePy + # Update status def update_status(progress_val, status_text): def _update(dt): @@ -645,132 +374,360 @@ class CreateAnimationScreen(Screen): Clock.schedule_once(lambda dt: popup.dismiss(), 2) return - update_status(10, "Checking dependencies...") + update_status(10, "Loading GPS data...") - # Check dependencies first - generator = Advanced3DGenerator(project_folder) - generator.check_dependencies() + # Load GPS data + with open(positions_path, 'r') as f: + positions = json.load(f) - update_status(20, "Loading GPS data...") - df = generator.load_gps_data(positions_path) + if len(positions) < 2: + update_status(0, "Error: Need at least 2 GPS points") + Clock.schedule_once(lambda dt: popup.dismiss(), 2) + return - update_status(30, "Generating terrain and camera flythrough...") - output_video_path = os.path.join(project_folder, f"{self.project_name}_google_earth_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp4") + update_status(20, "Processing GPS coordinates...") - # Progress callback for the generator - def generator_progress(progress, message): - update_status(30 + (progress * 0.5), message) # Map 0-100% to 30-80% + # Extract coordinates and timestamps + lats = [pos['latitude'] for pos in positions] + lons = [pos['longitude'] for pos in positions] + alts = [pos.get('altitude', 0) for pos in positions] + timestamps = [pos.get('fixTime', '') for pos in positions] - update_status(80, "Creating flythrough video...") - success = generator.generate_3d_animation( - positions_path, - output_video_path, - style='google_earth', - progress_callback=generator_progress - ) + # Convert to numpy arrays for easier manipulation + lats = np.array(lats) + lons = np.array(lons) + alts = np.array(alts) - if success: - update_status(100, "Google Earth flythrough complete!") - output_path = output_video_path + # Normalize coordinates for better visualization + lat_center = np.mean(lats) + lon_center = np.mean(lons) + alt_min = np.min(alts) + + # Convert to relative coordinates (in meters approximately) + x = (lons - lon_center) * 111320 * np.cos(np.radians(lat_center)) # longitude to meters + y = (lats - lat_center) * 110540 # latitude to meters + z = alts - alt_min # relative altitude + + update_status(30, "Creating animation frames...") + + # Create frames folder + frames_folder = os.path.join(project_folder, "progressive_frames") + os.makedirs(frames_folder, exist_ok=True) + + # Animation settings + fps = 10 # frames per second + points_per_frame = max(1, len(positions) // 100) # Show multiple points per frame for long routes + total_frames = len(positions) // points_per_frame + + frame_files = [] + + # Generate frames + for frame_idx in range(total_frames): + current_progress = 30 + (frame_idx / total_frames) * 50 + update_status(current_progress, f"Creating frame {frame_idx + 1}/{total_frames}...") + + # Points to show in this frame + end_point = min((frame_idx + 1) * points_per_frame, len(positions)) + + # Create 3D plot + fig = plt.figure(figsize=(12, 9), dpi=100) + ax = fig.add_subplot(111, projection='3d') + + # Plot the route progressively + if end_point > 1: + # Plot completed route in blue + ax.plot(x[:end_point], y[:end_point], z[:end_point], + 'b-', linewidth=2, alpha=0.7, label='Route') + + # Plot points as small dots + ax.scatter(x[:end_point], y[:end_point], z[:end_point], + c='blue', s=20, alpha=0.6) + + # Highlight current position in red + if end_point > 0: + current_idx = end_point - 1 + ax.scatter(x[current_idx], y[current_idx], z[current_idx], + c='red', s=100, marker='o', label='Current Position') + + # Add a small trail behind current position + trail_start = max(0, current_idx - 5) + if current_idx > trail_start: + ax.plot(x[trail_start:current_idx+1], + y[trail_start:current_idx+1], + z[trail_start:current_idx+1], + 'r-', linewidth=4, alpha=0.8) + + # Plot remaining route in light gray (preview) + if end_point < len(positions): + ax.plot(x[end_point:], y[end_point:], z[end_point:], + 'lightgray', linewidth=1, alpha=0.3, label='Remaining Route') + + # Set labels and title + ax.set_xlabel('East-West (meters)') + ax.set_ylabel('North-South (meters)') + ax.set_zlabel('Elevation (meters)') + + # Add progress info + progress_percent = (end_point / len(positions)) * 100 + timestamp_str = timestamps[end_point-1] if end_point > 0 else "Start" + ax.set_title(f'GPS Trip Animation\nProgress: {progress_percent:.1f}% - Point {end_point}/{len(positions)}\nTime: {timestamp_str}', + fontsize=14, pad=20) + + # Set consistent view limits for all frames + margin = max(np.ptp(x), np.ptp(y)) * 0.1 + ax.set_xlim(np.min(x) - margin, np.max(x) + margin) + ax.set_ylim(np.min(y) - margin, np.max(y) + margin) + ax.set_zlim(np.min(z) - 10, np.max(z) + 10) + + # Set viewing angle for better 3D perspective + ax.view_init(elev=20, azim=45) + + # Add legend + ax.legend(loc='upper right') + + # Add grid + ax.grid(True, alpha=0.3) + + # Save frame with comprehensive error handling + frame_path = os.path.join(frames_folder, f"frame_{frame_idx:04d}.png") + try: + plt.savefig(frame_path, dpi=100, bbox_inches='tight', + facecolor='white', edgecolor='none', + format='png', optimize=False) + plt.close(fig) + + # Verify frame was saved properly and is readable by OpenCV + if os.path.exists(frame_path) and os.path.getsize(frame_path) > 1024: + # Test if OpenCV can read the frame + test_frame = cv2.imread(frame_path) + if test_frame is not None: + frame_files.append(frame_path) + if frame_idx == 0: # Log first frame details + h, w, c = test_frame.shape + update_status(current_progress, f"First frame: {w}x{h}, size: {os.path.getsize(frame_path)} bytes") + else: + update_status(current_progress, f"Warning: Frame {frame_idx} not readable by OpenCV") + try: + os.remove(frame_path) + except: + pass + else: + update_status(current_progress, f"Warning: Frame {frame_idx} too small or missing") + + except Exception as e: + update_status(current_progress, f"Error saving frame {frame_idx}: {str(e)}") + try: + plt.close(fig) + except: + pass + continue + + # Validate frames before creating video + if not frame_files: + raise Exception("No valid frames were generated") + + update_status(80, f"Creating video from {len(frame_files)} frames...") + + # Create video using OpenCV with better error handling + output_video_path = os.path.join(project_folder, + f"{self.project_name}_progressive_3d_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp4") + + if frame_files: + try: + # Read first frame to get dimensions + first_frame = cv2.imread(frame_files[0]) + if first_frame is None: + raise Exception(f"Could not read first frame: {frame_files[0]}") + + height, width, layers = first_frame.shape + update_status(82, f"Video dimensions: {width}x{height}") + + # Try different codecs for better compatibility + codecs_to_try = [ + ('mp4v', '.mp4'), + ('XVID', '.avi'), + ('MJPG', '.avi') + ] + + video_created = False + + for codec, ext in codecs_to_try: + try: + # Update output path for different codecs + if ext != '.mp4': + test_output_path = output_video_path.replace('.mp4', ext) + else: + test_output_path = output_video_path + + update_status(84, f"Trying codec {codec}...") + + # Create video writer + fourcc = cv2.VideoWriter_fourcc(*codec) + video_writer = cv2.VideoWriter(test_output_path, fourcc, fps, (width, height)) + + if not video_writer.isOpened(): + update_status(85, f"Failed to open video writer with {codec}") + continue + + # Add frames to video + frames_written = 0 + for i, frame_file in enumerate(frame_files): + frame = cv2.imread(frame_file) + if frame is not None: + # Ensure frame dimensions match + if frame.shape[:2] != (height, width): + frame = cv2.resize(frame, (width, height)) + video_writer.write(frame) + frames_written += 1 + + if i % 10 == 0: # Update progress every 10 frames + progress = 85 + (i / len(frame_files)) * 3 + update_status(progress, f"Writing frame {i+1}/{len(frame_files)} with {codec}") + + video_writer.release() + + # Check if video file was created and has reasonable size + if os.path.exists(test_output_path) and os.path.getsize(test_output_path) > 1024: + output_video_path = test_output_path + video_created = True + update_status(88, f"Video created successfully with {codec} ({frames_written} frames)") + break + else: + update_status(86, f"Video file not created or too small with {codec}") + + except Exception as codec_error: + update_status(87, f"Error with {codec}: {str(codec_error)}") + continue + + if not video_created: + raise Exception("Failed to create video with any codec") + + except Exception as video_error: + raise Exception(f"Video creation failed: {str(video_error)}") + + update_status(90, "Cleaning up temporary files...") + + # Clean up frame files + for frame_file in frame_files: + try: + os.remove(frame_file) + except: + pass + try: + os.rmdir(frames_folder) + except: + pass + + update_status(100, "Progressive 3D animation complete!") + + def show_success(dt): + popup.dismiss() + self.show_success_popup( + "Progressive 3D Animation Complete!", + f"Your progressive 3D animation has been saved to:\n{output_video_path}\n\nThe animation shows {len(positions)} GPS points building the route progressively from start to finish.", + output_video_path + ) + + Clock.schedule_once(show_success, 1) else: - raise Exception("Failed to generate flythrough video") - - def show_success(dt): - popup.dismiss() - self.show_success_popup( - "Google Earth Flythrough Complete!", - f"Your cinematic flythrough has been created:\n{output_path}", - output_path - ) - - Clock.schedule_once(show_success, 1) + raise Exception("No frames were generated") except Exception as e: error_message = str(e) + print(f"DEBUG: Progressive animation error: {error_message}") + import traceback + traceback.print_exc() def show_error(dt): popup.dismiss() - self.show_error_popup("Google Earth Animation Error", error_message) + self.show_error_popup("Progressive Animation Error", error_message) Clock.schedule_once(show_error, 0) # Schedule the animation generation - Clock.schedule_once(lambda dt: run_google_earth_animation(), 0.5) - - def show_success_popup(self, title, message, file_path=None): + Clock.schedule_once(lambda dt: run_progressive_animation(), 0.5) + + def open_pauses_popup(self): + """Navigate to the pause edit screen""" + pause_edit_screen = self.manager.get_screen("pause_edit") + pause_edit_screen.set_project_and_callback(self.project_name, self.on_pre_enter) + self.manager.current = "pause_edit" + + def show_success_popup(self, title, message, file_path): """Show success popup with option to open file location""" - layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + layout = BoxLayout(orientation='vertical', spacing=10, padding=15) + # Success message success_label = Label( text=message, - text_size=(400, None), + text_size=(None, None), halign="center", valign="middle" ) layout.add_widget(success_label) - button_layout = BoxLayout(orientation='horizontal', spacing=10, size_hint_y=None, height=50) + # Buttons + btn_layout = BoxLayout(orientation='horizontal', spacing=10, size_hint_y=None, height=50) - if file_path: - open_btn = Button(text="Open Folder", background_color=(0.2, 0.8, 0.2, 1)) - open_btn.bind(on_press=lambda x: self.open_file_location(file_path)) - button_layout.add_widget(open_btn) + open_folder_btn = Button( + text="Open Folder", + background_color=(0.2, 0.6, 0.9, 1) + ) - ok_btn = Button(text="OK", background_color=(0.2, 0.6, 0.9, 1)) - button_layout.add_widget(ok_btn) - layout.add_widget(button_layout) + ok_btn = Button( + text="OK", + background_color=(0.3, 0.7, 0.3, 1) + ) + + btn_layout.add_widget(open_folder_btn) + btn_layout.add_widget(ok_btn) + layout.add_widget(btn_layout) popup = Popup( title=title, content=layout, - size_hint=(0.8, None), - size=(0, 250), + size_hint=(0.9, 0.6), auto_dismiss=False ) - ok_btn.bind(on_press=lambda x: popup.dismiss()) + def open_folder(instance): + folder_path = os.path.dirname(file_path) + os.system(f'xdg-open "{folder_path}"') # Linux + popup.dismiss() + + def close_popup(instance): + popup.dismiss() + + open_folder_btn.bind(on_press=open_folder) + ok_btn.bind(on_press=close_popup) + popup.open() - + def show_error_popup(self, title, message): """Show error popup""" - layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + layout = BoxLayout(orientation='vertical', spacing=10, padding=15) error_label = Label( text=f"Error: {message}", - text_size=(400, None), + text_size=(None, None), halign="center", - valign="middle", - color=(1, 0.3, 0.3, 1) + valign="middle" ) layout.add_widget(error_label) - ok_btn = Button(text="OK", background_color=(0.8, 0.2, 0.2, 1), size_hint_y=None, height=50) + ok_btn = Button( + text="OK", + background_color=(0.8, 0.3, 0.3, 1), + size_hint_y=None, + height=50 + ) layout.add_widget(ok_btn) popup = Popup( title=title, content=layout, - size_hint=(0.8, None), - size=(0, 200), + size_hint=(0.8, 0.4), auto_dismiss=False ) ok_btn.bind(on_press=lambda x: popup.dismiss()) popup.open() - - def open_file_location(self, file_path): - """Open file location in system file manager""" - import subprocess - import platform - - folder_path = os.path.dirname(file_path) - - try: - if platform.system() == "Linux": - subprocess.run(["xdg-open", folder_path]) - elif platform.system() == "Darwin": # macOS - subprocess.run(["open", folder_path]) - elif platform.system() == "Windows": - subprocess.run(["explorer", folder_path]) - except Exception as e: - print(f"Could not open folder: {e}") - diff --git a/screens/create_animation_screen.py.backup b/screens/create_animation_screen.py.backup new file mode 100644 index 0000000..8c6346c --- /dev/null +++ b/screens/create_animation_screen.py.backup @@ -0,0 +1,633 @@ +import kivy +from kivy.uix.screenmanager import Screen +import os +import json +import math +from datetime import datetime +from kivy.clock import Clock +from kivy.properties import StringProperty, NumericProperty, AliasProperty +from py_scripts.utils import ( + process_preview_util, optimize_route_entries_util +) + +from py_scripts.advanced_3d_generator import NavigationAnimationGenerator +from py_scripts.blender_animator import BlenderGPSAnimator +from kivy.uix.popup import Popup +from kivy.uix.button import Button +from kivy.uix.label import Label +from kivy.uix.boxlayout import BoxLayout +from kivy.uix.progressbar import ProgressBar +from kivy.uix.textinput import TextInput +from config import RESOURCES_FOLDER + +class CreateAnimationScreen(Screen): + project_name = StringProperty("") + preview_html_path = StringProperty("") # Path to the HTML file for preview + preview_image_path = StringProperty("") # Add this line + preview_image_version = NumericProperty(0) # Add this line + + def get_preview_image_source(self): + project_folder = os.path.join(RESOURCES_FOLDER, "projects", self.project_name) + img_path = os.path.join(project_folder, "preview.png") + if os.path.exists(img_path): + return img_path + return "resources/images/track.png" + + preview_image_source = AliasProperty( + get_preview_image_source, None, bind=['project_name', 'preview_image_version'] + ) + + def on_pre_enter(self): + # Update the route entries label with the actual number of entries + project_folder = os.path.join(RESOURCES_FOLDER, "projects", self.project_name) + positions_path = os.path.join(project_folder, "positions.json") + count = 0 + if os.path.exists(positions_path): + with open(positions_path, "r") as f: + try: + positions = json.load(f) + count = len(positions) + except Exception: + count = 0 + self.ids.route_entries_label.text = f"Your route has {count} entries," + + + + def open_rename_popup(self): + from kivy.uix.popup import Popup + from kivy.uix.boxlayout import BoxLayout + from kivy.uix.button import Button + from kivy.uix.textinput import TextInput + from kivy.uix.label import Label + + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + label = Label(text="Enter new project name:") + input_field = TextInput(text=self.project_name, multiline=False) + btn_save = Button(text="Save", background_color=(0.008, 0.525, 0.290, 1)) + btn_cancel = Button(text="Cancel") + + layout.add_widget(label) + layout.add_widget(input_field) + layout.add_widget(btn_save) + layout.add_widget(btn_cancel) + + popup = Popup( + title="Rename Project", + content=layout, + size_hint=(0.92, None), + size=(0, 260), + auto_dismiss=False + ) + + def do_rename(instance): + new_name = input_field.text.strip() + if new_name and new_name != self.project_name: + if self.rename_project_folder(self.project_name, new_name): + self.project_name = new_name + popup.dismiss() + self.on_pre_enter() # Refresh label + else: + label.text = "Rename failed (name exists?)" + else: + label.text = "Please enter a new name." + + btn_save.bind(on_press=do_rename) + btn_cancel.bind(on_press=lambda x: popup.dismiss()) + popup.open() + + def rename_project_folder(self, old_name, new_name): + import os + old_path = os.path.join(RESOURCES_FOLDER, "projects", old_name) + new_path = os.path.join(RESOURCES_FOLDER, "projects", new_name) + if os.path.exists(old_path) and not os.path.exists(new_path): + os.rename(old_path, new_path) + return True + return False + + def optimize_route_entries(self): + # Create the popup and UI elements + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + label = Label(text="Processing route entries...") + progress = ProgressBar(max=100, value=0) + layout.add_widget(label) + layout.add_widget(progress) + popup = Popup( + title="Optimizing Route", + content=layout, + size_hint=(0.92, None), + size=(0, 260), + auto_dismiss=False + ) + popup.open() + + # Now call the utility function with these objects + optimize_route_entries_util( + self.project_name, + RESOURCES_FOLDER, + label, + progress, + popup, + Clock, + on_save=lambda: self.on_pre_enter() + ) + + + def preview_route(self): + # Show processing popup + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + label = Label(text="Processing route preview...") + progress = ProgressBar(max=100, value=0) + layout.add_widget(label) + layout.add_widget(progress) + popup = Popup( + title="Previewing Route", + content=layout, + size_hint=(0.8, None), + size=(0, 180), + auto_dismiss=False + ) + popup.open() + + def set_preview_image_path(path): + self.preview_image_path = path + self.preview_image_version += 1 # Force AliasProperty to update + self.property('preview_image_source').dispatch(self) + self.ids.preview_image.reload() + # Schedule the processing function + Clock.schedule_once( + lambda dt: process_preview_util( + self.project_name, + RESOURCES_FOLDER, + label, + progress, + popup, + self.ids.preview_image, + set_preview_image_path, + Clock + ), + 0.5 + ) + + def open_pauses_popup(self): + """Navigate to the pause edit screen""" + pause_edit_screen = self.manager.get_screen("pause_edit") + pause_edit_screen.set_project_and_callback(self.project_name, self.on_pre_enter) + self.manager.current = "pause_edit" + + + + + + + + def show_video_generation_options(self): + """Show popup with video generation mode options including new advanced animations""" + from kivy.uix.popup import Popup + from kivy.uix.boxlayout import BoxLayout + from kivy.uix.button import Button + from kivy.uix.label import Label + + layout = BoxLayout(orientation='vertical', spacing=12, padding=15) + + # Title + title_label = Label( + text="Choose Animation Style & Quality", + font_size=20, + size_hint_y=None, + height=40, + color=(1, 1, 1, 1) + ) + layout.add_widget(title_label) + + # Classic 3D Mode + classic_layout = BoxLayout(orientation='vertical', spacing=5) + classic_title = Label( + text="🏃♂️ Classic 3D (Original Pipeline)", + font_size=16, + size_hint_y=None, + height=30, + color=(0.2, 0.8, 0.2, 1) + ) + classic_desc = Label( + text="• Traditional OpenCV/PIL approach\n• Fast generation\n• Good for simple tracks\n• Test (720p) or Production (2K)", + font_size=11, + size_hint_y=None, + height=70, + color=(0.9, 0.9, 0.9, 1), + halign="left", + valign="middle" + ) + classic_desc.text_size = (None, None) + classic_layout.add_widget(classic_title) + classic_layout.add_widget(classic_desc) + layout.add_widget(classic_layout) + + # Classic buttons + classic_btn_layout = BoxLayout(orientation='horizontal', spacing=10, size_hint_y=None, height=45) + classic_test_btn = Button( + text="Classic 720p", + background_color=(0.2, 0.8, 0.2, 1), + font_size=12 + ) + classic_prod_btn = Button( + text="Classic 2K", + background_color=(0.3, 0.6, 0.3, 1), + font_size=12 + ) + classic_btn_layout.add_widget(classic_test_btn) + classic_btn_layout.add_widget(classic_prod_btn) + layout.add_widget(classic_btn_layout) + + # Advanced Navigation Mode + advanced_layout = BoxLayout(orientation='vertical', spacing=5) + advanced_title = Label( + text="🧭 Navigation Animation", + font_size=16, + size_hint_y=None, + height=30, + color=(0.2, 0.6, 0.9, 1) + ) + advanced_desc = Label( + text="• Satellite terrain details\n• 3D camera following at 1000-2000m\n• Google Earth entry scene\n• Professional navigation view", + font_size=11, + size_hint_y=None, + height=70, + color=(0.9, 0.9, 0.9, 1), + halign="left", + valign="middle" + ) + advanced_desc.text_size = (None, None) + advanced_layout.add_widget(advanced_title) + advanced_layout.add_widget(advanced_desc) + layout.add_widget(advanced_layout) + + # Advanced button + advanced_btn = Button( + text="Generate Navigation Animation", + background_color=(0.2, 0.6, 0.9, 1), + size_hint_y=None, + height=45, + font_size=13 + ) + layout.add_widget(advanced_btn) + + # Google Earth Flythrough Mode + google_earth_layout = BoxLayout(orientation='vertical', spacing=5) + google_earth_title = Label( + text="🌍 Google Earth Flythrough", + font_size=16, + size_hint_y=None, + height=30, + color=(0.1, 0.8, 0.1, 1) + ) + google_earth_desc = Label( + text="• Realistic 3D terrain with mountains\n• Cinematic camera following at 1000-2000m\n• Google Earth-style flythrough\n• Professional geographic animation", + font_size=11, + size_hint_y=None, + height=70, + color=(0.9, 0.9, 0.9, 1), + halign="left", + valign="middle" + ) + google_earth_desc.text_size = (None, None) + google_earth_layout.add_widget(google_earth_title) + google_earth_layout.add_widget(google_earth_desc) + layout.add_widget(google_earth_layout) + + # Google Earth button + google_earth_btn = Button( + text="Generate Google Earth Flythrough", + background_color=(0.1, 0.8, 0.1, 1), + size_hint_y=None, + height=45, + font_size=13 + ) + layout.add_widget(google_earth_btn) + + # Blender Cinema Mode + blender_layout = BoxLayout(orientation='vertical', spacing=5) + blender_title = Label( + text="� Cinema Quality (Blender)", + font_size=16, + size_hint_y=None, + height=30, + color=(0.9, 0.6, 0.2, 1) + ) + blender_desc = Label( + text="• Professional 3D rendering\n• Photorealistic visuals\n• Cinema-grade quality\n• Longer processing time", + font_size=11, + size_hint_y=None, + height=70, + color=(0.9, 0.9, 0.9, 1), + halign="left", + valign="middle" + ) + blender_desc.text_size = (None, None) + blender_layout.add_widget(blender_title) + blender_layout.add_widget(blender_desc) + layout.add_widget(blender_layout) + + # Blender button + blender_btn = Button( + text="Generate Blender Cinema Animation", + background_color=(0.9, 0.6, 0.2, 1), + size_hint_y=None, + height=45, + font_size=13 + ) + layout.add_widget(blender_btn) + + # Cancel button + cancel_btn = Button( + text="Cancel", + background_color=(0.5, 0.5, 0.5, 1), + size_hint_y=None, + height=40, + font_size=12 + ) + layout.add_widget(cancel_btn) + + popup = Popup( + title="Select Animation Style", + content=layout, + size_hint=(0.95, 0.9), + auto_dismiss=False + ) + + def start_classic_test(instance): + popup.dismiss() + self.generate_3d_video_test_mode() + + def start_classic_production(instance): + popup.dismiss() + self.generate_3d_video_production_mode() + + def start_advanced_3d(instance): + popup.dismiss() + self.generate_advanced_3d_animation() + + def start_google_earth(instance): + popup.dismiss() + self.generate_google_earth_animation() + + def start_blender_animation(instance): + popup.dismiss() + self.generate_blender_animation() + + classic_test_btn.bind(on_press=start_classic_test) + classic_prod_btn.bind(on_press=start_classic_production) + advanced_btn.bind(on_press=start_advanced_3d) + google_earth_btn.bind(on_press=start_google_earth) + blender_btn.bind(on_press=start_blender_animation) + cancel_btn.bind(on_press=lambda x: popup.dismiss()) + + popup.open() + + + + def generate_blender_animation(self): + """Generate cinema-quality animation using Blender""" + # Show processing popup + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + label = Label(text="Initializing Blender rendering pipeline...") + progress = ProgressBar(max=100, value=0) + layout.add_widget(label) + layout.add_widget(progress) + popup = Popup( + title="Generating Blender Cinema Animation", + content=layout, + size_hint=(0.9, None), + size=(0, 200), + auto_dismiss=False + ) + popup.open() + + def run_blender_animation(): + try: + # Update status + def update_status(progress_val, status_text): + def _update(dt): + progress.value = progress_val + label.text = status_text + Clock.schedule_once(_update, 0) + + project_folder = os.path.join(RESOURCES_FOLDER, "projects", self.project_name) + positions_path = os.path.join(project_folder, "positions.json") + + if not os.path.exists(positions_path): + update_status(0, "Error: No GPS data found") + Clock.schedule_once(lambda dt: popup.dismiss(), 2) + return + + update_status(10, "Loading GPS data into Blender...") + + # Check dependencies first + animator = BlenderGPSAnimator(project_folder) + animator.check_dependencies() + + update_status(25, "Processing GPS coordinates...") + gps_data = animator.load_gps_data(positions_path) + + output_video_path = os.path.join(project_folder, f"{self.project_name}_blender_cinema_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp4") + + # Progress callback for the animator + def animator_progress(progress, message): + update_status(25 + (progress * 0.6), message) # Map 0-100% to 25-85% + + update_status(85, "Rendering cinema-quality video...") + success = animator.create_gps_animation( + positions_path, + output_video_path, + progress_callback=animator_progress + ) + + if success: + update_status(100, "Blender cinema animation complete!") + output_path = output_video_path + else: + raise Exception("Failed to render Blender animation") + + def show_success(dt): + popup.dismiss() + self.show_success_popup( + "Blender Cinema Animation Complete!", + f"Your cinema-quality animation has been rendered to:\n{output_path}", + output_path + ) + + Clock.schedule_once(show_success, 1) + + except Exception as e: + error_message = str(e) + def show_error(dt): + popup.dismiss() + self.show_error_popup("Blender Animation Error", error_message) + + Clock.schedule_once(show_error, 0) + + # Schedule the animation generation + Clock.schedule_once(lambda dt: run_blender_animation(), 0.5) + + def generate_google_earth_animation(self): + """Generate Google Earth-style flythrough animation with terrain""" + # Show processing popup + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + label = Label(text="Initializing Google Earth flythrough...") + progress = ProgressBar(max=100, value=0) + layout.add_widget(label) + layout.add_widget(progress) + popup = Popup( + title="Generating Google Earth Flythrough", + content=layout, + size_hint=(0.9, None), + size=(0, 200), + auto_dismiss=False + ) + popup.open() + + def run_google_earth_animation(): + try: + # Update status + def update_status(progress_val, status_text): + def _update(dt): + progress.value = progress_val + label.text = status_text + Clock.schedule_once(_update, 0) + + project_folder = os.path.join(RESOURCES_FOLDER, "projects", self.project_name) + positions_path = os.path.join(project_folder, "positions.json") + + if not os.path.exists(positions_path): + update_status(0, "Error: No GPS data found") + Clock.schedule_once(lambda dt: popup.dismiss(), 2) + return + + update_status(10, "Checking dependencies...") + + # Check dependencies first + generator = NavigationAnimationGenerator(project_folder) + generator.check_dependencies() + + update_status(20, "Loading GPS data...") + df = generator.load_gps_data(positions_path) + + update_status(30, "Generating navigation flythrough...") + output_video_path = os.path.join(project_folder, f"{self.project_name}_navigation_flythrough_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp4") + + # Progress callback for the generator + def generator_progress(progress, message): + update_status(30 + (progress * 0.5), message) # Map 0-100% to 30-80% + + update_status(80, "Creating navigation flythrough...") + success = generator.generate_3d_animation( + positions_path, + output_video_path, + style='advanced', + progress_callback=generator_progress + ) + + if success: + update_status(100, "Navigation flythrough complete!") + output_path = output_video_path + else: + raise Exception("Failed to generate navigation flythrough") + + def show_success(dt): + popup.dismiss() + self.show_success_popup( + "Google Earth Flythrough Complete!", + f"Your cinematic flythrough has been created:\n{output_path}", + output_path + ) + + Clock.schedule_once(show_success, 1) + + except Exception as e: + error_message = str(e) + def show_error(dt): + popup.dismiss() + self.show_error_popup("Google Earth Animation Error", error_message) + + Clock.schedule_once(show_error, 0) + + # Schedule the animation generation + Clock.schedule_once(lambda dt: run_google_earth_animation(), 0.5) + + def show_success_popup(self, title, message, file_path=None): + """Show success popup with option to open file location""" + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + + success_label = Label( + text=message, + text_size=(400, None), + halign="center", + valign="middle" + ) + layout.add_widget(success_label) + + button_layout = BoxLayout(orientation='horizontal', spacing=10, size_hint_y=None, height=50) + + if file_path: + open_btn = Button(text="Open Folder", background_color=(0.2, 0.8, 0.2, 1)) + open_btn.bind(on_press=lambda x: self.open_file_location(file_path)) + button_layout.add_widget(open_btn) + + ok_btn = Button(text="OK", background_color=(0.2, 0.6, 0.9, 1)) + button_layout.add_widget(ok_btn) + layout.add_widget(button_layout) + + popup = Popup( + title=title, + content=layout, + size_hint=(0.8, None), + size=(0, 250), + auto_dismiss=False + ) + + ok_btn.bind(on_press=lambda x: popup.dismiss()) + popup.open() + + def show_error_popup(self, title, message): + """Show error popup""" + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + + error_label = Label( + text=f"Error: {message}", + text_size=(400, None), + halign="center", + valign="middle", + color=(1, 0.3, 0.3, 1) + ) + layout.add_widget(error_label) + + ok_btn = Button(text="OK", background_color=(0.8, 0.2, 0.2, 1), size_hint_y=None, height=50) + layout.add_widget(ok_btn) + + popup = Popup( + title=title, + content=layout, + size_hint=(0.8, None), + size=(0, 200), + auto_dismiss=False + ) + + ok_btn.bind(on_press=lambda x: popup.dismiss()) + popup.open() + + def open_file_location(self, file_path): + """Open file location in system file manager""" + import subprocess + import platform + + folder_path = os.path.dirname(file_path) + + try: + if platform.system() == "Linux": + subprocess.run(["xdg-open", folder_path]) + elif platform.system() == "Darwin": # macOS + subprocess.run(["open", folder_path]) + elif platform.system() == "Windows": + subprocess.run(["explorer", folder_path]) + except Exception as e: + print(f"Could not open folder: {e}") + diff --git a/screens/create_animation_screen_clean.py b/screens/create_animation_screen_clean.py new file mode 100644 index 0000000..88b4bbc --- /dev/null +++ b/screens/create_animation_screen_clean.py @@ -0,0 +1,419 @@ +import kivy +from kivy.uix.screenmanager import Screen +import os +import json +import math +from datetime import datetime +from kivy.clock import Clock +from kivy.properties import StringProperty, NumericProperty, AliasProperty +from py_scripts.utils import ( + process_preview_util, optimize_route_entries_util +) +from py_scripts.advanced_3d_generator import NavigationAnimationGenerator +from py_scripts.blender_animator import BlenderGPSAnimator +from kivy.uix.popup import Popup +from kivy.uix.button import Button +from kivy.uix.label import Label +from kivy.uix.boxlayout import BoxLayout +from kivy.uix.progressbar import ProgressBar +from kivy.uix.textinput import TextInput +from config import RESOURCES_FOLDER + +class CreateAnimationScreen(Screen): + project_name = StringProperty("") + preview_html_path = StringProperty("") # Path to the HTML file for preview + preview_image_path = StringProperty("") # Add this line + preview_image_version = NumericProperty(0) # Add this line + + def get_preview_image_source(self): + project_folder = os.path.join(RESOURCES_FOLDER, "projects", self.project_name) + img_path = os.path.join(project_folder, "preview.png") + if os.path.exists(img_path): + return img_path + return "resources/images/track.png" + + preview_image_source = AliasProperty( + get_preview_image_source, None, bind=['project_name', 'preview_image_version'] + ) + + def on_pre_enter(self): + # Update the route entries label with the actual number of entries + project_folder = os.path.join(RESOURCES_FOLDER, "projects", self.project_name) + positions_path = os.path.join(project_folder, "positions.json") + count = 0 + if os.path.exists(positions_path): + with open(positions_path, "r") as f: + try: + positions = json.load(f) + count = len(positions) + except Exception: + count = 0 + self.ids.route_entries_label.text = f"Your route has {count} entries," + + def open_rename_popup(self): + from kivy.uix.popup import Popup + from kivy.uix.boxlayout import BoxLayout + from kivy.uix.button import Button + from kivy.uix.textinput import TextInput + from kivy.uix.label import Label + + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + label = Label(text="Enter new project name:") + input_field = TextInput(text=self.project_name, multiline=False) + btn_save = Button(text="Save", background_color=(0.008, 0.525, 0.290, 1)) + btn_cancel = Button(text="Cancel") + + layout.add_widget(label) + layout.add_widget(input_field) + layout.add_widget(btn_save) + layout.add_widget(btn_cancel) + + popup = Popup( + title="Rename Project", + content=layout, + size_hint=(0.92, None), + size=(0, 260), + auto_dismiss=False + ) + + def do_rename(instance): + new_name = input_field.text.strip() + if new_name and new_name != self.project_name: + if self.rename_project_folder(self.project_name, new_name): + self.project_name = new_name + popup.dismiss() + self.on_pre_enter() # Refresh label + else: + label.text = "Rename failed (name exists?)" + else: + label.text = "Please enter a new name." + + btn_save.bind(on_press=do_rename) + btn_cancel.bind(on_press=lambda x: popup.dismiss()) + popup.open() + + def rename_project_folder(self, old_name, new_name): + import os + old_path = os.path.join(RESOURCES_FOLDER, "projects", old_name) + new_path = os.path.join(RESOURCES_FOLDER, "projects", new_name) + if os.path.exists(old_path) and not os.path.exists(new_path): + os.rename(old_path, new_path) + return True + return False + + def optimize_route_entries(self): + # Create the popup and UI elements + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + label = Label(text="Processing route entries...") + progress = ProgressBar(max=100, value=0) + layout.add_widget(label) + layout.add_widget(progress) + popup = Popup( + title="Optimizing Route", + content=layout, + size_hint=(0.92, None), + size=(0, 260), + auto_dismiss=False + ) + popup.open() + + # Now call the utility function with these objects + optimize_route_entries_util( + self.project_name, + RESOURCES_FOLDER, + label, + progress, + popup, + Clock, + on_save=lambda: self.on_pre_enter() + ) + + def preview_route(self): + # Show processing popup + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + label = Label(text="Processing route preview...") + progress = ProgressBar(max=100, value=0) + layout.add_widget(label) + layout.add_widget(progress) + popup = Popup( + title="Previewing Route", + content=layout, + size_hint=(0.8, None), + size=(0, 180), + auto_dismiss=False + ) + popup.open() + + def set_preview_image_path(path): + self.preview_image_path = path + self.preview_image_version += 1 # Force AliasProperty to update + self.property('preview_image_source').dispatch(self) + self.ids.preview_image.reload() + # Schedule the processing function + Clock.schedule_once( + lambda dt: process_preview_util( + self.project_name, + RESOURCES_FOLDER, + label, + progress, + popup, + self.ids.preview_image, + set_preview_image_path, + Clock + ), + 0.5 + ) + + def open_pauses_popup(self): + """Navigate to the pause edit screen""" + pause_edit_screen = self.manager.get_screen("pause_edit") + pause_edit_screen.set_project_and_callback(self.project_name, self.on_pre_enter) + self.manager.current = "pause_edit" + + def generate_google_earth_animation(self): + """Generate Google Earth-style flythrough animation using NavigationAnimationGenerator""" + # Show processing popup + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + label = Label(text="Initializing Google Earth flythrough...") + progress = ProgressBar(max=100, value=0) + layout.add_widget(label) + layout.add_widget(progress) + popup = Popup( + title="Generating Google Earth Flythrough", + content=layout, + size_hint=(0.9, None), + size=(0, 200), + auto_dismiss=False + ) + popup.open() + + def run_google_earth_animation(): + try: + # Update status + def update_status(progress_val, status_text): + def _update(dt): + progress.value = progress_val + label.text = status_text + Clock.schedule_once(_update, 0) + + project_folder = os.path.join(RESOURCES_FOLDER, "projects", self.project_name) + positions_path = os.path.join(project_folder, "positions.json") + + if not os.path.exists(positions_path): + update_status(0, "Error: No GPS data found") + Clock.schedule_once(lambda dt: popup.dismiss(), 2) + return + + update_status(10, "Loading GPS data...") + + # Check dependencies first + generator = NavigationAnimationGenerator(project_folder) + generator.check_dependencies() + + update_status(20, "Processing GPS coordinates...") + df = generator.load_gps_data(positions_path) + + update_status(40, "Creating Google Earth flythrough...") + output_video_path = os.path.join(project_folder, f"{self.project_name}_google_earth_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp4") + + # Progress callback for the generator + def generator_progress(progress, message): + update_status(40 + (progress * 0.5), message) # Map 0-100% to 40-90% + + update_status(90, "Creating flythrough video...") + success = generator.generate_frames(positions_path, style='google_earth', progress_callback=generator_progress) + + if success and len(success) > 0: + update_status(95, "Rendering final video...") + video_success = generator.create_video(success, output_video_path, generator_progress) + if video_success: + update_status(100, "Google Earth flythrough complete!") + output_path = output_video_path + else: + raise Exception("Failed to create video from frames") + else: + raise Exception("Failed to generate frames") + + def show_success(dt): + popup.dismiss() + self.show_success_popup( + "Google Earth Flythrough Complete!", + f"Your Google Earth-style flythrough has been saved to:\n{output_path}", + output_path + ) + + Clock.schedule_once(show_success, 1) + + except Exception as e: + error_message = str(e) + def show_error(dt): + popup.dismiss() + self.show_error_popup("Google Earth Animation Error", error_message) + + Clock.schedule_once(show_error, 0) + + # Schedule the animation generation + Clock.schedule_once(lambda dt: run_google_earth_animation(), 0.5) + + def generate_blender_animation(self): + """Generate cinema-quality animation using Blender""" + # Show processing popup + layout = BoxLayout(orientation='vertical', spacing=10, padding=10) + label = Label(text="Initializing Blender rendering pipeline...") + progress = ProgressBar(max=100, value=0) + layout.add_widget(label) + layout.add_widget(progress) + popup = Popup( + title="Generating Blender Cinema Animation", + content=layout, + size_hint=(0.9, None), + size=(0, 200), + auto_dismiss=False + ) + popup.open() + + def run_blender_animation(): + try: + # Update status + def update_status(progress_val, status_text): + def _update(dt): + progress.value = progress_val + label.text = status_text + Clock.schedule_once(_update, 0) + + project_folder = os.path.join(RESOURCES_FOLDER, "projects", self.project_name) + positions_path = os.path.join(project_folder, "positions.json") + + if not os.path.exists(positions_path): + update_status(0, "Error: No GPS data found") + Clock.schedule_once(lambda dt: popup.dismiss(), 2) + return + + update_status(10, "Loading GPS data into Blender...") + + # Check dependencies first + animator = BlenderGPSAnimator(project_folder) + animator.check_dependencies() + + update_status(25, "Processing GPS coordinates...") + gps_data = animator.load_gps_data(positions_path) + + output_video_path = os.path.join(project_folder, f"{self.project_name}_blender_cinema_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp4") + + # Progress callback for the animator + def animator_progress(progress, message): + update_status(25 + (progress * 0.6), message) # Map 0-100% to 25-85% + + update_status(85, "Rendering cinema-quality video...") + success = animator.create_gps_animation( + positions_path, + output_video_path, + progress_callback=animator_progress + ) + + if success: + update_status(100, "Blender cinema animation complete!") + output_path = output_video_path + else: + raise Exception("Failed to generate Blender animation") + + def show_success(dt): + popup.dismiss() + self.show_success_popup( + "Blender Cinema Animation Complete!", + f"Your cinema-quality animation has been saved to:\n{output_path}", + output_path + ) + + Clock.schedule_once(show_success, 1) + + except Exception as e: + error_message = str(e) + def show_error(dt): + popup.dismiss() + self.show_error_popup("Blender Animation Error", error_message) + + Clock.schedule_once(show_error, 0) + + # Schedule the animation generation + Clock.schedule_once(lambda dt: run_blender_animation(), 0.5) + + def show_success_popup(self, title, message, file_path): + """Show success popup with option to open file location""" + layout = BoxLayout(orientation='vertical', spacing=10, padding=15) + + # Success message + success_label = Label( + text=message, + text_size=(None, None), + halign="center", + valign="middle" + ) + layout.add_widget(success_label) + + # Buttons + btn_layout = BoxLayout(orientation='horizontal', spacing=10, size_hint_y=None, height=50) + + open_folder_btn = Button( + text="Open Folder", + background_color=(0.2, 0.6, 0.9, 1) + ) + + ok_btn = Button( + text="OK", + background_color=(0.3, 0.7, 0.3, 1) + ) + + btn_layout.add_widget(open_folder_btn) + btn_layout.add_widget(ok_btn) + layout.add_widget(btn_layout) + + popup = Popup( + title=title, + content=layout, + size_hint=(0.9, 0.6), + auto_dismiss=False + ) + + def open_folder(instance): + folder_path = os.path.dirname(file_path) + os.system(f'xdg-open "{folder_path}"') # Linux + popup.dismiss() + + def close_popup(instance): + popup.dismiss() + + open_folder_btn.bind(on_press=open_folder) + ok_btn.bind(on_press=close_popup) + + popup.open() + + def show_error_popup(self, title, message): + """Show error popup""" + layout = BoxLayout(orientation='vertical', spacing=10, padding=15) + + error_label = Label( + text=f"Error: {message}", + text_size=(None, None), + halign="center", + valign="middle" + ) + layout.add_widget(error_label) + + ok_btn = Button( + text="OK", + background_color=(0.8, 0.3, 0.3, 1), + size_hint_y=None, + height=50 + ) + layout.add_widget(ok_btn) + + popup = Popup( + title=title, + content=layout, + size_hint=(0.8, 0.4), + auto_dismiss=False + ) + + ok_btn.bind(on_press=lambda x: popup.dismiss()) + popup.open() diff --git a/test_google_earth.py b/test_google_earth.py index 565a1ad..ad30cb5 100644 --- a/test_google_earth.py +++ b/test_google_earth.py @@ -7,7 +7,7 @@ import os import sys sys.path.append('/home/pi/Desktop/traccar_animation') -from py_scripts.advanced_3d_generator import Advanced3DGenerator +from py_scripts.advanced_3d_generator import NavigationAnimationGenerator from datetime import datetime def test_google_earth_animation(): @@ -39,7 +39,7 @@ def test_google_earth_animation(): print(f"Testing Google Earth animation with project: {project_name}") # Create generator - generator = Advanced3DGenerator(project_folder) + generator = NavigationAnimationGenerator(project_folder) # Check dependencies try: @@ -57,22 +57,36 @@ def test_google_earth_animation(): try: print("Starting Google Earth flythrough generation...") - success = generator.generate_3d_animation( + # Generate frames + frame_paths = generator.generate_frames( positions_file, - output_video, style='google_earth', progress_callback=progress_callback ) - if success and os.path.exists(output_video): - print(f"✅ SUCCESS! Google Earth flythrough created: {output_video}") + if frame_paths and len(frame_paths) > 0: + print(f"✅ Generated {len(frame_paths)} frames") - # Get file size - file_size = os.path.getsize(output_video) / (1024 * 1024) # MB - print(f"📹 Video size: {file_size:.1f} MB") + # Create video + success = generator.create_video( + frame_paths, + output_video, + progress_callback=progress_callback + ) + if success and os.path.exists(output_video): + print(f"✅ SUCCESS! Google Earth flythrough created: {output_video}") + + # Get file size + file_size = os.path.getsize(output_video) / (1024 * 1024) # MB + print(f"📹 Video size: {file_size:.1f} MB") + + # Clean up frames + generator.cleanup_frames() + else: + print("❌ Failed to create video from frames") else: - print("❌ Failed to create video") + print("❌ Failed to generate frames") except Exception as e: print(f"❌ Error during generation: {e}") diff --git a/test_progressive_3d.py b/test_progressive_3d.py new file mode 100644 index 0000000..7b797de --- /dev/null +++ b/test_progressive_3d.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python3 +""" +Test script for progressive 3D animation function +""" + +import os +import sys +sys.path.append('/home/pi/Desktop/traccar_animation') + +def test_progressive_3d_animation(): + """Test the progressive 3D animation dependencies""" + + print("Testing progressive 3D animation dependencies...") + + try: + # Test matplotlib with 3D + import matplotlib + matplotlib.use('Agg') # Non-interactive backend + import matplotlib.pyplot as plt + from mpl_toolkits.mplot3d import Axes3D + print("✅ Matplotlib with 3D support available") + + # Test OpenCV (instead of MoviePy) + import cv2 + print("✅ OpenCV available for video creation") + + # Test numpy + import numpy as np + print("✅ NumPy available") + + # Test basic 3D plot creation + fig = plt.figure(figsize=(8, 6)) + ax = fig.add_subplot(111, projection='3d') + + # Create simple test data + x = np.array([0, 1, 2, 3, 4]) + y = np.array([0, 1, 0, 1, 0]) + z = np.array([0, 0, 1, 1, 2]) + + ax.plot(x, y, z, 'b-', linewidth=2) + ax.scatter(x, y, z, c='red', s=50) + ax.set_xlabel('X') + ax.set_ylabel('Y') + ax.set_zlabel('Z') + ax.set_title('Test 3D Plot') + + # Save test plot + test_path = '/tmp/test_3d_plot.png' + plt.savefig(test_path, dpi=100, bbox_inches='tight') + plt.close(fig) + + if os.path.exists(test_path): + print("✅ 3D plot creation and saving works") + os.remove(test_path) + else: + print("❌ Failed to create 3D plot") + + except ImportError as e: + print(f"❌ Import error: {e}") + return False + except Exception as e: + print(f"❌ Error: {e}") + return False + + print("🎉 All dependencies for progressive 3D animation are working!") + return True + +if __name__ == "__main__": + test_progressive_3d_animation() diff --git a/test_progressive_debug.py b/test_progressive_debug.py new file mode 100644 index 0000000..eaae6c7 --- /dev/null +++ b/test_progressive_debug.py @@ -0,0 +1,202 @@ +#!/usr/bin/env python3 +""" +Test script for progressive 3D animation with debugging +""" + +import os +import sys +sys.path.append('/home/pi/Desktop/traccar_animation') + +def test_progressive_animation_debug(): + """Test the progressive animation with a simple GPS dataset""" + + print("Testing progressive 3D animation with debug output...") + + # Find a project with GPS data + projects_folder = "/home/pi/Desktop/traccar_animation/resources/projects" + + if not os.path.exists(projects_folder): + print("❌ Projects folder not found!") + return + + # Look for projects + projects = [d for d in os.listdir(projects_folder) if os.path.isdir(os.path.join(projects_folder, d))] + + if not projects: + print("❌ No projects found!") + return + + # Use the first project found + project_name = projects[0] + project_folder = os.path.join(projects_folder, project_name) + positions_file = os.path.join(project_folder, "positions.json") + + if not os.path.exists(positions_file): + print(f"❌ No positions.json found in project {project_name}") + return + + print(f"✅ Testing with project: {project_name}") + + try: + # Import the animation generation code + import json + import matplotlib + matplotlib.use('Agg') + import matplotlib.pyplot as plt + from mpl_toolkits.mplot3d import Axes3D + import numpy as np + import cv2 + from datetime import datetime + + # Load GPS data + with open(positions_file, 'r') as f: + positions = json.load(f) + + print(f"✅ Loaded {len(positions)} GPS points") + + if len(positions) < 2: + print("❌ Need at least 2 GPS points") + return + + # Test creating just 3 frames + test_frames_folder = os.path.join(project_folder, "test_frames") + os.makedirs(test_frames_folder, exist_ok=True) + + # Extract coordinates + lats = np.array([pos['latitude'] for pos in positions[:10]]) # Just first 10 points + lons = np.array([pos['longitude'] for pos in positions[:10]]) + alts = np.array([pos.get('altitude', 0) for pos in positions[:10]]) + + # Convert to relative coordinates + lat_center = np.mean(lats) + lon_center = np.mean(lons) + alt_min = np.min(alts) + + x = (lons - lon_center) * 111320 * np.cos(np.radians(lat_center)) + y = (lats - lat_center) * 110540 + z = alts - alt_min + + print(f"✅ Processed coordinates: x={x.min():.1f} to {x.max():.1f}, y={y.min():.1f} to {y.max():.1f}") + + frame_files = [] + + # Create 3 test frames + for frame_idx in range(3): + end_point = (frame_idx + 1) * 3 + end_point = min(end_point, len(x)) + + print(f"Creating frame {frame_idx + 1}, showing {end_point} points...") + + # Create 3D plot + fig = plt.figure(figsize=(10, 8), dpi=100) + ax = fig.add_subplot(111, projection='3d') + + # Plot route up to current point + if end_point > 1: + ax.plot(x[:end_point], y[:end_point], z[:end_point], 'b-', linewidth=2) + ax.scatter(x[:end_point], y[:end_point], z[:end_point], c='blue', s=20) + + # Current position + if end_point > 0: + current_idx = end_point - 1 + ax.scatter(x[current_idx], y[current_idx], z[current_idx], + c='red', s=100, marker='o') + + # Remaining route + if end_point < len(x): + ax.plot(x[end_point:], y[end_point:], z[end_point:], + 'lightgray', linewidth=1, alpha=0.3) + + ax.set_xlabel('East-West (m)') + ax.set_ylabel('North-South (m)') + ax.set_zlabel('Elevation (m)') + ax.set_title(f'Test Frame {frame_idx + 1} - Point {end_point}/{len(x)}') + + # Set view + margin = max(np.ptp(x), np.ptp(y)) * 0.1 if np.ptp(x) > 0 else 100 + ax.set_xlim(np.min(x) - margin, np.max(x) + margin) + ax.set_ylim(np.min(y) - margin, np.max(y) + margin) + ax.set_zlim(np.min(z) - 10, np.max(z) + 10) + ax.view_init(elev=20, azim=45) + ax.grid(True) + + # Save frame + frame_path = os.path.join(test_frames_folder, f"test_frame_{frame_idx:03d}.png") + try: + plt.savefig(frame_path, dpi=100, bbox_inches='tight', + facecolor='white', edgecolor='none', format='png') + plt.close(fig) + + # Check frame + if os.path.exists(frame_path): + file_size = os.path.getsize(frame_path) + print(f"✅ Frame {frame_idx + 1} saved: {file_size} bytes") + + # Test OpenCV reading + test_img = cv2.imread(frame_path) + if test_img is not None: + h, w, c = test_img.shape + print(f"✅ Frame {frame_idx + 1} readable by OpenCV: {w}x{h}") + frame_files.append(frame_path) + else: + print(f"❌ Frame {frame_idx + 1} not readable by OpenCV") + else: + print(f"❌ Frame {frame_idx + 1} not created") + + except Exception as e: + print(f"❌ Error creating frame {frame_idx + 1}: {e}") + plt.close(fig) + + print(f"Created {len(frame_files)} valid frames") + + # Test video creation + if frame_files: + output_video = os.path.join(project_folder, f"test_progressive_{datetime.now().strftime('%H%M%S')}.mp4") + + # Read first frame for dimensions + first_frame = cv2.imread(frame_files[0]) + height, width, layers = first_frame.shape + + print(f"Video dimensions: {width}x{height}") + + # Create video + fourcc = cv2.VideoWriter_fourcc(*'mp4v') + video_writer = cv2.VideoWriter(output_video, fourcc, 2.0, (width, height)) + + if video_writer.isOpened(): + for i, frame_file in enumerate(frame_files): + frame = cv2.imread(frame_file) + if frame is not None: + video_writer.write(frame) + print(f"✅ Added frame {i+1} to video") + else: + print(f"❌ Could not read frame {i+1}") + + video_writer.release() + + if os.path.exists(output_video): + file_size = os.path.getsize(output_video) + print(f"✅ Video created: {output_video} ({file_size} bytes)") + else: + print("❌ Video file not created") + else: + print("❌ Could not open video writer") + + # Clean up + for frame_file in frame_files: + try: + os.remove(frame_file) + except: + pass + try: + os.rmdir(test_frames_folder) + except: + pass + + except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + +if __name__ == "__main__": + test_progressive_animation_debug() diff --git a/test_video_creation.py b/test_video_creation.py new file mode 100644 index 0000000..1f73e9a --- /dev/null +++ b/test_video_creation.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python3 +""" +Test script for video creation functionality +""" + +import os +import sys +sys.path.append('/home/pi/Desktop/traccar_animation') + +import cv2 +import numpy as np +import matplotlib +matplotlib.use('Agg') +import matplotlib.pyplot as plt + +def test_video_creation(): + """Test video creation with sample frames""" + + print("Testing video creation functionality...") + + # Create test directory + test_dir = "/tmp/video_test" + os.makedirs(test_dir, exist_ok=True) + + try: + # Create sample frames + frame_files = [] + for i in range(10): + # Create a simple test plot + fig, ax = plt.subplots(figsize=(8, 6)) + + # Simple animation - moving dot + x = np.linspace(0, 10, 100) + y = np.sin(x + i * 0.5) + + ax.plot(x, y, 'b-', linewidth=2) + ax.scatter([i], [np.sin(i * 0.5)], c='red', s=100) + ax.set_xlim(0, 10) + ax.set_ylim(-2, 2) + ax.set_title(f'Test Frame {i+1}/10') + ax.grid(True) + + # Save frame + frame_path = os.path.join(test_dir, f"frame_{i:03d}.png") + plt.savefig(frame_path, dpi=100, bbox_inches='tight') + plt.close(fig) + + frame_files.append(frame_path) + print(f"Created frame {i+1}/10") + + print(f"Created {len(frame_files)} test frames") + + # Test video creation with different codecs + codecs_to_test = [ + ('mp4v', '.mp4'), + ('XVID', '.avi'), + ('MJPG', '.avi') + ] + + for codec, ext in codecs_to_test: + try: + output_path = os.path.join(test_dir, f"test_video_{codec}{ext}") + + # Read first frame for dimensions + first_frame = cv2.imread(frame_files[0]) + if first_frame is None: + print(f"❌ Could not read first frame") + continue + + height, width, layers = first_frame.shape + print(f"Frame dimensions: {width}x{height}") + + # Create video writer + fourcc = cv2.VideoWriter_fourcc(*codec) + video_writer = cv2.VideoWriter(output_path, fourcc, 5.0, (width, height)) + + if not video_writer.isOpened(): + print(f"❌ Could not open video writer with {codec}") + continue + + # Write frames + frames_written = 0 + for frame_file in frame_files: + frame = cv2.imread(frame_file) + if frame is not None: + video_writer.write(frame) + frames_written += 1 + + video_writer.release() + + # Check result + if os.path.exists(output_path): + file_size = os.path.getsize(output_path) + if file_size > 1024: # At least 1KB + print(f"✅ {codec} video created: {output_path} ({file_size} bytes, {frames_written} frames)") + else: + print(f"❌ {codec} video too small: {file_size} bytes") + else: + print(f"❌ {codec} video not created") + + except Exception as e: + print(f"❌ Error with {codec}: {e}") + + # Check OpenCV version and capabilities + print(f"\nOpenCV version: {cv2.__version__}") + print(f"OpenCV build info available: {hasattr(cv2, 'getBuildInformation')}") + + except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + + finally: + # Clean up + for frame_file in frame_files: + try: + os.remove(frame_file) + except: + pass + try: + os.rmdir(test_dir) + except: + pass + +if __name__ == "__main__": + test_video_creation() diff --git a/traccar.kv b/traccar.kv index 5e877c2..78af74a 100644 --- a/traccar.kv +++ b/traccar.kv @@ -722,7 +722,7 @@ height: 202 size_hint_x: 1 - # 3D Video Animation frame + # Progressive 3D Animation frame BoxLayout: orientation: "horizontal" size_hint_y: None @@ -737,7 +737,7 @@ size: self.size Label: - text: "Generate 3D video animation\nsimilar to Relive style" + text: "Generate progressive 3D animation\nBuilds trip point by point" font_size: 16 color: 1, 1, 1, 1 size_hint_x: 0.7 @@ -746,15 +746,84 @@ text_size: self.size Button: - text: "Generate\n3D Video" + text: "Generate\n3D Trip" size_hint_x: 0.3 font_size: 14 - background_color: 0.8, 0.2, 0.4, 1 + background_color: 0.2, 0.8, 0.4, 1 color: 1, 1, 1, 1 halign: "center" valign: "middle" text_size: self.size - on_press: root.generate_3d_video() + on_press: root.generate_progressive_3d_animation() + + # Google Earth Animation frame + BoxLayout: + orientation: "horizontal" + size_hint_y: None + height: 60 + padding: [10, 10, 10, 10] + spacing: 10 + canvas.before: + Color: + rgba: 0.15, 0.15, 0.18, 1 + Rectangle: + pos: self.pos + size: self.size + + Label: + text: "Generate Google Earth flythrough\nCinematic aerial view" + font_size: 16 + color: 1, 1, 1, 1 + size_hint_x: 0.7 + halign: "left" + valign: "middle" + text_size: self.size + + Button: + text: "Generate\nFlythrough" + size_hint_x: 0.3 + font_size: 14 + background_color: 0.1, 0.8, 0.1, 1 + color: 1, 1, 1, 1 + halign: "center" + valign: "middle" + text_size: self.size + on_press: root.generate_google_earth_animation() + + # Blender Animation frame + BoxLayout: + orientation: "horizontal" + size_hint_y: None + height: 60 + padding: [10, 10, 10, 10] + spacing: 10 + canvas.before: + Color: + rgba: 0.15, 0.15, 0.18, 1 + Rectangle: + pos: self.pos + size: self.size + + Label: + text: "Generate cinema-quality animation\nProfessional 3D rendering" + font_size: 16 + color: 1, 1, 1, 1 + size_hint_x: 0.7 + halign: "left" + valign: "middle" + text_size: self.size + + Button: + text: "Generate\nCinema" + size_hint_x: 0.3 + font_size: 14 + background_color: 0.9, 0.6, 0.2, 1 + color: 1, 1, 1, 1 + halign: "center" + valign: "middle" + text_size: self.size + on_press: root.generate_blender_animation() + Widget: