目前我正在开发类似于适用于iOS设备的优步应用的应用。
为此,我使用了Google Map SDK
我的查询是: 当驾驶员驾驶时,他需要始终在地图中心的多边形线上看到他当前的位置,距离&旅行的总时间
在这里,我找到了一个包含MKMapKit代码的示例图像:Image URL link和Sample code url
我也在使用自定义图片(汽车符号)查找Google Map
的相同代码。
我该如何解决这个问题?请帮帮我。
答案 0 :(得分:1)
如果您是驱动程序,则可以使用other questions检测当前位置。
根据此Geolocation,您必须使用CLLocationManager
检索位置。
首先,将
CoreLocation.framework
添加到您的项目中:
- 进入
Project Navigator
- 选择您的项目
- 点击标签
Build Phases
- 在
中添加CoreLocation.framework
Link Binary with Libraries
然后您需要做的就是遵循thread的基本示例。
可能在
中创建CLLocationManager
:ViewDidLoad
if (nil == locationManager) locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; //Configure Accuracy depending on your needs, default is kCLLocationAccuracyBest locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; // Set a movement threshold for new events. locationManager.distanceFilter = 500; // meters [locationManager startUpdatingLocation];
每次有位置
CLLocationManagerDelegate
更新后,您可以更新Google Maps
上的用户排名:- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { // If it's a relatively recent event, turn off updates to save power. CLLocation* location = [locations lastObject]; NSDate* eventDate = location.timestamp; NSTimeInterval howRecent = [eventDate timeIntervalSinceNow]; if (abs(howRecent) < 15.0) { // Update your marker on your map using location.coordinate.latitude //and location.coordinate.longitude); } }
如果您使用原生MapKit.framework
,它也会有效。您需要添加yourMapView.myLocationEnabled = YES;
,框架将执行所有操作。 (除了你位置上的地图中心)。
按照此Apple
documentation中的步骤操作。如果您想要更新地图以跟随您的位置,您可以复制框架目录中包含的Google示例MyLocationViewController.m
。他们只需在myLocation
属性上添加一个观察者来更新相机属性。
要获得行进的总距离,请检查documentation。它声明您需要将地址地理编码为纬度/经度,然后您可以使用CLLocation
框架来计算距离。
要对地址进行地理编码,您可以使用此related question。
// get CLLocation fot both addresses CLLocation *location = [[CLLocation alloc] initWithLatitude:address.latitude longitude:address.longitude]; // calculate distance between them CLLocationDistance distance = [firstLocation distanceFromLocation:secondLocation];
您还可以查看forward geocoding API。
希望这有帮助!