【发布时间】:2011-10-02 14:53:55
【问题描述】:
1.) 我需要在地图上有一个蓝色圆球/位置点,如下所示。
- 它叫什么?
- 如何实现?
2.) 如何在弹出屏幕上获得如下箭头?
【问题讨论】:
标签: ios objective-c gps mapkit
1.) 我需要在地图上有一个蓝色圆球/位置点,如下所示。
2.) 如何在弹出屏幕上获得如下箭头?
【问题讨论】:
标签: ios objective-c gps mapkit
我认为您所追求的是 MKMapView;如果是这样,您只需将其添加到界面构建器中,并且“属性检查器”面板中有一个选项(复选框)允许您“显示用户位置”。通过选中该框,它将使蓝点出现在地图上(如果您使用的是 iPhone 模拟器,它只会显示为 Cupertio)。
有很多关于 iPhone 地图视图入门的简单教程。这是pretty good one。如果您不喜欢它,那么我建议您谷歌“MkMapView 教程”,您应该会找到很多有用的信息。
为了获取用户的位置(纬度和经度),您需要做一些事情:
1) 确保您已导入 CoreLocation 框架 (CoreLocation.framework)
2) 您需要将以下内容添加到您的 .h 文件中:
#import <CoreLocation/CoreLocation.h>
@interface exampleViewController : UIViewController <CLLocationManagerDelegate>
{
CLLocationManager *locationManager;
}
@property(nonatomic, retain)CLLocationManager *locationManager;
3) 您需要将以下内容添加到您的 .m 文件中(适用于您的应用的任何位置)
这部分将创建一个 CLLocationManager 的实例:
self.locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
然后您可以使用委托方法获取当前的纬度和经度:
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
NSLog(@"New latitude: %f", newLocation.coordinate.latitude);
NSLog(@"New longitude: %f", newLocation.coordinate.longitude);
}
你也应该看看这个existing question 和this one,我认为它应该可以帮助你解决问题的第二部分。
希望这会有所帮助。
【讨论】: