用MapKit框架在Google地图上绘制多边形

我想在地图视图中显示Google地图,在该地图视图上要绘制多边形/圆形。

有什么build议?

我正在阅读你的问题的方式是,你想以编程方式在地图上绘制多边形。 为此,请参阅MapKit上的Apple文档。

您不需要在MapKit映射( MKMapView )上添加透明视图。 你创build一个覆盖物体,在这个例子中是一个MKPolygon 。 (在以下示例中,variablesmap将是您将该代码放置在视图控制器中的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; } 

当然,一定要记住在界面构build器或代码中(如viewDidLoad )将地图实例的委托实际分配给视图控制器(MKMapViewDelegate)。

我使用这个人的博客文章的想法来实现这一点。 它基本上涉及在地图上添加一个透明的视图。 然后,地图允许您将位置转换为视图上的点。 让我知道,如果该网站不帮你,我可以尝试从我的代码中挖出一个例子。

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