使用 MapKit 框架在谷歌地图上绘制多边形
Posted
技术标签:
【中文标题】使用 MapKit 框架在谷歌地图上绘制多边形【英文标题】:To draw polygon on google map with MapKit framework 【发布时间】:2009-08-26 11:42:46 【问题描述】:我想在地图视图中显示 Google 地图,并在其上绘制多边形/圆。
有什么建议吗?
【问题讨论】:
【参考方案1】:我正在阅读您的问题的方式是您想以编程方式在地图上绘制多边形。为此,请咨询Apple docs on MapKit.
您无需在 MapKit 地图上添加透明视图 (MKMapView
)。您创建一个 overlay 对象,在本例中为 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
协议并提供@ 的实现987654329@:
- (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;
当然,请始终记住将地图实例的委托实际分配给您的视图控制器 (MKMapViewDelegate),无论是在界面构建器中,还是在代码中(例如 viewDidLoad
)。
【讨论】:
当然,对于圈子,您可以使用MKCircle
而不是MKPolygon
【参考方案2】:
我使用此人博客文章中的想法来完成此任务。它基本上涉及在地图上添加透明视图。然后,地图允许您将位置转换为视图上的点。如果该网站对您没有帮助,请告诉我,我可以尝试从我的代码中挖掘一个示例。
http://spitzkoff.com/craig/?p=65
【讨论】:
以上是关于使用 MapKit 框架在谷歌地图上绘制多边形的主要内容,如果未能解决你的问题,请参考以下文章