gpt4 book ai didi

iphone - MKMapView 中的缩放级别

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

我正在使用 map 。我有个问题。我使用以下代码从 this link in stackOverFlow 的引用中缩放

很容易缩放 map 。
但现在,我无法放大和缩小 map 。这意味着我不能改变或找到另一个地方。它只关注当前位置。它的行为就像图像 Fix 一样。我不明白该怎么办?请帮忙。我的代码如下。

- (void) viewDidLoad
{
[self.mapView.userLocation addObserver:self
forKeyPath:@"location"
options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld)
context:nil];
}


-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
MKCoordinateRegion region;
region.center = self.mapView.userLocation.coordinate;

MKCoordinateSpan span;
span.latitudeDelta = 1; // Change these values to change the zoom
span.longitudeDelta = 1;
region.span = span;

[self.mapView setRegion:region animated:YES];
}

最佳答案

我认为问题在于您正在监听用户位置变化(这很可能每秒发生多次)并且您正在将 map 区域设置为该区域。

您需要做的是在 map 上添加一个按钮(如 Apple map 的左上角),它将 map 模式切换为自由查看或固定到用户位置。

当用户按下按钮时,您可以删除/添加 KVO。或在您的代码中切换 bool 标志。当标志为真时,您不会更改 map 区域。像这样的东西:

@implementation YourController{
BOOL _followUserLocation;
}

- (IBAction) toggleMapMode:(id)sender{
_followUserLocation = !_followUserLocation;
}

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if(_followUserLocation){
MKCoordinateRegion region;
region.center = self.mapView.userLocation.coordinate;

MKCoordinateSpan span;
// retain the span so when the map is locked into user location they can still zoom
span.latitudeDelta = self.mapView.region.span.latitudeDelta;
span.longitudeDelta = self.mapView.region.span.longitudeDelta;

region.span = span;

[self.mapView setRegion:region animated:YES];
}
}

@end

也许您不想要这一切,您需要的只是:

        // retain the span so when the map is locked into user location they can still zoom
span.latitudeDelta = self.mapView.region.span.latitudeDelta;
span.longitudeDelta = self.mapView.region.span.longitudeDelta;

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

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