我現在真的絕望了。我一直在編寫和調試7個小時,從搞清楚如何在Google靜態地圖中繪製一個圓,將代碼從PHP和Java轉換爲Swift,以查看解決方案是否可行。無法弄清楚如何將字符串編碼爲Google靜態地圖API的URL iOS
幸運的是,我非常幸運,並且能夠正確地生成一個Google靜態地圖。但是,我現在的問題是如何正確地將它(String URL)編碼到URL中。我嘗試了幾乎所有我發現的東西。
下面是我的日誌在我的瀏覽器工作URL樣本:
WORKING GOOGLE STATIC MAP LINK
https://maps.googleapis.com/maps/api/staticmap?size=640x320&&path=color:0x2EB7FCDD%7Cweight:1%7Cfillcolor:0x2EB7FC80%7Cenc:umdxAip_bVFqARmA^[email protected]@[email protected]`[email protected]@jASlAGlAFjARdA`@`[email protected]@[email protected]@`A^[email protected]@`[email protected]@[email protected]`@[email protected]@[email protected]@[email protected][email protected]&key=AIzaSyDLDkhgnS5gUjlXl5Jqt8fxJq87Figz8co&zoom=15
我都想盡CharacterSet
的編碼字符串轉換成URL。
有些結果是:無論是在我的瀏覽器或我的圖像下載功能,這些工作
GPKit -- JobLocationTableViewCell 2017-08-04 19:55:53 +0000: -- HOST --> https%3A%2F%2Fmaps.googleapis.com%2Fmaps%2Fapi%2Fstaticmap%3Fsize=640x320&&path=color%3A0x2EB7FCDD%257Cweight%3A1%257Cfi ... &zoom=15
GPKit -- JobLocationTableViewCell 2017-08-04 19:55:53 +0000: -- QUERY --> https://maps.googleapis.com/maps/api/staticmap?size=640x320&&path=color:0x2EB7FCDD%257Cweight:1%257Cfillcolor:0x2EB7FC80%257Cenc:umdxAip_bVFqARmA%[email protected]@[email protected]%[email protected]@jASlAGlAFjARdA%[email protected]%[email protected]@[email protected]@%60A%[email protected]@%[email protected]@[email protected]%[email protected]@[email protected]@[email protected]@[email protected]&key=AIzaSyDLDkhgnS5gUjlXl5Jqt8fxJq87Figz8co&zoom=15
GPKit -- JobLocationTableViewCell 2017-08-04 19:55:53 +0000: -- WHITE SPACES --> %68%74%74%70%73%3A%2F%2F%6D%61%70%73%2E%67%6F%6F%67%6C%65%61%70%69%73%2E%63%6F%6D%2F%6D%61%70%73%2F%61%70%69%2F%73%74%61 ... 3D%31%35
GPKit -- JobLocationTableViewCell 2017-08-04 19:55:53 +0000: -- nonBaseCharacters --> %68%74%74%70%73%3A%2F%2F%6D%61%70%73%2E%67%6F%6F%67%6C%65%61%70%69%73%2E%63%6F%6D%2F%6D%61%70%73%2F%61%70%69%2F%73%74%61 ... 3D%31%35
GPKit -- JobLocationTableViewCell 2017-08-04 19:55:53 +0000: -- alphanumerics --> https%3A%2F%2Fmaps%2Egoogleapis%2Ecom%2Fmaps%2Fapi%2Fstaticmap%3Fsize%3D640x320%26%26path%3Dcolor%3A0x2EB7FCDD%257Cweigh ... oom%3D15
GPKit -- JobLocationTableViewCell 2017-08-04 19:55:53 +0000: -- urlFragmentAllowed --> https://maps.googleapis.com/maps/api/staticmap?size=640x320&&path=color:0x2EB7FCDD%257Cweight:1%257Cfillcolor:0x2EB7FC80%257Cenc:umdxAip_bVFqARmA%[email protected]@[email protected]%[email protected]@jASlAGlAFjARdA%[email protected]%[email protected]@[email protected]@%60A%[email protected]@%[email protected]@[email protected]%[email protected]@[email protected]@[email protected]@[email protected]&key=AIzaSyDLDkhgnS5gUjlXl5Jqt8fxJq87Figz8co&zoom=15
GPKit -- JobLocationTableViewCell 2017-08-04 19:55:53 +0000: -- decomposables --> %68%74%74%70%73%3A%2F%2F%6D%61%70%73%2E%67%6F%6F%67%6C%65%61%70%69%73%2E%63%6F%6D%2F%6D%61%70%73%2F%61%70%69%2F%73%74%61 ... 3D%31%35
無。 Swift或Objective-C的答案是受歡迎的。
編輯:當然,我使用的URL用於下載生成的靜態地圖圖像,像這樣(我使用了一個名爲Kingfisher
庫)
let mapURL = URL(string: staticMapUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)
self.imageView_Map.kf.setImage(
with: mapURL,
placeholder: nil,
options: [.transition(.fade(1))],
progressBlock: { (receivedSize, totalSize) in
}, completionHandler: { (_, _, _, _) in })
放入您的代碼以及您想要使用的URL。 –
雖然我覺得沒有必要,但你走了。 – Glenn
這次調用中'mapURL'的值是多少?當你說你嘗試過每一個CharacterSet時,你的意思是什麼? –