私は数百の場所のリストを持っていて、現在画面上のそれらの場所のMKPinAnnotationを表示したいだけです。画面は半径2マイルのユーザーの現在の位置から開始されます。もちろん、ユーザは画面をスクロールしてズームすることができます。今、私は地図更新イベントを待機した後、私の場所のリストをループし、このような座標を確認してください。座標が現在表示されているマップ領域にあるかどうかを確認するにはどうすればよいですか?
-(void)mapViewDidFinishLoadingMap:(MKMapView *)mapView {
CGPoint point;
CLLocationCoordinate2D coordinate;
. . .
/* in location loop */
coordinate.latitude = [nextLocation getLatitude];
coordinate.longitude = [nextLocation getLongitude];
/* Determine if point is in view. Is there a better way then this? */
point = [mapView convertCoordinate:coordinate toPointToView:nil];
if((point.x > 0) && (point.y>0)) {
/* Add coordinate to array that is later added to mapView */
}
ポイントは、画面上になるところ私は誤解しない限り、だから私は(convertCoordinateを求めています非常に可能なこの方法)。座標が画面上にない場合、mapViewに座標を追加することはありません。
だから私の質問は、これは場所の緯度/長いかどうかを判断するための正しい方法では、現在のビューに表示されるとのMapViewに追加する必要がありますか?あるいは私は別のやり方でこれをしなければならないのでしょうか?私は、これは悪い考えであると言う何かを見つけることができません読書の少し後
これは私にとってはうまくいかないようです。何らかの理由で、私のオブジェクトのすべてが一致するようです。ほとんどのxとyの値は非常に高いです。何か案は? –
私は確信していません、私は今旅行中で、Macにアクセスできない。まず、マップ領域を確認することです。しかし、それでもポイントが画面に表示されない場合(少なくとも私のテストでは)、convertCoordinateメソッドは常に0を返します。私がMacの前に戻ったら、それをチェックします。 – ryanday