2010-03-20 24 views
0

我試圖圍繞一個mapview上的一個點繪製一個圓,我已經成功地完成了這個繪製,但並不完全符合我的想法。 CG方法總是相對於屏幕大小進行繪製,基本上我想用米來繪製東西,而不是像素。以米爲單位的指定大小的MKMapView上的繪圖元素

任何人都有這樣的經驗嗎?

回答

0

我沒有任何經驗做你上面描述的,但MKMapView類有一套方法來將像素對準座標,反之亦然,你應該可以使用它來將你的圓映射到座標上的座標:

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; 
} 
相關問題