L'API Google Maps: Obtenir les coordonnées de l'emplacement actuel iOS
Je suis actuellement en train de travailler avec l'API Google Maps dans mon projet. Je suis en train de définir la valeur par défaut de la caméra/du zoom à la position. Je fais ceci:
@implementation ViewController{
GMSMapView *mapView_;
}
@synthesize currentLatitude,currentLongitude;
- (void)viewDidLoad
{
[super viewDidLoad];
mapView_.settings.myLocationButton = YES;
mapView_.myLocationEnabled = YES;
}
- (void)loadView{
CLLocation *myLocation = mapView_.myLocation;
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = CLLocationCoordinate2DMake(myLocation.coordinate.latitude, myLocation.coordinate.longitude);
marker.title = @"Current Location";
marker.map = mapView_;
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:myLocation.coordinate.latitude
longitude:myLocation.coordinate.longitude
zoom:6];
mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
self.view = mapView_;
NSLog(@"%f, %f", myLocation.coordinate.latitude, myLocation.coordinate.longitude);
}
Toutefois, il ne fonctionne pas, car quand je fais
NSLog(@"%f, %f", myLocation.coordinate.latitude, myLocation.coordinate.longitude);
elle retourne 0, 0, et il ne donne pas l'emplacement actuel de coordonnées. Comment puis-je bien obtenir de l'utilisateur coordonnées?
Qu'est-ce que cette ligne ? CLLocation *myLocation = mapView_.myLocation; Pour obtenir de l'emplacement actuel, nous avons besoin de 1. Ajouter CoreLocation Framework 2. Créer un objet de CLLocationManager CLLocationManager *locationManager = [[CLLocationManager alloc] init]; 3. [locationManager startUpdatingLocation]; CLLocation *lieu = [locationManager emplacement]; CLLocationCoordinate2D coordonner = [coordonnées];
Google Maps a une fonction qui récupère l'emplacement de l'utilisateur, mais je ne sais pas comment l'obtenir
Voir: stackoverflow.com/questions/16331767/... j'Espère que Ça aide
J'ai regardé celui-là, mais il ne semble pas fonctionner pour moi
lorsque je l'utilise j'ai l'écran blanc, je suis en montrant la carte sur un affichage personnalisé et que vous souhaitez obtenir la latitude , la longitude de l'emplacement actuel ?
Google Maps a une fonction qui récupère l'emplacement de l'utilisateur, mais je ne sais pas comment l'obtenir
Voir: stackoverflow.com/questions/16331767/... j'Espère que Ça aide
J'ai regardé celui-là, mais il ne semble pas fonctionner pour moi
lorsque je l'utilise j'ai l'écran blanc, je suis en montrant la carte sur un affichage personnalisé et que vous souhaitez obtenir la latitude , la longitude de l'emplacement actuel ?
OriginalL'auteur Alexyuiop | 2013-06-12
Vous devez vous connecter pour publier un commentaire.
.h
.m
répondu ici.
Vous aurez besoin de demander
[super viewDidLoad];
dans votre propre mise en œuvre deviewDidLoad
Après l'initialisation, vous devez définir le délégué; sinon, ne fonctionne pas. Dans Swift:
locationManager.delegate = self
vous devez Vous conformer à laCLLocationManagerDelegate
délégué et de mettre en œuvrefunc locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {...}
. Vous pouvez également arrêter la mise à jour de l'emplacement à un certain point:self.locationManager.stopUpdatingLocation()
OriginalL'auteur DrDev
Lorsque l'application démarre, il ne peut pas encore connaître votre position, car il prend généralement un certain temps pour que le GPS de l'appareil pour verrouiller sur votre emplacement (si il vient juste de démarrer), et surtout si c'est la première fois que la demande a été exécutée, et si l'utilisateur n'a pas encore répondu à l'invite de l'application l'accès à leur emplacement. Aussi, il semble comme
mapView.myLocation
est toujours vide (soit à zéro, soit a les coordonnées 0,0) lors de l'affichage de la carte vient d'être créé.De sorte que vous aurez besoin d'attendre jusqu'à ce que la localisation de l'utilisateur est connu, et ensuite mettre à jour la position de la caméra.
Une façon peut-être à l'aide du code à comment obtenir de l'actuel emplacement dans la carte de google sdk de l'iphone comme suggéré par Puneet, mais notez que l'exemple de code il manque les détails de configuration de l'emplacement manager (comme la définition de l'emplacement du gestionnaire délégué), ce qui explique peut-être pourquoi il ne fonctionne pas pour vous.
Une autre option pourrait être d'utiliser KVO sur
mapView.myLocation
, comme décrit ici: sur le positionnement de moi-même,quelques problèmesPar le chemin de votre exemple de code, vous accédez à
mapView.myLocation
avant de créer lemapView
, et donc le lieu serait toujours nul de toute façon.OriginalL'auteur Saxon Druce
Je viens de télécharger la nouvelle GoogleMap SDK Démo pour iOS. Voici ce que j'ai vu à partir du code source que la façon dont la "position Actuelle", est réalisé par l'intermédiaire d'KVO.
Espère que cela peut vous aider.
OriginalL'auteur TypingPanda
Juste au cas où quelqu'un veut DrDev excellente réponse rapide 3:
OriginalL'auteur agrippa