- introPage.dart: Convert fireItems to proper static function closure - mainDrawer.dart: Convert unreadCount int to String for Text widget
46 lines
1.2 KiB
Dart
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);
|
|
}
|
|
}
|