2010-06-23 3 views
7

i eine App erschaffe, die orts-Standort auf iphone NUR vom GPS erhalten - nicht das WiFi-Netzwerk

alles benutzt, funktioniert swimmingly außer einem Dinge

wenn ich mein iPhone zu meinem lokalen nach Hause kommen verbindet WiFi-Netzwerk und anstatt meine Position mit dem GPS im Telefon bekommen es versucht, es zu bekommen, indem herauszufinden, wo mein Wifi-Netzwerk verbunden ist - wenn ich meine Wifi ausschalten, hält es einen genauen Standort-Punkt

sobald Mein Telefon ist mit meinem WiFi-Netzwerk verbunden. Es beginnt mit der Meldung, dass mein Standort mehrere km/Meilen von meinem tatsächlichen Punkt entfernt ist.

würde ich meine App nicht wie das Wi-Fi-Netzwerk zu verwenden, um meinen orts-

ist es eine Möglichkeit, ich eine kann- zu versuchen, bekommen. sagen Sie, ob ein Standortpunkt vom GPS abgeleitet wurde, damit ich Orte ignorieren kann, die aus dem WLAN-Netzwerk stammen. b. stop location services spring rüber zu wifi für location

Antwort

2

Anders als bitten den Benutzer, sein Wifi auszuschalten, gibt es keine dokumentierte Möglichkeit, wie Sie den Standortmanager zwingen können, GPS über Wifi zu verwenden. Es könnte möglich sein, mit privaten API, aber das würde Sie auch aus dem App Store abgelehnt.

+0

hey dave- danke für diese antwort- ich hatte angst davor- ich konnte nichts finden, nachdem ich das netz durchforstet habe - in der hoffnung, dass jemand einen schlauen weg ohne app-store-ablehnung hat - am ende muss irgendwas machen Zeit-/Entfernungsberechnung zwischen den Punkten, um zu sehen, ob der neue Ort physikalisch undurchführbar ist, aber das wäre eine ziemlich schlechte Lösung - Prost, Dave. – dave

1

Sie können cLLocationAccuracy.desiredAccuracy = kCLLocationAccuracyBest setzen und sehen, ob das funktioniert. Es sollte versucht werden, GPS-Nutzung zu beschränken, aber das ist nicht 100% garantiert.

+0

hey jamone- danke für diese Antwort- yeah ich habe es am besten eingestellt, aber die locations services scheinen WiFi zu bevorzugen über die gps-cheers, dave. – dave

-5

A-GPS = GPS + Zellturmtriangulation. Es gibt keine WLAN-Positionierung.

+1

hey adrian, danke für diese antwort - mein iphone gibt mir den gleichen standort zu hause wie mein ipod, und mein ipod hat keine gps oder zelle reception- im vermutung mein iphone ist greifen den standort von der gleichen stelle wie mein ipod wird es von - ich sollte beachten: ich bekomme keinen telefonempfang in meinem haus (blechdach lol) - prost, dave- – dave

+0

Das A-GPS bedeutet nur das zellensignal kann verwendet werden, um die GPS-sperre zu beschleunigen. Es beeinflusst nicht die Positionsgenauigkeit des GPS. Und ja es wird WLAN-Location ebenfalls genutzt. – jamone

+0

@jamone Können Sie WI-FI definieren? Bitte schauen Sie zuerst, was AGPS bedeutet und sagen Sie mir nicht, dass Ihr Heim-WLAN-Router Ihnen Ihre Position auf dem iPhone mitteilen kann. Und JA ... Die Zellentriangulation wird verwendet, um eine bessere Positionierung zu erreichen. –

5

Nun, ich habe einige Spiele um

einige Apfel-Dokumentation, die besagen, dass [location verticalAccuracy] ein Gerät mit GPS benötigt.

Also steckte ich diesen Code in (verkürzt) und auf der Grundlage des begrenzten Test ich getan habe, scheint es zu tun, was ich will:

if (([location horizontalAccuracy] > 0) && ([location verticalAccuracy] > 0)){ 
    //report location here 
} 

Dank alle für Ihre Antworten.

0

Die ungenauen GPS-Koordinaten werden vom iPhone nicht nur über das WLAN oder Mobilfunknetze erhalten, sondern auch die Echt-Koordinaten mit Genauigkeitslevel> 100 Meter.

Was ich benutze, ist die Linie zu setzen: if (newLocation.horizontalAccuracy < 0 || newLocation.horizontalAccuracy > 50) return;

als die erste Zeile in der didUpdateToLocation, zu ungenauen Koordinaten herauszufiltern.

Das 'Standort-Alter', d. H. NSTimeInterval locationAge=[locTimestamp timeIntervalSinceNow];, dient NICHT dazu, zwischengespeicherte Koordinaten loszuwerden.

1

Der Grund, warum WIFI zu Hause verwendet wird, ist, dass es keine direkte Sicht auf die GPS-Satelliten im Weltraum gibt - anstatt Ihnen keine Standortdaten zu geben, verwendet es die nächstbeste verfügbare Quelle.