我需要在GMSMapView上显示一个圆(与MKCircle一样)。使用MKMapView和MKCircle时这很容易,但是不能将MKCircle与GMSMapView一起使用。
有任何想法吗?

更新:
这是当前(18.03.2013)选项:
1.包含圆形图像的地面标记。
2.一个由多个线段组成的圆(折线)。

编辑:
3. Google添加了GMSCircle(23.04.2013)

 GMSGroundOverlayOptions *overlayOptions = [GMSGroundOverlayOptions options];
    overlayOptions.icon = [UIImage imageNamed:@"circle"];
    overlayOptions.position = touchMapCoordinate;
    overlayOptions.bearing = 0;
    overlayOptions.zoomLevel = 14.3;
 [mapView addGroundOverlayWithOptions:overlayOptions];

对于40x40像素的圆形图像,它看起来还不错。 (半径约100m)

小分段路径解决方案:
    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];

编辑:08.05.2013

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;

最佳答案

目前,SDK不支持圈子,但是有一个功能请求,请在此处添加圈子:

https://code.google.com/p/gmaps-api-issues/issues/detail?id=4971

同时,您可以通过绘制多段短线的折线来伪造一个圆吗?

关于ios - 如何在GMSMapView中显示圆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15380441/

10-10 06:13