Hec*_*ret 24 iphone mapkit mkmapview
我正在使用MKMapViewiPhone应用程序内部.单击按钮时,缩放级别必须增加.这是我的第一个方法:
MKCoordinateRegion zoomIn = mapView.region;
zoomIn.span.latitudeDelta *= 0.5;
[mapView setRegion:zoomIn animated:YES];
Run Code Online (Sandbox Code Playgroud)
但是,这段代码没有效果,因为我没有更新longitudeDelta值.所以我添加了这一行:
zoomIn.span.longitudeDelta *= 0.5;
Run Code Online (Sandbox Code Playgroud)
现在它有效,但有时候.该latitudeDelta和longitudeDelta不以同样的方式改变,我的意思是,他们的价值是不成正比.不知道怎么解决这个问题?
小智 27
我不知道这是否是正确的方法,但我正在使用它来放大和缩小.
case 0: { // Zoom In
//NSLog(@"Zoom - IN");
MKCoordinateRegion region;
//Set Zoom level using Span
MKCoordinateSpan span;
region.center=mapView.region.center;
span.latitudeDelta=mapView.region.span.latitudeDelta /2.0002;
span.longitudeDelta=mapView.region.span.longitudeDelta /2.0002;
region.span=span;
[mapView setRegion:region animated:TRUE];
}
break;
// Zoom Out
case 2: {
//NSLog(@"Zoom - OUT");
MKCoordinateRegion region;
//Set Zoom level using Span
MKCoordinateSpan span;
region.center=mapView.region.center;
span.latitudeDelta=mapView.region.span.latitudeDelta *2;
span.longitudeDelta=mapView.region.span.longitudeDelta *2;
region.span=span;
[mapView setRegion:region animated:TRUE];
}
Run Code Online (Sandbox Code Playgroud)
Kev*_*vin 23
只是清理dkdarel的答案
// delta is the zoom factor
// 2 will zoom out x2
// .5 will zoom in by x2
- (void)zoomMap:(MKMapView*)mapView byDelta:(float) delta {
MKCoordinateRegion region = mapView.region;
MKCoordinateSpan span = mapView.region.span;
span.latitudeDelta*=delta;
span.longitudeDelta*=delta;
region.span=span;
[mapView setRegion:region animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
SWIFT代码:
func zoomMap(byFactor delta: Double) {
var region: MKCoordinateRegion = self.mapView.region
var span: MKCoordinateSpan = mapView.region.span
span.latitudeDelta *= delta
span.longitudeDelta *= delta
region.span = span
mapView.setRegion(region, animated: true)
}
Run Code Online (Sandbox Code Playgroud)
Roo*_*elt 22
这是一个更简单的解决方案
MKUserLocation *userLocation = mapView.userLocation;
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance (
userLocation.location.coordinate, 50, 50);
[mapView setRegion:region animated:NO];
Run Code Online (Sandbox Code Playgroud)
我使用与你类似的代码,它似乎有效。可能发生的情况是您的增量变化不足以导致缩放级别从一个谷歌缩放级别增加到下一个。这还取决于地图的初始状态,这可以解释为什么它是间歇性的 - 那么在用户按下缩放按钮之前,如何开始设置地图和缩放级别?
您还可以查看regionThatFits方法,它将调整您提供的区域(名称来自内存,因为我手边没有苹果文档)。
| 归档时间: |
|
| 查看次数: |
40358 次 |
| 最近记录: |