Tho*_*son 6 iphone mapkit mkmapview
我有这个代码来设置用户位置的地图:
MKCoordinateSpan span;
span.latitudeDelta=0.2;
span.longitudeDelta=0.2;
CLLocationCoordinate2D location=mapView.userLocation.coordinate;
location = mapView.userLocation.location.coordinate;
MKCoordinateRegion region;
region.span=span;
region.center=location;
[mapView setRegion:region animated:TRUE];
[mapView regionThatFits:region];
Run Code Online (Sandbox Code Playgroud)
现在,当我这样做时,mapView.showsUserLocation=YES它显示我在正确位置的位置(在我的设备上,以及模拟器中的苹果公司),但是,上面的代码两次都把我放在非洲附近的某个海域!
有任何想法吗?
Dan*_*Ray 14
纬度/经度对0/0位于英格兰格林威治以南的赤道上.那个地方位于非洲西海岸的几内亚湾.如果这是您的引脚放置的位置,那么您的mapView.userLocation未设置.
可能你的代码在MKMapKit有机会获得它的位置之前就已经运行了.你真正想要做的是有你的viewController采用的MKMapKitDelegate协议,将.delegate您的地图视图的财产self,然后实现方法:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
Run Code Online (Sandbox Code Playgroud)
当地图工具包找到用户时,将调用该方法,您可以使用在此处传递的userLocation值来设置地图上的区域.然而,在第一次调用之前,MapView仍然在定位自己,而你对它的位置的询问是不成熟的.
此外,您所在的地区最终到达的地方是无操作.该方法不会调整区域的大小,它实际上会返回一个已调整大小的区域,供您使用.因此,您希望将地图视图的区域设置为该方法返回的内容.像这样:
[mapView setRegion:[mapView regionThatFits:region] animated:TRUE];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2676 次 |
| 最近记录: |