Obtenir de l'mauvais emplacement sur le GPS de l'iPhone
Essayé différentes méthodes à l'aide de l'emplacement de noyau cadre de travail dans iOS, mais pas de trouver l'emplacement exact par GPS. Même la pomme de cartes & google maps ne sont pas pointant vers l'emplacement correct. Voir l'extrait de code que j'utilise:
MyLocation classe fichier d'en-tête
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
@interface MyLocation : NSObject<CLLocationManagerDelegate> {
CLLocationManager *locationManager;
}
MyLocation classe m fichier
#import "MyLocation.h"
#import <CoreTelephony/CTCarrier.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
@implementation MyLocation
@synthesize curLocation;
-(id)init{
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
locationManager.distanceFilter = 0;
//locationManager.distanceFilter = kCLDistanceFilterNone;
//locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[self updateLocation];
curLocation = CGPointZero;
return self;
}
-(void)updateLocation{
[locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
curLocation = CGPointMake( newLocation.coordinate.latitude, newLocation.coordinate.longitude);
}
Si Apple Maps & Google Maps afficher mauvais endroit alors je suppose que votre demande sera ainsi. Mais si vous voulez être super percise vous ne devriez pas utiliser kCLLocationAccuracyNearestTenMeters. Utilisation kCLLocationAccuracyBest ou kCLLocationAccuracyBestForNavigation, mais ceux-ci vont utiliser plus de batterie. En général, le GPS est assez précis, mais pas très précis.
merci de le tester sur le périphérique
je suis aussi confronté à ce problème. j'avais essayé avec kCLLocationAccuracyBestForNavigation aussi mais de ne pas avoir de succès . et je l'avais testé sur plusieurs appareils , parfois, il obtient des résultats exacts, mais la plupart ne sont pas exacts.
Vérifier ma réponse ailleurs dans ce fil. J'ai juste couru dans ce domaine au cours des derniers jours. Ce n'est pas vous. C'est l'appareil.
Salut @Brave Cœur Avez-vous résolu ce problème. Je suis confronté à la même question. Mais je suis incapable de le résoudre. Pouvez-vous s'il vous plaît aider moi si vous avez résolu ce problème.Merci à l'avance.
merci de le tester sur le périphérique
je suis aussi confronté à ce problème. j'avais essayé avec kCLLocationAccuracyBestForNavigation aussi mais de ne pas avoir de succès . et je l'avais testé sur plusieurs appareils , parfois, il obtient des résultats exacts, mais la plupart ne sont pas exacts.
Vérifier ma réponse ailleurs dans ce fil. J'ai juste couru dans ce domaine au cours des derniers jours. Ce n'est pas vous. C'est l'appareil.
Salut @Brave Cœur Avez-vous résolu ce problème. Je suis confronté à la même question. Mais je suis incapable de le résoudre. Pouvez-vous s'il vous plaît aider moi si vous avez résolu ce problème.Merci à l'avance.
OriginalL'auteur Brave Heart | 2014-05-23
Vous devez vous connecter pour publier un commentaire.
Comme krzy dit, si Apple Maps est de donner les mêmes types de résultats, vous avez à faire avec les limitations du GPS sur votre téléphone. (Ce qui n'est pas très bon.)
Un couple de choses que vous pouvez faire pour obtenir de meilleurs résultats:
Lorsque vous demandez d'abord à l'emplacement du gestionnaire pour l'emplacement des mises à jour, la première mise à jour que vous obtenez est généralement un "périmé" de la lecture de la dernière fois que le GPS est actif. Il peut être des heures, des jours, ou des semaines. Vérifier l'horodatage et de jeter les lectures qui sont plus que quelques secondes.
Ensuite, vérifiez la précision horizontale sur les mesures que vous obtenez. "L'exactitude" serait mieux nommé "retraité" ou "cercle de confusion". Que votre position actuelle peut être n'importe où dans un cercle de rayon. Haut de "l'exactitude" des lectures de dire que la lecture n'est pas très précis. Vous voulez probablement jeter des lectures avec une précision de lecture > 100 mètres.
Non, pas vraiment. Pourquoi ne pas vous essayez de comprendre ce que j'ai décrit? C'est assez simple des choses.
Fourniture du code de simples suggestions peuvent être contre-productive, car alors le lecteur, il suffit de copier et coller le code plutôt que de l'apprentissage de l'Api assez bien pour écrire le code lui-même.
Ouais vrai que les utilisateurs parfois, il suffit de copier et de coller le code au lieu d'essayer d'apprendre l'API.
OriginalL'auteur Duncan C
Si votre "curLocation" est un exemple de CLLocation vous devez les initialiser cette façon
et pas avec CGPointMake
OriginalL'auteur Mongi Zaidi
J'ai juste eu ce problème sous iOS 8 et l'iPhone 6, mais sur d'autres appareils sous iOS 7 et iOS 6, il n'y avait pas le problème des rapports de l'emplacement.
Il n'a finalement pas été mon code, buuut...
Apple Maps soudainement pensé à mon appareil était à 200 miles à new york. Tout ce temps je pensais que le problème était avec iOS 8, mais pour une raison quelconque, les Services de Localisation et/ou des paramètres de Confidentialité ou du matériel sous-jacent placé l'appareil dans NYC.
Réinitialiser les Services de Localisation et de la vie privée sur l'appareil et dans quelques minutes, CoreLocation de démarrer correctement retourner l'appareil au bon les coordonnées GPS et la mise à jour sur une base régulière.
AHA!! Au sein de l'application du schéma, que j'avais mis de l'Emplacement de Noyau pour Simuler des Endroits et qu'il avait choisi new york pour à la fois le régime de l'exécution de l'application dans le Simulateur et sur l'appareil. En cas d'exécution sur l'appareil, juste une fois et toujours en arrière-plan, cette définition de l'emplacement à new york pour toutes les applications en utilisant les services de localisation et de geofencing région de suivi.
OriginalL'auteur Alex Zavatone
Tout d'abord, la méthode que vous utilisez
didUpdateToLocation:fromLocation:
a été abandonné depuis iOS6. Vous aurez envie d'être à l'aide de ladidUpdateLocations:
méthode au lieu de cela, comme illustré ci-dessous.Deuxièmement, vous n'avez pas besoin de créer un nouvel emplacement ou de coordonnées de l'objet dans la façon dont vous le faites.
Cette fonction renvoie:
Quant à l'exactitude, il n'y a pas beaucoup que vous pouvez faire pour améliorer la précision autre que de continuer emplacements de mise à jour et de l'espoir pour l'horizontalAccuracy propriété de futures mises à jour pour améliorer. Réglage de la meilleure précision et la distance n'filtre peut aider.
OriginalL'auteur Mike
Essayez ceci :
OriginalL'auteur Mayur