在iPhone中找到具有核心位置的精确位置时出现问题

时间:2011-08-29 07:47:41

标签: iphone core-location

我正在使用Mapkit FrameWork for iPhone。我有城市名单及其着名的地方,酒店和餐馆。它是在地图上找到城市和着名的地方。但不是酒店和餐馆。

这是我的代码:

- (CLLocationCoordinate2D) addressLocation {
NSString *strRequest; double latitude = 0, longitude = 0;

    CLLocationCoordinate2D center;

    NSString *strAddress = [searchLocationField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSLog(@"Search String:%@",searchLocationField.text);

    strRequest = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", strAddress];

    NSString *strNewResult = [NSString stringWithContentsOfURL:[NSURL URLWithString:strRequest] encoding:NSUTF8StringEncoding error:NULL];

    NSLog(@"StrRequest :- '%@'",strNewResult);

    NSArray *listItems = [strNewResult componentsSeparatedByString:@","];

    if([listItems count] == 4)
    {
        latitude = [[listItems objectAtIndex:2] doubleValue];
        longitude = [[listItems objectAtIndex:3] doubleValue];
    }
    else
    {

        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning"
                                                        message:@"Could Not Find Address"
                                                       delegate:nil
                                              cancelButtonTitle:@"ok"
                                              otherButtonTitles:nil];
        [alert show];
        [alert release];
        }

    center.latitude = latitude;
    center.longitude = longitude;

    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(center, 1000, 1000);
    MKCoordinateRegion adjustRegion = [mapView regionThatFits:region];
    [mapView setRegion:adjustRegion animated:YES];
    return center;
}

有没有办法找到完全位置?

1 个答案:

答案 0 :(得分:1)

您需要在-didUpdateToLocation中监控确切的位置更改。只要[locationManager startUpdatingForLocation]正在运行,就会不断调用更新当前位置。

当您使用区域监控时,您只会获得2个事件,-didEnterRegion和-didExitRegion。根据您的工作情况,区域监控可能不是此应用程序的最佳工具。