mapItemForCurrentLocation找不到我当前的位置

时间:2014-02-27 04:34:22

标签: ios

我正在使用ios中的mapkit,我必须从当前位置跟踪我的路线。 现在,我已经使用模拟器(Debug-> location->自定义位置)分配了我当前的位置,即纬度和经度,但是当我尝试跟踪我的源时,我的源位置为零,因此我无法使用得到路线。

[directionsRequest setSource:[MKMapItem mapItemForCurrentLocation]];

任何人都可以为我的问题提出可能的解决方案

代码

MKDirectionsRequest * directionsRequest = [[MKDirectionsRequest alloc] init];

MKPlacemark *placemark = [[MKPlacemark alloc] initWithPlacemark:thePlacemark];

[directionsRequest setSource:[MKMapItem mapItemForCurrentLocation]];

[directionsRequest setDestination:[[MKMapItem alloc] initWithPlacemark:placemark]];

directionsRequest.transportType = MKDirectionsTransportTypeAutomobile;

MKDirections *directions = [[MKDirections alloc] initWithRequest:directionsRequest];

3 个答案:

答案 0 :(得分:1)

如果您使用的是MapView,那么有一种委托方法可以在不使用CLLocationManager的情况下获取当前位置。

 -(void)viewDidLoad
  {
    mapView.delegate=self;
  }   

 -(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation

{
   `enter code here`  //Here MKUserLocation will give you current Location and every time will method will call when the location is change...'

}

如果您只想要用户位置,请使用

 MKUserLocation *userlocation=mapView.userlocation

答案 1 :(得分:0)

我认为你的位置是零,因为你在模拟器中测试它,请在真实设备上运行

答案 2 :(得分:0)

https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKMapItem_class/状态mapItemForCurrentLocation出于隐私原因不包含坐标数据,但如果您使用地图视图并且showsUserLocation为true,则这是一个简单的解决方法:

MKUserLocation* userLocation = self.mapView.userLocation;
MKMapItem* mapItemForCurrentLocation;
if(userLocation.isUpdating && userLocation.isBeingUpdated){
    mapItemForCurrentLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:userLocation.location.coordinate addressDictionary:nil]];
    mapItemForCurrentLocation.name = @"Current Location";
}