2010-03-20 3 views
0

Mapview에서 한 지점을 중심으로 원을 그리려하고 있습니다. 성공적으로 수행했으나 원하는 방식이 아닙니다. CG 방법은 항상 화면 크기에 상대적으로 그림을 그릴 것이고 기본적으로 픽셀이 아닌 미터로 물건을 그립니다.지정된 크기의 MKMapView에 요소를 그리기

누구나이 경험이 있습니까?

답변

0

위에서 설명한 것과 같은 경험이 없지만 MKMapView 클래스에는 Pixels to Coordinates를 조정하는 방법 세트가 있으며 그 반대의 경우도 원을지도의 좌표에 매핑하는 데 사용할 수 있어야합니다. :

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

이 기능은 또한 당신의 중심점을 제공하고, 위의 기능을 사용하기 위해 원의 diamater에 지점을 찾는 데 유용하게 사용할 수 있으며, 원의 미터의 반경, 그리고 베어링은도 단위입니다.

-(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; 
} 
관련 문제