私は、多くの注釈を持つ地図ビューを持っています。ユーザーが注釈をクリックすると、そこにアーチストに関する情報と「この場所への道順を取得する」ボタンが表示され、詳細ページに移動します。だからここに私が決定しようとしているものがあります。私の地図ビューには現在のユーザーの場所がありました。これは、地図アプリケーションに送信するURLの開始点に必要なものです。ユーザーが道案内を望むときに使用できるように、mapviewから最新のuserLocation座標を次のページに渡すのが最善でしょうか、次のページで新しい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 ]]];
}
"end"は0,0になるので、私は何かが欠けているはずです。
だから私の質問は以下のとおりです。
1.私はCLLocationManagerと間違って何をしています。
2.私はそれを動作させると仮定しても、現在の場所を取得することをお勧めしますか、または道順に使用するために、以前のマップビューから少し古い(多分)ユーザー位置を送信する必要がありますか? CALLocationManagerを起動するだけでバッテリーの価値があるのか、道順の座標を取得するのに時間がかかるのでしょうか?
フィードバックありがとうございました!
フィードバックをいただきありがとうございます。新しいマネージャーが十分な時間を取る前にユーザーがナビゲートボタンをクリックする可能性があるため、フィードバックをお寄せいただきありがとうございます。もう1つの新人質問:あるクラスのプロパティの値を別のクラスの値に設定するにはどうすればいいですか?それをメソッドのパラメータとして送信する必要がありますか? – Ryan
詳細ページをどのように表示しているかに応じて、詳細ページビューコントローラのカスタムinitメソッドにパラメータとして追加するか、プロパティを追加してプレゼンテーションする前に設定することができます。何かが好きです:詳細ページのインターフェイスで '@property(assign)CLLocationCoordinate2D startingLocation;を入れてから詳細ページを表示する前に' detailPageVC.startingLocation = mapView.userLocation.location.coordinate; ' – Anna
まさに私が必要としていたもの、感謝! – Ryan