Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 此处地图中未获取当前位置_Ios_Objective C_Here Api - Fatal编程技术网

Ios 此处地图中未获取当前位置

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]; [

我正在我的应用程序中使用here地图,效果很好。我将目标坐标从一个视图控制器传递到另一个视图控制器,其中包含贴图及其方法。我试图在第二个视图控制器中获取方法内的当前位置以计算roue,但当前位置始终返回0,0。请建议如何获取方法内的当前位置,在该位置我从第一个视图控制器传递值

视图控制器1:

- (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
的有效值


如果您使用的是MKMapView或谷歌地图,现在就可以了。。非常感谢,我还在mapview中添加了标记数组,并希望在didselectobjects方法中检索特定标记的数据。添加标记效果很好,我想在添加标记时向标记添加标记或标识符,以便从添加的数组中检索特定标记的数据。。。请帮忙。。