Ios 此处地图中未获取当前位置
我正在我的应用程序中使用here地图,效果很好。我将目标坐标从一个视图控制器传递到另一个视图控制器,其中包含贴图及其方法。我试图在第二个视图控制器中获取方法内的当前位置以计算roue,但当前位置始终返回0,0。请建议如何获取方法内的当前位置,在该位置我从第一个视图控制器传递值 视图控制器1:Ios 此处地图中未获取当前位置,ios,objective-c,here-api,Ios,Objective C,Here Api,我正在我的应用程序中使用here地图,效果很好。我将目标坐标从一个视图控制器传递到另一个视图控制器,其中包含贴图及其方法。我试图在第二个视图控制器中获取方法内的当前位置以计算roue,但当前位置始终返回0,0。请建议如何获取方法内的当前位置,在该位置我从第一个视图控制器传递值 视图控制器1: - (IBAction)btn_navigate:(id)sender { NSLog(@"%@",_POiarray); _VC=[[NaviMeVC alloc]init]; [
- (IBAction)btn_navigate:(id)sender
{
NSLog(@"%@",_POiarray);
_VC=[[NaviMeVC alloc]init];
[_VC GetPoi:_POiarray];
[self.navigationController pushViewController:_VC animated:YES];
}
-(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];
}
mapviewcontroller:
- (IBAction)btn_navigate:(id)sender
{
NSLog(@"%@",_POiarray);
_VC=[[NaviMeVC alloc]init];
[_VC GetPoi:_POiarray];
[self.navigationController pushViewController:_VC animated:YES];
}
-(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];
}
要开始接收定位更新,您需要调用
nmapocationingmanager startPositioning
,我在示例代码中没有看到这一点。更多详细信息请参见下面的用户指南链接。请阅读该页上的其他说明,看看是否有帮助
要检查的另一件事:您是否已将nsLocationWhenUsageDescription
添加到项目Info.plist
文件中,以确保您的应用程序可以从CLLocationManager
接收用户位置
此外,这可能看起来很明显,但请记住,只有在有位置定位的情况下,您才能收到currentPosition
的有效值