Skip to content

Commit b63c510

Browse files
authored
Merge pull request #248 from merlos/enhancements/add-openseamap
Added OpenSeaMap.org tile server
2 parents ac0f900 + 11cb033 commit b63c510

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

OpenGpxTracker/GPXMapView.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ class GPXMapView: MKMapView {
9191
let cache = MapCache(withConfig: config)
9292
// the overlay returned substitutes Apple Maps tile overlay.
9393
// we need to keep a reference to remove it, in case we return back to Apple Maps.
94-
tileServerOverlay = useCache(cache)
94+
//
95+
tileServerOverlay = useCache(cache, canReplaceMapContent: newValue.canReplaceMapContent)
9596
}
9697
else {
9798
self.mapType = (newValue == .apple) ? .standard : .satellite

OpenGpxTracker/GPXTileServer.swift

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ enum GPXTileServer: Int {
3838
/// OpenTopoMap tile server
3939
case openTopoMap
4040

41+
/// OpenSeaMap tile server
42+
case openSeaMap
43+
4144
///String that describes the selected tile server.
4245
var name: String {
4346
switch self {
@@ -47,6 +50,7 @@ enum GPXTileServer: Int {
4750
case .cartoDB: return "Carto DB"
4851
case .cartoDBRetina: return "Carto DB (Retina resolution)"
4952
case .openTopoMap: return "OpenTopoMap"
53+
case .openSeaMap: return "OpenSeaMap"
5054
}
5155
}
5256

@@ -59,6 +63,7 @@ enum GPXTileServer: Int {
5963
case .cartoDB: return "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png"
6064
case .cartoDBRetina: return "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}@2x.png"
6165
case .openTopoMap: return "https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png"
66+
case .openSeaMap: return "https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png"
6267
}
6368
}
6469

@@ -76,6 +81,7 @@ enum GPXTileServer: Int {
7681
case .openStreetMap: return ["a", "b", "c"]
7782
case .cartoDB, .cartoDBRetina: return ["a", "b", "c"]
7883
case .openTopoMap: return ["a", "b", "c"]
84+
case .openSeaMap: return []
7985
// case .AnotherMap: return ["a","b"]
8086
}
8187
}
@@ -103,6 +109,8 @@ enum GPXTileServer: Int {
103109
case .openTopoMap:
104110
return 17
105111
// case .AnotherMap: return 10
112+
case .openSeaMap:
113+
return 16
106114
}
107115
}
108116
///
@@ -125,7 +133,18 @@ enum GPXTileServer: Int {
125133
return 0
126134
case .openTopoMap:
127135
return 0
128-
// case .AnotherMap: return ["a","b"]
136+
case .openSeaMap:
137+
return 0
138+
// case .AnotherMap: return 0
139+
}
140+
}
141+
142+
/// Does the tile overlay replace the map?
143+
/// Generally all the tiles provided replace the AppleMaps. However there are some
144+
var canReplaceMapContent: Bool {
145+
switch self {
146+
case .openSeaMap: return false
147+
default: return true
129148
}
130149
}
131150

@@ -145,5 +164,5 @@ enum GPXTileServer: Int {
145164
}
146165

147166
/// Returns the number of tile servers currently defined
148-
static var count: Int { return GPXTileServer.openTopoMap.rawValue + 1}
167+
static var count: Int { return GPXTileServer.openSeaMap.rawValue + 1}
149168
}

0 commit comments

Comments
 (0)