iOS百度地图 定位的实现
2014-04-22 14:18
381 查看
[java] view
plaincopy
mapView.showsUserLocation = YES;
if (mapView.userLocation.location != nil)
{
NSLog(@"定位成功");
coor = [[mapView.userLocation location] coordinate];
NSLog(@"%f",coor.latitude);
NSLog(@"%f",coor.longitude);
}
BMKCoordinateRegion viewRegion = BMKCoordinateRegionMake(coor, BMKCoordinateSpanMake(0.02f,0.02f));
BMKCoordinateRegion adjustedRegion = [mapView regionThatFits:viewRegion];
[mapView setRegion:adjustedRegion animated:YES];
一直以为是这样的呢,因为设定了showUserLocation 在去取到当前的userLocation就好了呢,这样做是不会立马就定位到的,它内部的实现是在子线程去定位,
然后通过代理方法去更新当前的用户位置的,好晕啊,仔细一找 ,就找到了这个更新用户当前位置的代理方法
[java] view
plaincopy
/**
*用户位置更新后,会调用此函数
*@param mapView 地图View
*@param userLocation 新的用户位置
*/
- (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation *)userLocation;
那么就去实现它好了,这个时候应该是定位到了用户的位置了,也就是这个userLocation了
[java] view
plaincopy
#pragma mark mapViewDelegate 代理方法
- (void)mapView:(BMKMapView *)mapView1 didUpdateUserLocation:(BMKUserLocation *)userLocation
{
BMKCoordinateRegion region;
region.center.latitude = userLocation.location.coordinate.latitude;
region.center.longitude = userLocation.location.coordinate.longitude;
region.span.latitudeDelta = 0.2;
region.span.longitudeDelta = 0.2;
if (mapView)
{
mapView.region = region;
NSLog(@"当前的坐标是: %f,%f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);
}
}
总结
实现定位必须1.初始化mapview
2.设置mapview的showUserLocation的属性为YES
3.去实现didUpdateUserLocation代理来实现当前位置显示在可视范围内
http://blog.csdn.net/fanjunxi1990/article/details/9131003
相关文章推荐
- iOS与phonegap整合 实现百度地图定位和二维码扫描
- iOS百度地图 定位的实现
- ios百度地图定位实现
- iOS百度地图 定位的实现
- Android百度地图之位置定位和附近查找代码简单实现 (上)
- android 百度地图定位功能实现
- 百度地图 实现检索时不清除定位标注
- iOS App运行在后台实现定位以及播放音频功能
- 使用百度地图实现基本的地图显示与定位功能
- 关于百度地图实现定位的两种方式(baiduSDK 和 Service+BaiduSDK)
- iOS后台定位实现
- iOS后台定位实现
- iOS后台定位实现
- Android定位&地图&导航——基于百度地图实现的定位功能
- 百度地图实现最简单的定位功能(无地图界面)
- iOS获取高德地图实现持续定位功能
- ios百度地图的使用(基本定位和地理编码)
- ios 定位新功能----在程序中实现定位功能
- 浅谈百度地图的简单开发之结合方向传感器实现定位功能(三)
- IOS 百度地图定位一片空白