1

UITextFields でユーザーから座標を取得しています。彼はそれらを度、分、秒で入力します。変換後、緯度と経度を取得します。座標を設定し、マップを「作成」します。このビルドされたマップ ビューをサブビューとして UIViewController に追加します。

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(finalLatValue,finalLongValue);
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(location, LOCATION_DISTANCE, LOCATION_DISTANCE);
MKMapView *mvMap = [[MKMapView alloc] initWithFrame:CGRectMake(20,594,360,347)];

mvMap.mapType = MKMapTypeSatellite;
mvMap.autoresizingMask = UIViewAutoresizingNone;
mvMap.region = region;
[mvMap setRegion:region animated:YES];
//mvMap.showsUserLocation = YES;
[self.view addSubview:mvMap];

ご覧のとおり、finalLatValue と finalLongValue を使用して場所を作成します。次に、マップを作成し、それをサブビューとして self.view に追加します。それは完全に機能します。今必要なのは、その場所にある青い点だけです。setRegion:animated と showUserLocation を実行しました。どちらも機能しませんでした。何が欠けていますか? アイデアは、ユーザーが度、分、秒で座標を入力し、地図上の場所を青い点で表示することです.CGRectMake(20,594,360,347)は、ビューの左下にマップビューを作成するだけです.ボタンとラベルがビュー全体に表示されます。さらに情報が必要な場合は、お問い合わせください.Thanks..

MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc]init];
annotationPoint.coordinate = location;
annotationPoint.title=@"Company";
annotationPoint.subtitle = @"Company HQ";
[mvMap addAnnotation:annotationPoint];

これらの行を追加したところ、現在の場所に赤いピンが表示されます。今のところはそれで十分です。今、ピンチでマップビューをズームインおよびズームアウトすることについて質問があります。どうすればできますか?どんな助けでも大歓迎です。さらに質問があります。

4

2 に答える 2

1

Apple からの優れたドキュメントがあります

LocationAwareness プログラミング ガイド

http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/LocationAwarenessPG/MapKit/MapKit.html

注釈の章の下にあります。

青い点は 'UserLocAnnotation`` (または類似のもの) と呼ばれます

于 2012-11-26T22:22:36.423 に答える
0

showsUserLocation を呼び出すとユーザーの場所が表示されますが、ユーザーが入力した座標に青い点を表示するためのヘルプが必要です。これは現在の場所ではない可能性があります。

あなたがしたいことは、マップに MKAnnotation を追加することです。AlexWien が言ったように、Apple はこの件に関する非常に完全なドキュメントを用意しています。このリンクでは、MKAnnotation を作成してその場所を設定し、マップがその場所に描画する画像を定義するプロセスを順を追って説明します。

http://developer.apple.com/library/ios/documentation/userexperience/conceptual/LocationAwarenessPG/AnnotatingMaps/AnnotatingMaps.html#//apple_ref/doc/uid/TP40009497-CH6-SW1

于 2012-11-27T00:00:49.653 に答える