多くの注釈が付いたマップビューがあります。ユーザーが注釈をクリックすると、そこにあるアートピースに関する情報と「この場所への道順を取得する」ボタンが表示された詳細ページに移動します。これが私が決めようとしていることです。私が今行っていたマップビューには、現在のユーザーの場所が含まれていました。これは、URLの開始点がマップアプリに送信するために必要なものです。最新の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.それが機能すると仮定して、現在の場所を取得するためにそれを行うことをお勧めしますか、それとも以前のマップビューから少し古い(多分)ユーザーロケーションを送信して道順に使用する必要がありますか?道順の座標を取得するためだけにCLLocationManagerを起動するのは、バッテリーと時間の価値がありますか?
フィードバックをありがとう!