0

私は 3.1.3 SDK を使用して iPhone アプリに取り組んでいます。私のアプリはユーザーの現在の場所を見つけて MKMapView に表示し、近くの場所を見つけて MKAnnotations としてレンダリングします。私のコードは機能していますが、近くの注釈がマップに表示されないことがあります。コンソールに正しいデータが表示されるため、それらはまだ作成されています(注釈が作成された直後に実行される NSLog から)。

失敗したときは完全にランダムです。その日のうちに「ビルドして実行」を押したのは 5 回目か、500 回目で、パターンがないように見え、エラーをスローしていません。 MapView に注釈を追加しません。

これは、MKAnnotation を追加するために近くの場所ごとに呼び出されるメソッドです。

- (void)addPinsWithLocation:(NSDictionary *)spot
{
    CLLocationCoordinate2D location;
    location.longitude = [[spot objectForKey:@"spot_longitude"] doubleValue];
    location.latitude = [[spot objectForKey:@"spot_latitude"] doubleValue];

    PlaceMarks *placemark = [[PlaceMarks alloc] initWithCoordinate:location title:[spot objectForKey:@"spot_name"] subtitle:@""];
    NSLog(@"Adding Pin for Location: '%@' at %f, %f", [spot objectForKey:@"spot_name"], location.latitude, location.longitude);
    [mapView addAnnotation:placemark];
}

MKAnnotations を常に表示する方法についてのアイデアはありますか?

4

1 に答える 1

0

私は現在、目に見えるすべての注釈を表示したいアプリを作成しています - マップビューデリゲートを設定してから、次のメソッドを実装してみます:

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views

ここでは、どの注釈が追加されたかを把握し、たとえばマップをズームしてそれらを表示できます。このブログでは、このズーム トゥ フィットを行うためのソース コードをいくつか提供しています。

http://codisllc.com/blog/zoom-mkmapview-to-fit-annotations/

位置情報を改善するためのヒントをいくつか紹介します。

CLLocationManager/CoreLocation を最適化して、iPhone でデータ ポイントをより高速に取得する

于 2010-05-14T11:28:30.947 に答える