Térképi rétegkezelő lérehozása, track online mentésének előkészítése

This commit is contained in:
2026-06-12 13:41:36 +02:00
parent 644201dc8a
commit beb07fe007
10 changed files with 169 additions and 55 deletions
+11
View File
@@ -0,0 +1,11 @@
// import 'package:flutter/material.dart';
// import 'package:terepi_seged/map_layers/map_layer.dart';
// import 'map_geojson_layer.dart';
// class DxfLayer extends MapLayer {
// // DXF parsing — nincs Flutter csomag, szerver oldali konverzió kell
// // Supabase Edge Function: DXF → GeoJSON (ogr2ogr alapú)
// @override
// Widget buildFlutterMapLayer() => GeoJsonLayer.fromFeatures(_features);
// }
+17
View File
@@ -0,0 +1,17 @@
// import 'package:flutter/material.dart';
// import 'package:flutter_map/flutter_map.dart';
// import 'map_layer.dart';
// class GeoJsonLayer extends MapLayer {
// final String sourceUrl; // Supabase Storage URL
// final String? localPath; // offline cache
// FeatureCollection? _data;
// @override
// Widget buildFlutterMapLayer() {
// if (_data == null) return const SizedBox.shrink();
// return PolygonLayer(polygons: _buildPolygons());
// // vagy PolylineLayer / MarkerLayer a geometry type-tól függően
// }
// }
+20
View File
@@ -0,0 +1,20 @@
import 'package:flutter/material.dart';
import 'package:terepi_seged/enums/map_layer_type.dart';
import 'package:terepi_seged/enums/map_layer_visibility.dart';
abstract class MapLayer {
late final String id;
late final String name;
late final LayerType type;
late LayerVisibility visibility;
late double opacity;
late int zIndex;
//LayerStyle style;
// Minden réteg tudja magát flutter_map widget-té alakítani
Widget buildFlutterMapLayer();
// Offline cache-elhetőség
Future<void> prefetch();
bool get isCached;
}
+23
View File
@@ -0,0 +1,23 @@
// import 'package:flutter/material.dart';
// import 'package:flutter_map/flutter_map.dart';
// import 'package:supabase_flutter/supabase_flutter.dart';
// import 'map_layer.dart';
// class PostGisLayer extends MapLayer {
// final String table; // Supabase tábla neve
// final String geomColumn; // geometry oszlop
// final String? filter; // pl. "project_id=eq.123"
// final BoundingBox? bbox; // csak látható terület lekérése
// @override
// Widget buildFlutterMapLayer() {
// // flutter_map_tile_caching + PostGIS tile endpoint
// return TileLayer(urlTemplate: _buildMvtUrl());
// }
// // MapBox Vector Tiles (MVT) Supabase Edge Function-ből
// String _buildMvtUrl() =>
// '${Supabase.instance.client.supabaseUrl}/functions/v1/tiles'
// '/$table/{z}/{x}/{y}?geom=$geomColumn${filter != null ? "&filter=$filter" : ""}';
// }
+11
View File
@@ -0,0 +1,11 @@
// import 'package:flutter/material.dart';
// import 'map_geojson_layer.dart';
// import 'map_layer.dart';
// class ShapefileLayer extends MapLayer {
// // SHP → GeoJSON konverzió device-on
// // shapefile_dart csomag
// @override
// Widget buildFlutterMapLayer() => GeoJsonLayer.fromFeatures(_features);
// }