1

マップを含む 1 つの iPhone アプリケーションを開発しています。開始画面は、ユーザーが場所を選択できるナビゲーション画面です。フロリダとしましょう。ユーザーがフロリダを選択すると、フロリダのみから少なくとも6つのランダムポイント(注釈を付けることができるようにポイントの緯度と経度)を取得したいと考えています。

私は DB を持っていないので、フロリダの DB から 5 ポイントを取得して配置することができません。

何か案は?

ありがとう、

4

2 に答える 2

2

ランダムなポイントを生成しようとしている領域の形状とサイズを伝えるものがない場合、これは非常に困難になります。Harikrishnan は良いスタートを切りましたが、緯度と経度を毎回 0.0001 ずつ増やすことはほとんどランダムではありません。フロリダの座標 (Google によると、北緯 28.0908 度、西経 81.9604 度) では、両方向に 0.0001 移動すると 14 メートルしか離れていないため、その速度でフロリダを離れることはまずありません。

0.0001 の代わりに乱数を使用して Harikirshnan の方法を調整することもできますが、それでもユーザーが見ている領域の大きさを知る必要があります。州や都市を見ているときに 14 メートルすべてで 5 ポイントを獲得するのは、あまり良いことではありません。

達成しようとしていることをもっと詳しく調べる必要があるかもしれません。ポイントが地理データを表していない場合、なぜそれらをマップに配置するのですか。それらが存在し、単一のポイントではなくエリア全体を表している場合、私が考えることができる最善の方法は、ユーザーが選択した場所に対して Apple が返す maprect に基づいてランダムなポイントを生成することです。(大まかに言えば、それは ですmapX = random*maprect.size.width + maprect.origin.x)。そして、MKMapView のように完全に形作られていないフロリダのようなエリアがある場合は、ジオコードを逆にして、選択したポイントが本当にフロリダ内にあるかどうかを確認する必要があります (つまり、座標を Apple に送信して住所を確認します)。

または、地図上にデータを表示することを検討することもできます

于 2012-12-18T21:23:32.520 に答える
0

これを試して

NSInteger i;
    double offset=0.0001;
    for(i=1;i<=5;i++){
        double newlatitude=location.coordinate.longitude+offset;
        double newlongitude=location.coordinate.longitude+offset;
        NSLog(@"%f ,%f",newlatitude,newlongitude );
        offset+=0.0001;
    }
于 2012-12-18T09:19:10.130 に答える