todos-contra-el-fuego-mobile/lib/fireMarker.dart
vjrj 7a4c9fb3bc fix: resolve 2 remaining strict analysis errors
- introPage.dart: Convert fireItems to proper static function closure
- mainDrawer.dart: Convert unreadCount int to String for Text widget
2026-03-06 11:21:06 +01:00

46 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong2/latlong.dart';
import 'fireMarkType.dart';
import 'fireMarkerIcon.dart';
/// Create a Marker with custom positioning for fires and other map objects
Marker FireMarker(
LatLng pos,
FireMarkType type, [
VoidCallback? onTap,
]) {
// Calculate offset based on marker type
// Anchor point for center of marker: (40, calculated_y)
final Offset offset = _getAnchorOffset(type);
return Marker(
point: pos,
width: 80.0,
height: 80.0,
alignment: Alignment.center,
child: GestureDetector(
onTap: onTap,
child: FireMarkerIcon(type),
),
);
}
/// Get the anchor offset based on marker type
Offset _getAnchorOffset(FireMarkType type) {
switch (type) {
case FireMarkType.position:
return const Offset(40.0, 20.0);
case FireMarkType.fire:
return const Offset(40.0, 24.0);
case FireMarkType.pixel:
// Auto-calculate based on marker size
return const Offset(40.0, 40.0);
case FireMarkType.falsePos:
case FireMarkType.industry:
return const Offset(40.0, 35.0);
default:
return const Offset(40.0, 40.0);
}
}