gpt4 book ai didi

iphone - 在 MapKit Xcode 中设置缩放级别

转载 作者:搜寻专家 更新时间:2023-10-30 20:12:19 26 4
gpt4 key购买 nike

如何在 SDK 中设置我的 Google MapKit 的缩放级别?例如,我住在纽约,我在我的 ProjectName-info.plist 中设置了 4 个坐标位置(URL 类型 > 项目 0 > URL 方案 > 项目 0),然后我在我的代码中设置了我的代码UIViewController 子类文件:

#import "GoogleMap.h"
#import "MyAnnotation.h"

@implementation GoogleMap

- (void)viewDidLoad {
[super viewDidLoad];

variable1 = [[NSArray alloc] initWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"NewYorkAreas"
ofType:@"plist"]];

double minLat = [[variable1 valueForKeyPath:@"@min.latitude"] doubleValue];
double maxLat = [[variable1 valueForKeyPath:@"@max.latitude"] doubleValue];
double minLon = [[variable1 valueForKeyPath:@"@min.longitude"] doubleValue];
double maxLon = [[variable1 valueForKeyPath:@"@max.longitude"] doubleValue];

MKCoordinateRegion region;
region.center.latitude = (maxLat + minLat) / 2.0;
region.center.longitude = (maxLon + minLon) / 2.0;
region.span.latitudeDelta = (maxLat - minLat) * 1.05;
region.span.longitudeDelta = (maxLon - minLon) * 1.05;
map.region = region;

for (NSDictionary *newYorkAreasDict in variable1){
MyAnnotation *annotation = [[MyAnnotation alloc] initWithDictionary:newYorkAreasDict];
[map addAnnotation:annotation];
[annotation release];
}
}

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{

if (map.userLocation == annotation){
return nil;
}

NSString *identifier = @"MY_IDENTIFIER";

MKAnnotationView *annotationView = [map dequeueReusableAnnotationViewWithIdentifier:identifier];
if (annotationView == nil){
annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:identifier]
autorelease];
annotationView.image = [UIImage imageNamed:@"logo.png"];
annotationView.canShowCallout = YES;

annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
}
return annotationView;
}

这就是我目前在我的代码中所拥有的全部内容,它在我运行和调试应用程序时完美运行,并向我显示了我在良好缩放级别设置的所有 4 个区域的位置,但现在我只想要 1要设置的区域,所以当我删除其他 3 个区域并运行它并只给我一个区域时,缩放级别似乎非常接近 map :

enter image description here

所以我在代码修复后(假设有人帮我修复了缩放级别的代码),下次我运行它时,当我点击“在谷歌地图上找到我们”时,我的谷歌地图打开页面缩放级别应该是这样的: enter image description here

是的,希望有人能在我开始打开 ​​Google map 时帮助我解决缩放级别问题,谢谢!

(关于纽约的变量名,算了,我不住纽约哈哈)

最佳答案

为 latitudeDelta 和 longitudeDelta 设置一个最小值。我会这样做:

MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake((maxLat + minLat) / 2.0, (maxLon + minLon) / 2.0), 1000.0, 1000.0);
region.span.latitudeDelta = MAX(region.span.latitudeDelta, (maxLat - minLat) * 1.05);
region.span.longitudeDelta = MAX(region.span.longitudeDelta, (maxLon - minLon) * 1.05);

第一行创建了一个 1km x 1km 矩形的区域,如果点散布得更远,接下来的几行会放大矩形。

关于iphone - 在 MapKit Xcode 中设置缩放级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5398096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com