1

我正在做一个地图视图应用程序。我有一组带有地址的联系人,我使用它们将其转换为坐标

-(CLLocationCoordinate2D) getLocationFromAddressString:(NSString*) addressStr {

NSString *urlStr = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv",
                    [addressStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSString *locationStr = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlStr] encoding:NSStringEncodingConversionAllowLossy error:nil];
NSArray *items = [locationStr componentsSeparatedByString:@","];
double latitude = 0.0;
double longitude = 0.0;


if([items count] >= 4 && [[items objectAtIndex:0] isEqualToString:@"200"]) {
    latitude = [[items objectAtIndex:2] doubleValue];
    longitude = [[items objectAtIndex:3] doubleValue];
}
CLLocationCoordinate2D location;
location.latitude = latitude;
location.longitude = longitude;

return location;
}

地图视图应以最佳缩放格式加载,其中地图上的所有图钉应立即对用户可见,并且用户应该能够放大和缩小。我在以前的 IOS 版本中找到了解决此问题的方法。我在IOS6中遇到问题。需要帮忙。

编辑:这是我用来缩放的代码

for(MKPointAnnotation* annotation in annotationArray)
{
    topLeftCoord.longitude = fmin(topLeftCoord.longitude, annotation.coordinate.longitude);
    topLeftCoord.latitude = fmax(topLeftCoord.latitude, annotation.coordinate.latitude);

    bottomRightCoord.longitude = fmax(bottomRightCoord.longitude, annotation.coordinate.longitude);
    bottomRightCoord.latitude = fmin(bottomRightCoord.latitude, annotation.coordinate.latitude);
}

MKCoordinateRegion region;
region.center.latitude = topLeftCoord.latitude - (topLeftCoord.latitude - bottomRightCoord.latitude) * 0.5;
region.center.longitude = topLeftCoord.longitude + (bottomRightCoord.longitude - topLeftCoord.longitude) * 0.5;
region.span.latitudeDelta = fabs(topLeftCoord.latitude - bottomRightCoord.latitude) * 1.1;
region.span.longitudeDelta = fabs(bottomRightCoord.longitude - topLeftCoord.longitude) * 1.1;

region = [mapViews regionThatFits:region];
[mapView setRegion:region animated:NO];

我面临的问题是,地图缩放到该区域的方式存在一些不一致,该区域是要缩放的。

编辑:问题是,如果我有一个英国地址的联系人和另一个日本地址的联系人,则地图视图无法同时显示两个图钉。它将放大到一个区域,该区域将是包括英格兰和日本在内的整个区域的确切中心,这意味着地图视图上不会显示任何图钉。我需要滑动到任一侧才能查看 2 个引脚。这与地图视图的最大缩放级别有关。

4

0 回答 0