/** * TrackerMap * Copyright (C) 2021-2022 Iván Ávalos , Henoch Ojeda * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ import Foundation import CryptoKit import WhirlyGlobe import shared class Utils { static func MD5(string: String) -> String { let digest = Insecure.MD5.hash(data: string.data(using: .utf8) ?? Data()) return digest.map { String(format: "%02hhx", $0) }.joined() } static func tileInfoFrom(layer: MapLayer) -> MaplyRemoteTileInfoNew { let cacheDir = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)[0] let thisCacheDir = "\(cacheDir)/\(Utils.MD5(string: layer.url))" let tileInfo = MaplyRemoteTileInfoNew(baseURL: layer.url, minZoom: layer.minZoom, maxZoom: layer.maxZoom) tileInfo.cacheDir = thisCacheDir return tileInfo } }