Kompass True Rubrik iPhone/iPad
Ich habe ein problem, auf das/den iPhone /iPad-Kompass-Entwicklung.
Den trueHeading stammt aus der CLHeading immer geben Sie mir die '-1' Wert, ich bin hier hängengeblieben. Hier ist mein code:
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.delegate = self;
self.locationManager.headingFilter = 0.5; //1 degrees
[self.locationManager startUpdatingHeading];
Fand ich auch etwas aus, etwas, das ist, wenn ich auf die map-app oder Kompass-app, die nutzen die Lage, Sachen, die trueHeading Wert plötzlich korrekt gelesen. Ich Frage mich, was die Ursache ist, keine Ahnung? Es passieren auf beiden iPhone4 und auf dem iPad.
Es auch passieren, wenn ich aus der Ortungsdienste in den Einstellungen und re-aktivieren Sie es, es wird nicht gelesen werden die richtigen trueHeading Wert, ich Frage mich, weil die Ortungsdienste nicht aktivieren, indem Sie die app, die ich erstellen?
anyway, ich danke im Voraus
---Meine Lösung---
siehe unten.
- Machst du das auf einem Gerät, auf dem ein Kompass (z.B. iPhone 4)?
- Wenn Sie das Kontrollkästchen [CLLocationManager headingAvailable], was es zurückkehren würde?
- Siehe meine Antwort...
- Ich auf dem ipad und iphone4
Du musst angemeldet sein, um einen Kommentar abzugeben.
zu vermeiden, wird die überschrift immer wieder -1.000000 nicht NUR laufen startUpdatingHeading aber laufen startUpdatingLocation zusammen, das hilft.
Versuchen Sie es mit dieser...
und danach CLLocationManager delegieren Aufrufe von Methoden
Aber diese Codierung funktioniert auf dem Gerät nicht in den simulator...
Happy coding..
---Meine Lösung---
Was ich Tat, war, fügen Sie in der
[self.locationManager startUpdatingLocation]
vor oder nach der[self.locationManager startUpdatingHeading];
(wenn Location Services ausgeschaltet ist & re-aktivieren von Einstellungen). Ich bin nicht sicher, dies ist eine gute Lösung, aber das ist, was ich getan habe damit es funktioniert, wenn Sie eine bessere Lösung bitte teilen.Hatte ich einige Schwierigkeiten mit dem location manager mich und fand heraus, dass für mich es half trennen Sie das iPhone vom computer aus bei der Prüfung. Irgendwie ist die Kalibrierung Warnung nur tauchte nach dem herausziehen des iPhone.
Hatte ich das gleiche problem. Ich zog startUpdatingHeading in eine button-Aktion, dann zog es Sie zurück zu, wo die CLLocationManager zugeordnet wird -- wo es war in Ordnung arbeiten-und es begann der Rückkehr nur -1.
Ich mein iPad neu gestartet und es begann wieder zu arbeiten. Hoffentlich bleibt es so.
Edit: NÖ, ist es nicht so bleiben. Ich musste startUpdatingLocation zu. Wird dies nicht zermürben die Batterie eigentlich? Ich desiredAccuracy zu kCLLocationAccuracyThreeKilometers, weil ich mich nicht mit Standort-Daten sowieso.
Einem WAHREN Lesen erfordert die Kenntnis der magnetischen Abweichung, die für den Ort, wo Sie mit dem Kompass. Aus der bisherigen Diskussion scheint zu sein, dass die Funktion, korrigiert die wahre Richtung von der magnetischen Richtung braucht Ihre Lage für die Erlangung der Wert für "variation". Wenn Sie nicht wie zu verwenden der Lage, GPS-Informationen in den code, schlage ich die Lektüre der magnetischen Lesen und korrigieren Sie den Wert, indem Sie sich. Sie benötigen, um die Unterschiede für die gewünschte Position zuerst, dann gelten die folgende Formel: T=M ± V, wobei T die wahre Richtung, M die Kompass die magnetischen lese-und V ist die variation. Verwenden Sie "+" für Osten und "-" für West. Ich fand das so dass die web-site bieten die missweisung(magnetische Deklination) für jede benötigte Position: http://www.geomag.nrcan.gc.ca/calc/mdcal-eng.php.
Wenn die Ortungsdienste ausgeschaltet sind, die
didUpdateHeading delegate method
gibt nur die magnetische überschrift. Sie können es nach Ihren Bedürfnissen. Laut Apple docs..Arbeit an diesem problem jetzt. Ich kann updates von Core-Motion-wenn ich mit SpriteKit. Es geht darum, dass in der Lage, eine Funktion aufzurufen, kontinuierlich einmal wie ein frame (1/60 Sekunde) oder alle paar frames. Ohne mit SpriteKit, die Dokumentation sagt, rufen die updates innerhalb einer closure, was ich davon ausgehen, werden auf Ihr Gewinde selber, und bis zu Ihnen, um Sie freizugeben.
Gibt es einen Algorithmus für die Konvertierung der magnetometer-Messungen, um den tatsächlichen Grad in Bezug auf den geografischen Norden. Bild einer Grafik, die aussieht wie die time-domain Funktion von Wechselstrom-und Sie werden sehen, dass die Interpolation der Daten ist eine einfache Frage der Anwendung der Maxwell-Gleichungen. Hier ist ein Beispiel, honeywell