簡體   English   中英

使用MapKit框架在Google地圖上繪制多邊形

[英]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)。

我使用此人博客文章中的想法來完成此任務。 它基本上涉及在地圖上添加透明視圖。 然后,地圖可讓您將位置轉換為視圖上的點。 讓我知道該網站是否對您沒有幫助,我可以嘗試從我的代碼中提取一個示例。

http://spitzkoff.com/craig/?p=65

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM