0

マップビュー上のポイントの周りに円を描こうとしていますが、これは成功しましたが、望んでいた方法ではありません。CG の方法は常に画面サイズに対して相対的に描画することになり、基本的にはピクセルではなくメートル単位で描画したいと考えています。

誰でもこれを行った経験がありますか?

4

1 に答える 1

0

上記のことを行った経験はありませんが、MKMapView クラスには、ピクセルを座標に、またはその逆に調整するための一連のメソッドがあり、円をマップ上の座標にマッピングするために使用できるはずです。

http://developer.apple.com/iphone/library/documentation/MapKit/Reference/MKMapView_Class/MKMapView/MKMapView.html#//apple_ref/occ/instm/MKMapView/convertCoordinate:toPointToView :

この関数は、中心点、円の半径 (メートル)、方位 (度) があれば、上記の関数で使用する円の直径上の点を見つけるのにも便利です。

-(CLLocation*) offsetLocation:(CLLocation*)startLocation:(double)offsetMeters:(double)bearing
{

        double EARTH_MEAN_RADIUS_METERS = 6372796.99;
        double lat2 = asin( sin(startLocation.coordinate.latitude) * cos(offsetMeters/EARTH_MEAN_RADIUS_METERS) + cos(startLocation.coordinate.latitude) * sin(offsetMeters/EARTH_MEAN_RADIUS_METERS) * cos(bearing) );
        double lon2 = startLocation.coordinate.longitude + atan2( sin(bearing) * sin(offsetMeters/EARTH_MEAN_RADIUS_METERS) * cos(startLocation.coordinate.latitude), cos(offsetMeters/EARTH_MEAN_RADIUS_METERS) - sin(startLocation.coordinate.latitude) * sin(lat2));
        CLLocation *tempLocation = [[CLLocation alloc] initWithLatitude:lat2 longitude:lon2];

        return tempLocation;
}
于 2010-03-20T20:12:33.937 に答える