0
我試圖圍繞一個mapview上的一個點繪製一個圓,我已經成功地完成了這個繪製,但並不完全符合我的想法。 CG方法總是相對於屏幕大小進行繪製,基本上我想用米來繪製東西,而不是像素。以米爲單位的指定大小的MKMapView上的繪圖元素
任何人都有這樣的經驗嗎?
我試圖圍繞一個mapview上的一個點繪製一個圓,我已經成功地完成了這個繪製,但並不完全符合我的想法。 CG方法總是相對於屏幕大小進行繪製,基本上我想用米來繪製東西,而不是像素。以米爲單位的指定大小的MKMapView上的繪圖元素
任何人都有這樣的經驗嗎?
我沒有任何經驗做你上面描述的,但MKMapView類有一套方法來將像素對準座標,反之亦然,你應該可以使用它來將你的圓映射到座標上的座標:
此功能也可以派上用場尋找你的圈子的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;
}