如何将宽半径注释添加到MKMapView?

时间:2014-06-14 20:36:29

标签: ios objective-c cocoa-touch mkmapview mapkit

我成功显示了给定位置的地图。我想在地图中添加注释,而不会显示确切的地址(如经典" pin"注释指向)。

我想复制AirBnb的地图效果,但是要复制到iPhone上。如果您查看任何商家信息(https://www.airbnb.com/rooms/2289772)并查看地图视图,为了保护租房者的隐私或出于其他原因,它不会显示确切的地址,而是附近的地址 - 位置的近似近似。

- (void)viewDidLoad
{   self.itemDisplayMap.delegate = self;
    CLLocationCoordinate2D cord = CLLocationCoordinate2DMake(lat, lng);

   // I have a placemark and mapItem, but I'm not sure what to do with them
    MKPlacemark *placemark = [[MKPlacemark alloc]initWithCoordinate:cord addressDictionary:nil];
    MKMapItem *mapItem = [[MKMapItem alloc]initWithPlacemark:placemark];

    MKCoordinateRegion startRegion = MKCoordinateRegionMakeWithDistance(cord, 1500, 1500);
    [self.itemDisplayMap setRegion:startRegion animated:YES];        
}

1 个答案:

答案 0 :(得分:1)

听起来你想要一个MKOverlay,它可以让你画出与地图一起缩放的东西。 Apple有一些有用的MKOverlay实现,应该是一个很好的起点。

我从MKCircle开始,你给出一个中心坐标和半径。我还建议在(lat,long)对中添加一些随机抖动,这样确切的地址不在圆的中心,而是包含在其中。

然后要实际绘制圆圈,您需要使用该MKCircle初始化MKCircleRenderer

最后,在您的MKMapViewDelegate中,使用MKCircleRenderer回复-mapView:rendererForOverlay: