[英]To draw polygon on google map with MapKit framework
我想在要繪制多邊形/圓形的地圖視圖中顯示Google地圖。
有什么建議嗎?
我正在閱讀您的問題的方式是,您想以編程方式在地圖上繪制多邊形。 為此,請查閱MapKit上的Apple文檔。
您無需在MapKit地圖( MKMapView
)上添加透明視圖。 您創建一個疊加層對象,在本例中為MKPolygon
。 (在以下示例中,變量map
將是放置此代碼的視圖控制器所擁有的MKMapView
實例):
CLLocationCoordinate2D points[4];
points[0] = CLLocationCoordinate2DMake(41.000512, -109.050116);
points[1] = CLLocationCoordinate2DMake(41.002371, -102.052066);
points[2] = CLLocationCoordinate2DMake(36.993076, -102.041981);
points[3] = CLLocationCoordinate2DMake(36.99892, -109.045267);
MKPolygon* poly = [MKPolygon polygonWithCoordinates:points count:4];
poly.title = @"Colorado";
[map addOverlay:poly];
然后,如果要自定義疊加層的外觀(顏色,筆觸等),請在擁有MKMapView
對象的視圖控制器中實現MKMapViewDelegate
協議,並提供mapView:viewForOverlay
的實現:
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKPolygon class]])
{
MKPolygonView* aView = [[[MKPolygonView alloc] initWithPolygon:(MKPolygon*)overlay] autorelease];
aView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.2];
aView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7];
aView.lineWidth = 3;
return aView;
}
return nil;
}
當然,請始終記住在界面構建器或代碼(例如viewDidLoad
)中將地圖實例的委托實際分配給視圖控制器(MKMapViewDelegate)。
我使用此人博客文章中的想法來完成此任務。 它基本上涉及在地圖上添加透明視圖。 然后,地圖可讓您將位置轉換為視圖上的點。 讓我知道該網站是否對您沒有幫助,我可以嘗試從我的代碼中提取一個示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.