J'ai simple MapView qui a la méthode viewDidLoad suivante et didupdate à l'emplacement:iphone updateToLocation fonctionne différemment sur le réseau 3G par rapport au réseau sans fil?
- (void)viewDidLoad {
NSLog(@"in view did load");
[super viewDidLoad];
self.mapView.showsUserLocation = YES;
self.put_url = nil;
locationManager = [[CLLocationManager alloc] init];
[locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
[locationManager setDelegate:self];
noUpdates = 0;
[locationManager startUpdatingLocation];
self.availableParking = [[NSMutableArray alloc] init];
//self.availableParking = nil;
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
NSLog(@"in didupdatetolocatoin");
if([newLocation horizontalAccuracy] < 100 && [newLocation horizontalAccuracy] > 0) {
// Add annotation to map
DDAnnotation *annotation = [[DDAnnotation alloc] initWithCoordinate:newLocation.coordinate title:@"Park Here?"];
MKCoordinateRegion region;
MKCoordinateSpan span;
span.latitudeDelta = 0.05;
span.longitudeDelta = 0.05;
region.span = span;
region.center = newLocation.coordinate;
self.mapView.region = region;
NSLog(@"in didupdatetolocation");
noUpdates++;
NSLog(@"IN UPDATELOCATION NOUPDATES = %d",noUpdates);
if (noUpdates == 1) {
[self.mapView addAnnotation:annotation];
NSLog(@"ADDED ANNOTATION IN didUpdateToLocation!!");
[locationManager stopUpdatingLocation];
[self.settingsViewController setState:self.mapView.userLocation.subtitle andCity:@"fuckface"];
NSLog(@"STOPPED UPDATING LOCATION");
UpdateLocation *updatedLocation = [[[UpdateLocation alloc] initWithUserid:@"fuckface" andCoordinate:newLocation.coordinate withMapViewController:self]
autorelease];
NSLog(@"Lat = %f, Long = %f",newLocation.coordinate.latitude,newLocation.coordinate.longitude);
//[NSThread detachNewThreadSelector:@selector(getLocations) toTarget:self withObject:nil];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(sendUpdate)
name:@"NoteFromOne"
object:updatedLocation];
}
// We only update location once, and let users to do the rest of the changes by dragging annotation to place they want
} else {
NSLog(@"Accuracy not good enough %lf", [newLocation horizontalAccuracy]);
}
}
Lorsque Im connecté à un réseau sans fil, il fonctionne parfaitement dans le zoom et laissant tomber une broche d'annotation dans mon emplacement actuel. Sur le réseau 3G, il ne fait jamais de zoom ou de chute de la broche. Une quelconque idée du pourquoi? Merci d'avance.
est ici quelques captures d'écran:
Avec la 3G: alt text http://www.freeimagehosting.net/uploads/fe7fcbb2ea.jpg
Avec wifi: alt text http://www.freeimagehosting.net/uploads/6b653e60a7.jpg
Le GPS a quelque chose à voir avec la connexion réseau sur l'iPhone. iOS utilise le réseau pour obtenir des éphémérides satellites et calculer un emplacement initial qui accélère considérablement le temps (en minutes) nécessaire pour acquérir le verrouillage sur les satellites GPS. C'est pourquoi on l'appelle [Assisted GPS] (http://artoftheiphone.com/2008/06/10/iphone-3g-what-is-assisted-gps/) (AGPS). – progrmr