【问题标题】:Showing multiple annotation with user location at center以用户位置为中心显示多个注释
【发布时间】:2013-01-05 01:41:25
【问题描述】:

全部 我需要在地图视图中显示多个注释并缩放以显示所有这些注释。 我有前面的代码

MKMapRect zoomRect = MKMapRectNull;

int i = 0;
for (Post *post in _allPostsToList) {
    if (((post.location2D.latitude == 0.0f)&&(post.location2D.longitude == 0.0f))||(!CLLocationCoordinate2DIsValid(post.location2D))) {
        i++;
        continue;
    }
    MyAnnotation *annotation = [[MyAnnotation alloc] initWithpost:post];
    annotation.tag = i++;
    [mapView addAnnotation:annotation];

    MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);
    MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0, 0);
    zoomRect = (MKMapRectIsNull(zoomRect))?pointRect:MKMapRectUnion(zoomRect, pointRect);
}
[mapView setVisibleMapRect:zoomRect animated:YES];

它工作正常,但是,我还需要一件事,需要地图中心的用户位置蓝色气泡,并显示所有上述注释。 这个怎么做。 我试过这个

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
        MKMapRect zoomRect = mapView.visibleMapRect;
        MKMapPoint annotationPoint = MKMapPointForCoordinate(newLocation.coordinate);
        MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0, 0);
        zoomRect = (MKMapRectIsNull(zoomRect))?pointRect:MKMapRectUnion(zoomRect, pointRect);
        [mapView setVisibleMapRect:zoomRect animated:YES];
        [manager stopUpdatingLocation];

   }

它的工作 但它没有以用户位置为中心 这个怎么做。谁能解决这个问题

【问题讨论】:

    标签: ios map annotations mkmapview user-location


    【解决方案1】:

    只是一个赌注;如何访问您的 mapView 的区域并尝试设置新中心:

    MKCoordinateRegion region = mapView.region;
    region.center = newLocation.coordinates;
    [mapView setRegion:region animated:YES];
    

    【讨论】:

      【解决方案2】:

      didUpdateToLocation 中,您将获得当前可见的 Rect (zoomRect),然后如果它不为 null,则将其与 pointRect 连接并缩放/平移。这将如何以 pointRect 为中心?只有当他们两个有完全相同的中心时才会发生这种情况。

      如果您想以用户位置为中心但显示所有点,您可以获得点与用户位置的最大距离,并创建一个具有中心和跨度的 maprect 以匹配。但是如果这些点都在一个方向上并且用户位置在屏幕中间,那么屏幕的另一侧就被浪费了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多