Skip to content

Commit e16cf2c

Browse files
committed
Set initial viewpoint
1 parent e7d13ba commit e16cf2c

File tree

1 file changed

+46
-34
lines changed

1 file changed

+46
-34
lines changed

Shared/Samples/Download preplanned map area/DownloadPreplannedMapAreaView.swift

Lines changed: 46 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -26,43 +26,46 @@ struct DownloadPreplannedMapAreaView: View {
2626
@StateObject private var model = Model()
2727

2828
var body: some View {
29-
MapView(map: model.currentMap)
30-
.overlay(alignment: .top) {
31-
mapNameOverlay
32-
}
33-
.toolbar {
34-
ToolbarItemGroup(placement: .bottomBar) {
35-
Spacer()
36-
37-
Button("Select Map") {
38-
isShowingSelectMapView.toggle()
39-
}
40-
.sheet(isPresented: $isShowingSelectMapView, detents: [.medium]) {
41-
MapPicker()
42-
.environmentObject(model)
43-
}
44-
45-
Spacer()
46-
47-
Button {
48-
isShowingDeleteAlert = true
49-
} label: {
50-
Image(systemName: "trash")
51-
}
52-
.disabled(!model.canRemoveDownloadedMaps)
53-
.alert("Delete All Offline Areas", isPresented: $isShowingDeleteAlert) {
54-
Button("Delete", role: .destructive) {
55-
model.removeDownloadedMaps()
56-
}
57-
} message: {
58-
Text("Are you sure you want to delete all downloaded preplanned map areas?")
29+
MapView(
30+
map: model.currentMap,
31+
viewpoint: model.currentMap.initialViewpoint?.zoomedIn()
32+
)
33+
.overlay(alignment: .top) {
34+
mapNameOverlay
35+
}
36+
.toolbar {
37+
ToolbarItemGroup(placement: .bottomBar) {
38+
Spacer()
39+
40+
Button("Select Map") {
41+
isShowingSelectMapView.toggle()
42+
}
43+
.sheet(isPresented: $isShowingSelectMapView, detents: [.medium]) {
44+
MapPicker()
45+
.environmentObject(model)
46+
}
47+
48+
Spacer()
49+
50+
Button {
51+
isShowingDeleteAlert = true
52+
} label: {
53+
Image(systemName: "trash")
54+
}
55+
.disabled(!model.canRemoveDownloadedMaps)
56+
.alert("Delete All Offline Areas", isPresented: $isShowingDeleteAlert) {
57+
Button("Delete", role: .destructive) {
58+
model.removeDownloadedMaps()
5959
}
60+
} message: {
61+
Text("Are you sure you want to delete all downloaded preplanned map areas?")
6062
}
6163
}
62-
.task {
63-
// Makes the offline map models when the view is first shown.
64-
await model.makeOfflineMapModels()
65-
}
64+
}
65+
.task {
66+
// Makes the offline map models when the view is first shown.
67+
await model.makeOfflineMapModels()
68+
}
6669
}
6770

6871
var mapNameOverlay: some View {
@@ -73,3 +76,12 @@ struct DownloadPreplannedMapAreaView: View {
7376
.background(.thinMaterial, ignoresSafeAreaEdges: .horizontal)
7477
}
7578
}
79+
80+
private extension Viewpoint {
81+
func zoomedIn() -> Viewpoint {
82+
let builder = EnvelopeBuilder(envelope: self.targetGeometry.extent)
83+
builder.expand(by: 0.5)
84+
let zoomEnvelope = builder.toGeometry()
85+
return Viewpoint(boundingGeometry: zoomEnvelope)
86+
}
87+
}

0 commit comments

Comments
 (0)