diff --git a/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift b/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift index 4cfb014..47d6feb 100644 --- a/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift +++ b/MapKitGoogleStyler/Classes/MapKit+GoogleStyle.swift @@ -14,18 +14,21 @@ public enum MapKitGoogleStylerError: Error { } public struct MapKitGoogleStyler { - public static func buildOverlay(with jsonArray: [[String: Any]]) -> MKTileOverlay { - let mapStyle = MapStyle(json: jsonArray) + public static func buildOverlay(with jsonArray: [[String: Any]], langCode: String? = nil) -> MKTileOverlay { + var mapStyle = MapStyle(json: jsonArray) + if let langCodeSet = langCode { + mapStyle.langCode = langCodeSet + } let overlay = MKTileOverlay(urlTemplate: mapStyle.urlString) overlay.canReplaceMapContent = true return overlay } - public static func buildOverlay(with jsonFileURL: URL) 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) + return MapKitGoogleStyler.buildOverlay(with: array, langCode: langCode) } else { throw MapKitGoogleStylerError.invalidJSONFormat } diff --git a/MapKitGoogleStyler/Classes/MapStyle.swift b/MapKitGoogleStyler/Classes/MapStyle.swift index 7d59606..cffaa3f 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]() @@ -30,12 +31,15 @@ internal struct MapStyle { } } } + url = url.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? "" url = url .replacingOccurrences(of: ":", with: "%3A") .replacingOccurrences(of: ",", with: "%2C") - return "\(baseURL)\(url)" + var urlPrefix = baseURL.replacingOccurrences(of: "{lang}", with: langCode) + + return "\(urlPrefix)\(url)" } }