0

iPhone用のMAPを学ぼうとしています。

私が今持っているものは以下の通りです。

  1. 新しいプロジェクトを作成しました
  2. MAPのフレームワークを追加
  3. ストーリーボードにマップオブジェクトを持ってきました(UIViewController)
  4. プロジェクトを実行します。

私が見ているのは、場所が表示されていないことです。xcodeで場所を変更すると、場所のドットが表示されます。

私が欲しかったのは、デフォルトで、緯度と経度を使用して設定する場所へのPINを表示する必要があることです。また、地図をズームする必要があります。ズームとは、13倍のズーム効果で場所を確認する必要があるということです。現在、画面に世界地図が表示されています。

これを行う方法はありますか?

4

3 に答える 3

1

次のようにすると、地図を特定の場所の中心に置くことができます。

    MKCoordinateRegion mapRegion;
    mapRegion.center.latitude = aLatitude;
    mapRegion.center.longitude = aLongitude;
    mapRegion.span.latitudeDelta = 0.005;
    mapRegion.span.longitudeDelta = 0.005;
    self.mapView.region = mapRegion;

スパン値を使用して、必要なズームレベルを決定します。

ピンを表示するには、現在地の座標を使用して注釈を作成し、それを地図に追加する必要があります。

また、このチュートリアルをチェックしてください。http://www.raywenderlich.com/2847/introduction-to-mapkit-on-ios-tutorial

于 2012-11-14T12:51:07.987 に答える
1

ドットはあなたの現在地を示しています。

座標を使用してピンを追加する場合は、プロトコルaddAnnotationに準拠するオブジェクトを使用してメソッドを呼び出す必要があります。MKAnnotationこのようなオブジェクトにはプロパティがありますcoordinate(クラスに追加する必要があります)。

@property (nonatomic, assign) CLLocationCoordinate2D coordinate;

MKMapViewDelegateまた、コントローラーにプロトコルを追加し、-mapView:viewForAnnotation:メソッドを実装する必要があります。として機能し-tableView:viewForRowAtIndexPath:ます。

- (MKAnnotationView *)mapView:(MKMapView *)_mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
    if ([annotation isKindOfClass:[MKUserLocation class]]) {
        return nil;
    }

    static NSString *annotationIdentifier = @"annotation";
    MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[_mapView dequeueReusableAnnotationViewWithIdentifier:annotationIdentifier];   // Reusing

    if (!annotationView) {
        MKPinAnnotationView *pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationIdentifier];
        pinView.animatesDrop = YES;

        annotationView = pinView;
    }
    else {
        annotationView.annotation = annotation; // Reusing already created pin as UITableViewCell does
    }

    return annotationView;
}

それからあなたが電話するとき

MKMapView *mapView = ...;
id<MKAnnotation> obj = ...;
[mapView addAnnotation:obj];

ピンは地図上に配置されます。

ズームについては、そこを見ください。これらの目的に便利なカテゴリがあります。

現在の場所のドットを削除する場合は、クラスMKUserLocationが含まれているオブジェクトを見つけてmapView.annotationsから、を呼び出す必要があります[mapView removeAnnotation:userLocationDot]

于 2012-11-14T12:54:54.840 に答える
0

MKAnnotationMapを使用してアプリケーションを作成するには、MKMapViewDelegatedelgateを実装する必要があります。

これはあなたにとって良いチュートリアルです。

于 2012-11-14T12:52:13.760 に答える