Ais*_*sha 26 iphone zoom objective-c mkmapview
我知道这是一个非常普遍的问题,但我没有得到这个问题的确切答案.
如何使MKMapView默认为当前位置5英里半径的缩放.
提前致谢.
Anu*_*rag 59
使用MKCoordinateRegionMakeWithDistance
MapKit中的函数.
由于MapKit使用米,因此使用转换功能将里程转换为米.
float MilesToMeters(float miles) {
// 1 mile is 1609.344 meters
// source: http://www.google.com/search?q=1+mile+in+meters
return 1609.344f * miles;
}
Run Code Online (Sandbox Code Playgroud)
然后在你的代码中将地图区域设置为(感谢@DylanBettermann指出要获得5英里的半径,距离需要加倍)
mapView.region = MKCoordinateRegionMakeWithDistance(
centerCoordinate,
MilesToMeters(10.0f),
MilesToMeters(10.0f)
);
Run Code Online (Sandbox Code Playgroud)
swift 4版本:
mapView.region = MKCoordinateRegion(
center: centerCoordinate,
latitudinalMeters: MilesToMeters(10.0f),
longitudinalMeters: MilesToMeters(10.0f)
)
Run Code Online (Sandbox Code Playgroud)
Sat*_*yam 55
如果要缩放到5英里半径,请使用以下代码:
double miles = 5.0;
double scalingFactor = ABS( (cos(2 * M_PI * newLocation.coordinate.latitude / 360.0) ));
MKCoordinateSpan span;
span.latitudeDelta = miles/69.0;
span.longitudeDelta = miles/(scalingFactor * 69.0);
MKCoordinateRegion region;
region.span = span;
region.center = newLocation.coordinate;
[mapView setRegion:region animated:YES];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25036 次 |
最近记录: |