将MKMapView缩放级别设置为某个位置

时间:2014-11-03 10:27:55

标签: ios mkmapview clgeocoder

我希望设置MKMapView的缩放级别(OR设置区域),以便我可以显示一个位置。用一个例子来阐述我的背景。我有一个位置(CLLocation *),我使用CLGeocoder(反向地理编码)找到了该地点。现在,说地方是'库比蒂诺,加州'地区。如何在MKMapView中找到完全包含Cupertino的区域?

谢谢。

1 个答案:

答案 0 :(得分:6)

创建MKCoordinateRegion对象并为其设置地图视图区域:

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(<LATITUDE>, <LONGITUDE>);
    MKCoordinateRegion region;
    // <LATITUDE> and <LONGITUDE> for Cupertino, CA.

    region = MKCoordinateRegionMake(location, MKCoordinateSpanMake(0.5, 0.5)); 
   // 0.5 is spanning value for region, make change if you feel to adjust bit more

    MKCoordinateRegion adjustedRegion = [self.mapView regionThatFits:region];
    [self.mapView setRegion:adjustedRegion animated:YES];

修改

正如您在评论中提到的那样,您需要动态城市圈地。在这种情况下,我们需要地图缩放级别(整数值 - 默认值为0)。

这意味着返回城市/坐标和缩放级别的API或Web服务。因此,从缩放级别我们可以实现地图跨度/区域计算。

从lat / long获取缩放级别的链接:http://troybrant.net/blog/2010/01/set-the-zoom-level-of-an-mkmapview/