0

私はこれに長い間苦労してきました。多くのリソースを読みましたが、まだ明確な方法を見つけることができません。

緯度と経度の行を持つ Sqlite テーブルがあります。私の仕事は、それらの緯度と経度を取得して配列に入れ、後ですべてのピンで地図に表示するために使用することです。AppDelegateでこれらの「データベースからの読み取り」を行います(これはお勧めですか、それともマップを持つView Controllerで行う方が良いですか?)

以下に示すように、緯​​度と経度を double の値として取得します

while (sqlite3_step(selectStmt)==SQLITE_ROW){
    double latitude= sqlite3_column_double(selectStmt, 1);
    double longitude= sqlite3_column_double(selectStmt, 2);

    CLLocationCoordinate2D coord=CLLocationCoordinate2DMake(latitude,longitude);
            // I want to add this to an array, so that i can use later for annotations
}

ただし、「addObject の引数 1 に互換性のない型」を追加しようとすると、.

これは、sqlite から複数の座標を取得してマップに表示する正しい方法ですか?

助けていただければ幸いです

4

2 に答える 2

1

位置データを保存するには、CLLocation クラスを使用する必要があります。 http://developer.apple.com/library/ios/#DOCUMENTATION/CoreLocation/Reference/CLLocation_Class/CLLocation/CLLocation.html#//apple_ref/doc/uid/TP40007126

CLLocation *location = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];
[array addObject:location];
[location release];
于 2011-08-06T15:18:09.153 に答える
1

CLLocationCoordinate2D はオブジェクトではなく構造体であり、addObject メソッドにはオブジェクトが必要です。

Evgeniy が提案するように CLLocation を使用するか、独自のオブジェクトを作成して、これらの値を保存/取得できます。

于 2011-08-06T15:28:59.603 に答える