From 9a500e39b6a109e4fda47da6f6c03a7ba58f0845 Mon Sep 17 00:00:00 2001 From: PatrykSredzinski Date: Mon, 30 Jul 2018 13:20:06 +0200 Subject: [PATCH 1/6] Adding Language Support --- MapKitGoogleStyler/Classes/MapStyle.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/MapKitGoogleStyler/Classes/MapStyle.swift b/MapKitGoogleStyler/Classes/MapStyle.swift index 7d59606..b828ee0 100644 --- a/MapKitGoogleStyler/Classes/MapStyle.swift +++ b/MapKitGoogleStyler/Classes/MapStyle.swift @@ -10,7 +10,8 @@ import Foundation internal struct MapStyle { - private let baseURL = "https://mts0.google.com/vt/lyrs=m@289000001&hl=en&src=app&x={x}&y={y}&z={z}&s=DGal" + var langCode = "en" + private let baseURL = "https://mts0.google.com/vt/lyrs=m@289000001&hl={lang}&src=app&x={x}&y={y}&z={z}&s=DGal" private let prefix = "&apistyle=" internal var googleStyles = [GoogleStyle]() @@ -35,6 +36,7 @@ internal struct MapStyle { url = url .replacingOccurrences(of: ":", with: "%3A") .replacingOccurrences(of: ",", with: "%2C") + .replacingOccurrences(of: "{lang}", with: langCode) return "\(baseURL)\(url)" } From 4804a9333c9f63ac711da9c74fdd61c541316e85 Mon Sep 17 00:00:00 2001 From: PatrykSredzinski Date: Mon, 30 Jul 2018 13:21:20 +0200 Subject: [PATCH 2/6] Added LanguageSupport --- MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift b/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift index 4cfb014..48e62ff 100644 --- a/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift +++ b/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift @@ -14,8 +14,11 @@ public enum MapKitGoogleStylerError: Error { } public struct MapKitGoogleStyler { - public static func buildOverlay(with jsonArray: [[String: Any]]) -> MKTileOverlay { + public static func buildOverlay(with jsonArray: [[String: Any]], and langCode: String? = nil) -> MKTileOverlay { let mapStyle = MapStyle(json: jsonArray) + if let langCodeSet = langCode { + mapStyle.langCode = langCodeSet + } let overlay = MKTileOverlay(urlTemplate: mapStyle.urlString) overlay.canReplaceMapContent = true return overlay From b15a0c73c92aea5a936f8acd996e47637e764f6c Mon Sep 17 00:00:00 2001 From: PatrykSredzinski Date: Mon, 30 Jul 2018 13:25:05 +0200 Subject: [PATCH 3/6] Let -> Var fix --- MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift b/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift index 48e62ff..46df8fa 100644 --- a/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift +++ b/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift @@ -15,7 +15,7 @@ public enum MapKitGoogleStylerError: Error { public struct MapKitGoogleStyler { public static func buildOverlay(with jsonArray: [[String: Any]], and langCode: String? = nil) -> MKTileOverlay { - let mapStyle = MapStyle(json: jsonArray) + var mapStyle = MapStyle(json: jsonArray) if let langCodeSet = langCode { mapStyle.langCode = langCodeSet } From 07dfaaf2d02825230afe68b0c721029067566f1b Mon Sep 17 00:00:00 2001 From: PatrykSredzinski Date: Mon, 30 Jul 2018 13:32:00 +0200 Subject: [PATCH 4/6] Modified URL method --- MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift b/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift index 46df8fa..ce4a86e 100644 --- a/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift +++ b/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift @@ -24,11 +24,11 @@ public struct MapKitGoogleStyler { return overlay } - public static func buildOverlay(with jsonFileURL: URL) throws -> MKTileOverlay { + public static func buildOverlay(with jsonFileURL: URL, and langCode: String? = nil) throws -> MKTileOverlay { let data = try Data(contentsOf: jsonFileURL) let object = try JSONSerialization.jsonObject(with: data, options: .allowFragments) if let array = object as? [[String: Any]] { - return MapKitGoogleStyler.buildOverlay(with: array) + return MapKitGoogleStyler.buildOverlay(with: array, and: langCode) } else { throw MapKitGoogleStylerError.invalidJSONFormat } From 83675a2bf11dac2ab9e423cc6a025afc9d94a0cb Mon Sep 17 00:00:00 2001 From: PatrykSredzinski Date: Mon, 30 Jul 2018 13:40:47 +0200 Subject: [PATCH 5/6] Added Language Support - MapStyle.swift --- MapKitGoogleStyler/Classes/MapStyle.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/MapKitGoogleStyler/Classes/MapStyle.swift b/MapKitGoogleStyler/Classes/MapStyle.swift index b828ee0..cffaa3f 100644 --- a/MapKitGoogleStyler/Classes/MapStyle.swift +++ b/MapKitGoogleStyler/Classes/MapStyle.swift @@ -31,13 +31,15 @@ internal struct MapStyle { } } } + url = url.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" url = url .replacingOccurrences(of: ":", with: "%3A") .replacingOccurrences(of: ",", with: "%2C") - .replacingOccurrences(of: "{lang}", with: langCode) - return "\(baseURL)\(url)" + var urlPrefix = baseURL.replacingOccurrences(of: "{lang}", with: langCode) + + return "\(urlPrefix)\(url)" } } From 2757fd07cd495375253c3ea9719e82526f89dc4d Mon Sep 17 00:00:00 2001 From: PatrykSredzinski Date: Mon, 30 Jul 2018 13:41:51 +0200 Subject: [PATCH 6/6] Added Language Support - MapKit+GoogleStyle.swift --- MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift b/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift index ce4a86e..47d6feb 100644 --- a/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift +++ b/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift @@ -14,7 +14,7 @@ public enum MapKitGoogleStylerError: Error { } public struct MapKitGoogleStyler { - public static func buildOverlay(with jsonArray: [[String: Any]], and langCode: String? = nil) -> MKTileOverlay { + public static func buildOverlay(with jsonArray: [[String: Any]], langCode: String? = nil) -> MKTileOverlay { var mapStyle = MapStyle(json: jsonArray) if let langCodeSet = langCode { mapStyle.langCode = langCodeSet @@ -24,11 +24,11 @@ public struct MapKitGoogleStyler { return overlay } - public static func buildOverlay(with jsonFileURL: URL, and langCode: String? = nil) throws -> MKTileOverlay { + public static func buildOverlay(with jsonFileURL: URL, langCode: String? = nil) throws -> MKTileOverlay { let data = try Data(contentsOf: jsonFileURL) let object = try JSONSerialization.jsonObject(with: data, options: .allowFragments) if let array = object as? [[String: Any]] { - return MapKitGoogleStyler.buildOverlay(with: array, and: langCode) + return MapKitGoogleStyler.buildOverlay(with: array, langCode: langCode) } else { throw MapKitGoogleStylerError.invalidJSONFormat }