我有一個包含許多註釋的地圖視圖。當用戶點擊一個註釋時,它會將其帶到一個詳細信息頁面,其中包含有關藝術品的信息以及一個「獲取指向該位置的路線」的按鈕。所以這就是我想要決定的。我剛剛訪問的mapview具有當前的用戶位置,這是我需要將URL發送到地圖應用程序的起點。最好是將最近的userLocation座標從mapview傳遞到下一頁,以便我可以在用戶想要路線時使用它,或者我應該在下一頁啓動一個新的CLLocationManager以獲取用戶位置。另外,我嘗試了後者,無法從經理那裏獲取用戶的位置。我所做的只是申報管理的界面:使用地圖導航用戶到位置應用程序
CLLocationManager *manager;
「屬性」 吧:
@property (nonatomic, retain) CLLocationManager *manager;
「合成」 吧:
@synthesize manager;
做到這一點在viewDidLoad中:
[manager startUpdatingLocation];
然後在一個「導航」IBAction的方法:
-(IBAction)navigate; {
CLLocationCoordinate2D start = manager.location.coordinate;
CLLocationCoordinate2D end = {[selectedArtPiece.latitude doubleValue], [selectedArtPiece.longitude doubleValue]};
[[UIApplication sharedApplication] openURL:[[NSURL alloc] initWithString: [NSString stringWithFormat:@"http://maps.google.com/?saddr=%1.6f,%1.6f&daddr=%1.6f,%1.6f", start.latitude, start.longitude, end.latitude, end.longitude ]]];
}
「結束」最終是0,0,所以我必須缺少的東西。
所以我的問題是:
1.我在做什麼毛病CLLocationManager。
2.假設我甚至得到那個工作,你會建議這樣做,以獲得當前位置,或者我應該從以前的MapView發送一個稍微過時的(也許)用戶位置使用的方向?僅僅爲了獲得方向的座標而啓動CLLocationManager是否值得耗費電池和時間?
感謝您的任何反饋!
感謝您的反饋意見,我認爲這可能是一種更好的方式,特別是因爲用戶可以在新管理員有足夠的時間閱讀好之前點擊導航按鈕。還有一個菜鳥問題:我如何去設定一個類別中的一個屬性的價值?我是否需要將它作爲參數發送給方法? – Ryan
根據您如何呈現詳細信息頁面,您可以將其作爲參數添加到詳細信息頁面視圖控制器的自定義init方法中,或者只需添加屬性並在呈現前設置它即可。就像:在詳細頁面界面中放置@ @屬性(分配)CLLocationCoordinate2D startsLocation;'然後在呈現詳細信息頁面之前放'detailPageVC.startingLocation = mapView.userLocation.location.coordinate;' – Anna
正是我需要的,謝謝! – Ryan