2012-02-16 15 views
1

MKMapViewに表示するMKPolygonを作成します。私の問題は、私がそれをする方法を理解することができないということです。CLLocationオブジェクトをMKMapPoint構造体に変換する

MKPolygonを作成するには、MKMapPoint構造体を1つ作成して配列に入れ、クラスメソッドpolygonWithPointsを呼び出す必要があります。

私の問題は、とcoordinate.longitudeのプロパティを持つCLLocationオブジェクトを含むNSArrayオブジェクトがあるということです。

構造体を1つずつMKMapPoint構造体に変換するにはどうすればよいですか?

答えて

2

座標を含むオブジェクトのNSArrayがある場合、polygonWithPoints:count:の代わりにpolygonWithCoordinates:count:メソッドを使用する方が簡単になります。

polygonWithCoordinates:count:メソッドは、CLLocationCoordinate2D構造体のC配列を受け入れます。 CLLocationオブジェクト内のcoordinateプロパティもCLLocationCoordinate2Dです。

それでもpolygonWithPoints:count:を使用する場合は、MKMapPointCLLocationcoordinateプロパティを変換するMKMapPointForCoordinate機能を使用することができます。

どちらの方法でも、適切な構造体のC配列を作成し、NSArrayをループしてC配列の各項目を設定します。その後、polygonWithCoordinatesまたはpolygonWithPointsと呼んでください。

This answerのコード例はpolygonWithCoordinatesです。 viewForOverlayデリゲートメソッドを実装することを忘れ(およびマップビューのdelegateプロパティが設定されていることを確認してください)しないでください

CLLocation *coordObj = (CLLocation *)[coordinateData objectAtIndex:i]; 
coords[i] = coordObj.coordinate; 

:この例では、あなたがにforループ内の2行を変更します。

関連する問題