Mohanraj
Mohanraj

Reputation: 597

Current location not obtained in here maps

i am using here maps in my app and works fine. i pass destination coordinate from one view controller to another viewcontroller which contains here map and its methods. i tried to get the current location inside the method in the second view controller to calculate the roue, but current location always returns 0,0.please advice how to get current location inside the method where i pass the values from first viewcontroller

viewcontroller1:

- (IBAction)btn_navigate:(id)sender
{
    NSLog(@"%@",_POiarray);
    _VC=[[NaviMeVC alloc]init];
    [_VC GetPoi:_POiarray];
    [self.navigationController pushViewController:_VC animated:YES];
} 

mapviewcontroller:

-(void)GetPoi:(NSMutableArray *)anArray
{
    //get current location 

    NMAGeoPosition * position=[[NMAGeoPosition alloc]init];
    position = [[NMAPositioningManager sharedPositioningManager] currentPosition];
    _StartCoordinate=[[NMAGeoCoordinates alloc]initWithLatitude:position.coordinates.latitude longitude:position.coordinates.longitude];

    //not working returns nil



    [[NMAMapLoader sharedMapLoader] setDelegate:self];
    _SelectedPOi=[[NSMutableArray alloc]init];
    _SelectedPOi=anArray;
    NSString *lat=[anArray valueForKey:@"latitude"];
    CLLocationDegrees latitu=[lat doubleValue];
    NSString *longi=[anArray valueForKey:@"longitude"];
    CLLocationDegrees longit=[longi doubleValue];
    _DestinationCoordinate=[[NMAGeoCoordinates alloc]initWithLatitude:latitu longitude:longit];
     NSLog(@"%f  %f",_DestinationCoordinate.latitude,_DestinationCoordinate.longitude);
     NSNumber *lati = [NSNumber numberWithDouble:latitu];
     NSNumber *longitu = [NSNumber numberWithDouble:longit];
     NSDictionary *userLocation=@{@"lat":lati,@"long":longitu};

     NMARoutingMode* routingMode = [[NMARoutingMode alloc] initWithRoutingType:NMARoutingTypeShortest
                                                            transportMode:NMATransportModeCar
                                                           routingOptions:0];
     [self CalculateRoute:routingMode];
 }

Upvotes: 3

Views: 869

Answers (1)

AndrewJC
AndrewJC

Reputation: 1478

To start receiving positioning updates you need to call NMAPositioningManager startPositioning which I don't see in your sample code. More details in user guide link below. Please read the other instructions on that page to see if anything helps.

Another thing to check: have you added NSLocationWhenInUseUsageDescription into your projects Info.plist file to ensure your app can receive user location from CLLocationManager?

Also, this may seem obvious but please keep in mind that you will only be able to receive a valid value for currentPosition if you have a position fix.

Upvotes: 1

Related Questions