Comment obtenez-vous l'emplacement actuel de l'iPhone grâce au code? J'ai besoin de suivre l'emplacement en utilisant le GPS.Comment obtenir l'emplacement actuel de l'iPhone à l'aide du code?
Répondre
Vous recherchez l'API "CoreLocation".
est ici a tutorial
Il est (comme toujours pour les fonctionnalités de base) une documentation complète sur le site de développeur et vous trouverez peut-être this example utile;
Les points clés à retenir sont:
1) Une fois que vous recevez des mises à jour de localisation, elles arrivent de manière asynchrone et vous devez y répondre au fur et à mesure qu'elles arrivent. Vérifiez l'exactitude et l'horodatage pour décider si vous souhaitez utiliser l'emplacement.
2) N'oubliez pas d'arrêter de recevoir les mises à jour dès que vous avez l'emplacement souhaité (il se peut que ce ne soit pas le premier), sinon vous perdrez la vie de la batterie.
3) Le premier emplacement retourné à vous est souvent le dernier CACHED un, et le téléphone signalera cet endroit avec le même (peut-être élevé) la précision qu'elle avait quand elle a obtenu le correctif avant. Vous pourriez donc obtenir une correction qui prétend être exacte à 10 mètres, mais elle a été reçue hier lorsque vous étiez à des kilomètres de votre emplacement actuel. La devise de ceci est N'OUBLIEZ PAS DE VÉRIFIER LE TIMESTAMP - cela vous indique quand le correctif d'emplacement a été effectivement reçu. Here's an example of how to check the timestamp.
Espérons que ça aide.
Merci Roger, va vous attraper après avoir essayé avec votre exemple –
Le lien de la documentation du développeur est cassé alors je l'ai réparé. Je dois dire que le troisième point concernant les emplacements mis en cache est quelque chose que de nombreux développeurs négligent et c'est certainement un bon point! +1 pour ça. Je suis en train de mettre à jour le post de @ Roger pour inclure comment les horodateurs de localisation devraient également être vérifiés. – javatarz
télécharger ce example il vous montrera l'emplacement actuel
La vraie solution peut être trouvée ici. Z5 Concepts iOS Development Code Snippet
Il suffit d'un peu d'encodage.
- (IBAction)directions1_click:(id)sender
{
NSString* address = @"118 Your Address., City, State, ZIPCODE";
NSString* currentLocation = @"Current Location";
NSString* url = [NSStringstringWithFormat: @"http://maps.google.com/maps?saddr=%@&daddr=%@",[currentLocation stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
UIApplication *app = [UIApplicationsharedApplication];
[app openURL: [NSURL URLWithString: url]];
}
Si vous avez juste besoin d'obtenir l'emplacement actuel de l'appareil, à l'aide de base Localisation exige directement une bonne partie de code, car vous devez gérer le retard jusqu'à ce que le GPS de l'appareil dispose d'une solution précise sur l'emplacement actuel, qui prend nombre de secondes. (L'API CLLocationManager semble être conçue pour les applications qui nécessitent des mises à jour de localisation continue, comme les applications de navigation GPS détaillées.)
Au lieu d'utiliser CLLocationManager directement, je vous suggère d'utiliser un open source component such as INTULocationManager qui gère Tout cela fonctionne pour vous et rend trivialement simple de demander une ou plusieurs demandes discrètes pour l'emplacement actuel du périphérique.
code complet est ici-bas
1 glisser carte cadre d'importation donner délégué
en dernière ligne de ce code self.yourmapreferencename.setRegion ...
// tout le code ici
importation UIKit importation MapKit importation CoreLocation classe ViewController: UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var mapView: MKMapView!
var locationManager : CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
if CLLocationManager.locationServicesEnabled()
{
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
}
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
let location = locations.last! as CLLocation
let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
self.mapView.setRegion(region, animated: true)
}
}
Merci David ... –