我需要在GMSMapView上显示一个圆圈(与MKCircle一样)。使用MKMapView和MKCircle时很容易,但不能在GMSMapView中使用MKCircle。 任何想法?如何在GMSMapView中显示一个圆圈
更新:
这是当前的(2013年3月18日)的选项:
1.含有圆图像A地面标记。
2.一个由多段(折线)组成的圆。
编辑:
3.谷歌增加了GMSCircle(2013年4月23日)
GMSGroundOverlayOptions *overlayOptions = [GMSGroundOverlayOptions options];
overlayOptions.icon = [UIImage imageNamed:@"circle"];
overlayOptions.position = touchMapCoordinate;
overlayOptions.bearing = 0;
overlayOptions.zoomLevel = 14.3;
[mapView addGroundOverlayWithOptions:overlayOptions];
对于一个圆形图片40×40像素,它看起来OK。 (半径大约100米)
小分段路径的解决方案:
GMSPolylineOptions *circle = [GMSPolylineOptions options];
CGPoint touchPoint = [mapView.projection pointForCoordinate:touchMapCoordinate];
GMSMutablePath *path = [GMSMutablePath path];
CGPoint circlePoint;
for (int i = 0; i < 360; i++)
{
circlePoint.x = touchPoint.x + radius * cos(i*M_PI/180);
circlePoint.y = touchPoint.y + radius * sin(i*M_PI/180);
CLLocationCoordinate2D aux = [mapView.projection coordinateForPoint:circlePoint];
[path addCoordinate:aux];
}
circle.path = path;
circle.width = 1;
[mapView addPolylineWithOptions:circle];
编辑:2013年5月8日
GMSCircle溶液:
CLLocationCoordinate2D circleCenter = CLLocationCoordinate2DMake(latitude, longitude);
GMSCircle *circ = [GMSCircle circleWithPosition:circleCenter
radius:1000];
circ.fillColor = [UIColor blueColor];
circ.strokeColor = [UIColor redColor];
circ.strokeWidth = 5;
circ.map = mapView;
你可以发布你尝试过这么远吗? – Noich 2013-03-13 08:59:45
我不知道如何开始。我想过使用GMSGroundOverlay和GMSGroundOverlayOptions添加一个圆形图标,但这意味着该圆形始终具有特定的半径。 – Bogus 2013-03-13 09:39:24
感谢您的想法,它不能为iOS 8 – 2015-06-18 09:41:41