More map cleanup

This commit is contained in:
Garth Vander Houwen 2024-03-25 19:20:36 -07:00
parent 80103ebda2
commit 525b1b2509
5 changed files with 18 additions and 24 deletions

View file

@ -8,14 +8,9 @@
import SwiftUI
import MapKit
import SwiftUI
import MapKit
@available(iOS 17.0, macOS 14.0, *)
struct MeshMapContent: MapContent {
//@State var waypoints: [WaypointEntity] = []
@State var routes: [RouteEntity] = []
/// Parameters
@Binding var showUserLocation: Bool
@AppStorage("meshMapShowNodeHistory") private var showNodeHistory = false
@ -34,6 +29,10 @@ struct MeshMapContent: MapContent {
@FetchRequest(fetchRequest: WaypointEntity.allWaypointssFetchRequest(), animation: .none)
var waypoints: FetchedResults<WaypointEntity>
@FetchRequest(sortDescriptors: [NSSortDescriptor(key: "name", ascending: true)],
predicate: NSPredicate(format: "enabled == true", ""), animation: .none)
private var routes: FetchedResults<RouteEntity>
var delay: Double = 0
@State private var scale: CGFloat = 0.5

View file

@ -6,6 +6,7 @@
//
import SwiftUI
import MapKit
import CoreData
@available(iOS 17.0, macOS 14.0, *)
struct NodeMapContent: MapContent {
@ -16,10 +17,12 @@ struct NodeMapContent: MapContent {
/// Map State User Defaults
@AppStorage("meshMapShowNodeHistory") private var showNodeHistory = false
@AppStorage("meshMapShowRouteLines") private var showRouteLines = false
@AppStorage("enableMapWaypoints") private var showWaypoints = false
@AppStorage("enableMapConvexHull") private var showConvexHull = false
@AppStorage("enableMapTraffic") private var showTraffic: Bool = false
@AppStorage("enableMapPointsOfInterest") private var showPointsOfInterest: Bool = false
@AppStorage("mapLayer") private var selectedMapLayer: MapLayer = .hybrid
// Map Configuration
@Namespace var mapScope
@State var mapStyle: MapStyle = MapStyle.hybrid(elevation: .realistic, pointsOfInterest: .all, showsTraffic: true)
@ -31,9 +34,6 @@ struct NodeMapContent: MapContent {
@State var selectedPosition: PositionEntity?
@State var isMeshMap = false
//let region: MKCoordinateRegion
@MapContentBuilder
var nodeMap: some MapContent {
let positionArray = node.positions?.array as? [PositionEntity] ?? []
@ -43,7 +43,6 @@ struct NodeMapContent: MapContent {
/// Node Color from node.num
let nodeColor = UIColor(hex: UInt32(node.num))
/// Node Annotations
ForEach(positionArray, id: \.id) { position in
let pf = PositionFlags(rawValue: Int(position.nodePosition?.metadata?.positionFlags ?? 771))
@ -79,7 +78,6 @@ struct NodeMapContent: MapContent {
MapPolyline(coordinates: lineCoords)
.stroke(gradient, style: dashed)
}
/// Node Annotations
ForEach(positionArray, id: \.id) { position in
Annotation(position.latest ? node.user?.shortName ?? "?": "", coordinate: position.coordinate) {

View file

@ -55,14 +55,15 @@ struct MapSettingsForm: View {
.onChange(of: meshMapDistance) { newMeshMapDistance in
UserDefaults.meshMapDistance = newMeshMapDistance
}
Toggle(isOn: $waypoints) {
Label("Show Waypoints ", systemImage: "signpost.right.and.left")
}
.toggleStyle(SwitchToggleStyle(tint: .accentColor))
.onTapGesture {
UserDefaults.enableMapWaypoints = !waypoints
}
}
Toggle(isOn: $waypoints) {
Label("Show Waypoints ", systemImage: "signpost.right.and.left")
}
.toggleStyle(SwitchToggleStyle(tint: .accentColor))
.onTapGesture {
UserDefaults.enableMapWaypoints = !waypoints
}
Toggle(isOn: $nodeHistory) {
Label("Node History", systemImage: "building.columns.fill")
}

View file

@ -31,7 +31,6 @@ struct NodeMapSwiftUI: View {
@State var isLookingAround = false
@State var isShowingAltitude = false
@State var isEditingSettings = false
@State var selectedPosition: PositionEntity?
@State var isMeshMap = false
@State private var mapRegion = MKCoordinateRegion.init()
@ -42,6 +41,8 @@ struct NodeMapSwiftUI: View {
), animation: .none)
private var waypoints: FetchedResults<WaypointEntity>
var body: some View {
var mostRecent = node.positions?.lastObject as? PositionEntity

View file

@ -38,18 +38,13 @@ struct MeshMap: View {
@State var newWaypointCoord: CLLocationCoordinate2D?
@State var isMeshMap = true
@FetchRequest(sortDescriptors: [NSSortDescriptor(key: "name", ascending: true)],
predicate: NSPredicate(format: "enabled == true", ""), animation: .none)
private var routes: FetchedResults<RouteEntity>
var body: some View {
NavigationStack {
ZStack {
MapReader { reader in
Map(position: $position, bounds: MapCameraBounds(minimumDistance: 1, maximumDistance: .infinity), scope: mapScope) {
MeshMapContent(routes: Array(routes), showUserLocation: $showUserLocation, showTraffic: $showTraffic, showPointsOfInterest: $showPointsOfInterest, selectedMapLayer: $selectedMapLayer, selectedPosition: $selectedPosition, selectedWaypoint: $selectedWaypoint)
MeshMapContent(showUserLocation: $showUserLocation, showTraffic: $showTraffic, showPointsOfInterest: $showPointsOfInterest, selectedMapLayer: $selectedMapLayer, selectedPosition: $selectedPosition, selectedWaypoint: $selectedWaypoint)
}
.mapScope(mapScope)