前言 w偶勒個去csdn既然也有markdown的速寫方式了,我今天知道,安慰一下自己:任何后知后覺,回頭來看,感覺都是也是萌萌噠
有哪些坑
1.下載sdk時間過長 中文官網里說明從github上pod ‘GoogleMaps’一下,就ok了,是就這么簡單,幾百兆的GoogleMaps模塊,此過程在國內需要耗費很長時間,你可以去打個籃球再回來看看有沒有下載好 2.中文網站sdk使用方法更新不及時 擦擦擦,這個地方如果不熟悉的話很耗費時間啊,至少要花費您半天時間來集成。網站里說明從github上pod ‘GoogleMaps’一下,事實上在使用的時候你會發現少了很多類
3.位置偏移 天朝,咱!你還沒習慣嗎,沒習慣不要緊,慢慢就習慣了
解決辦法
1.下載sdk時間過長 哥們我下載好了你可以向我要啊,哈哈哈,我這么樂于助人 2.中文網站sdk使用方法更新不及時 說道這個真相噴google,一想到自己素質這么高,還是忍住了,<-_<-。 事實上Google Map SDK在2.1.1的時候將sdk模塊化了,還需要導入GooglePlaces模塊,在做到地址選擇器的時候發現少了一個placepicker類,找啊找,沒找到任何影子,難道我下載的sdk又問題嗎?NO,不要懷疑自己更不要懷疑人生,但通常時候我們都會情不自禁的懷疑。事實上google map sdk模塊化的很徹底,竟然將placepicker單獨一個模塊。貼上代碼: source ‘https://github.com/CocoaPods/Specs.git’ platform :ios, ‘8.1’ pod ‘GoogleMaps’ pod ‘GooglePlaces’, ‘~> 2.1.1’ pod ‘GooglePlacePicker’, ‘~> 2.1.1’ 3.位置偏移 google map sdk在國內顯示位置有偏差,具體為什么有偏差我就不闡述了,實際上連我也沒搞懂,為什么要設置這道沒有意義坎。千找萬找還是找到了解決辦法。找到了一段java代碼,修改成了我需要的OBJECTIVE-C代碼,從此我大OC界不要再去求人了,經親測,中??!,貼代碼:
@interface CorrentLocationTool : NSObject+ (CLLocationCoordinate2D)correntLocation:(CLLocationCoordinate2D)cor;@end#import "CorrentLocationTool.h"@implementation CorrentLocationToolstatic double pi = 3.14159265358979324;static double a = 6378245.0;static double ee = 0.00669342162296594323;+ (CLLocationCoordinate2D)correntLocation:(CLLocationCoordinate2D)cor{ double wgLat = cor.latitude; double wgLon = cor.longitude; CLLocationCoordinate2D coordinate; if (outOfChina(wgLat, wgLon)) { coordinate.latitude = wgLat; coordinate.longitude = wgLon; return coordinate; } double dLat = transformLat(wgLon - 105.0, wgLat - 35.0); double dLon = transformLon(wgLon - 105.0, wgLat - 35.0); double radLat = wgLat / 180.0 * pi; double magic = sin(radLat); magic = 1 - ee * magic * magic; double sqrtMagic = sqrt(magic); dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); dLon = (dLon * 180.0) / (a / sqrtMagic * cos(radLat) * pi); coordinate.latitude = wgLat + dLat; coordinate.longitude = wgLon + dLon; return coordinate;}static bool outOfChina(double lat, double lon) { if (lon < 72.004 || lon > 137.8347) return true; if (lat < 0.8293 || lat > 55.8271) return true; return false;}static double transformLat(double x, double y) { double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * sqrt(fabs(x)); ret += (20.0 * sin(6.0 * x * pi) + 20.0 * sin(2.0 * x * pi)) * 2.0 / 3.0; ret += (20.0 * sin(y * pi) + 40.0 * sin(y / 3.0 * pi)) * 2.0 / 3.0; ret += (160.0 * sin(y / 12.0 * pi) + 320 * sin(y * pi / 30.0)) * 2.0 / 3.0; return ret;}static double transformLon(double x, double y) { double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * sqrt(fabs(x)); ret += (20.0 * sin(6.0 * x * pi) + 20.0 * sin(2.0 * x * pi)) * 2.0 / 3.0; ret += (20.0 * sin(x * pi) + 40.0 * sin(x / 3.0 * pi)) * 2.0 / 3.0; ret += (150.0 * sin(x / 12.0 * pi) + 300.0 * sin(x / 30.0 * pi)) * 2.0 / 3.0; return ret;}@end注意事項 (1)集成2.1.1版的GoogleMaps SDK 如果您需要地址,需要注冊兩個服務 [GMSServices ps:第一次使用markdown在網絡上寫文章,格式不太好好,湊合著看呀新聞熱點
疑難解答