Je veux les coordonnées GPS d'un DJI Drone dans iOS. J'ai besoin de la méthode ou de la propriété pour obtenir la localisation GPS lors du décollage.Quelle est la fonction utilisée pour Obtenir l'emplacement exact du GPS Coordonnées de DJI Drone pour iOS
1
A
Répondre
1
Vous avez essentiellement deux options:
1/Délégation sur DJIFlightController aka DJIFlightControllerDelegate Protocol
Vous mettrez en œuvre cette méthode et obtenir un objet DJIFlightControllerState qui aura un lieu:
- (void)flightController:(DJIFlightController *_Nonnull)fc didUpdateState:(DJIFlightControllerState *_Nonnull)state {
CLLocation *myCurrentLocation = state.aircraftLocation;
// Do something here.
}
2/Utilisation de l'interface à clé et de cette clé DJIFlightControllerParamAircraftLocation (voir note de clé SDK) Cette clé vous enverra une valeur qui contient un CLLocation.
Ensuite, vous pouvez soit faire un simple obtenir
guard let locationKey = DJIFlightControllerKey(param: DJIFlightControllerParamAircraftLocation) else {
NSLog("Couldn't create the key")
return
}
guard let keyManager = DJISDKManager.keyManager() else {
print("Couldn't get the keyManager")
// This will happen if not registered
return
}
if let locationValue = keyManager.getValueFor(locationKey) {
let location = locationValue.value as! CLLocation
// do something
}
ou écouter toutes les mises à jour
guard let locationKey = DJIFlightControllerKey(param: DJIFlightControllerParamAircraftLocation) else {
NSLog("Couldn't create the key")
return
}
guard let keyManager = DJISDKManager.keyManager() else {
print("Couldn't get the keyManager")
// This will happen if not registered
return
}
keyManager.startListeningForChanges(on: locationKey, withListener: self) { (oldValue, newValue) in
if newValue != nil {
let location = newValue!.value as! CLLocation
// do something
}
}
Il suffit de ne pas oublier d'arrêter d'écouter lorsque vous avez terminé.
J'espère que cela aide. PS: J'ai mélangé Swift et Obj-C parce que vous pouvez utiliser l'un ou l'autre.