Erste Höhe(Höhe über Meeresspiegel) von meinem Standort in iphone SDK
Ich versuche, die Höhe meiner Position in meiner Anwendung. Aber jedes mal, wenn ich versuche altitude
Eigenschaft von CLLocation
Objekt bin ich immer 0.00
als Ergebnis.
Googelte ich nach meiner Abfrage und ich habe eine ähnliche Frage hier und hier. Dieser link ist zu sagen, dass, wenn ich auf CLLocation mit wifi oder cell-tower wird es null sein. Selbst wenn ich versuchen desireAccuracy
zum besten, als auch Sie nicht, stellen Sie sicher, dass die app nutzt GPS. Es ist auch zu sagen, dass, wenn ich bin indoor, dass ich nicht in der Lage, Zugriff auf GPS.
Ich in vielen Fällen es sein nicht sicher, dass die app nutzt GPS nur. Ich will Weg, für immer Höhe von wifi oder Zelle Turm zu. Für die, die ich gegoogelt und ich habe Google Earth API aber ich denke, dies ist für Microsoft .net-Technologie nur.
Nun nach dieser situation, die ich denke, für eine Lösung, die ich erstellen kann ein web service in Microsoft-Technologie und pass meine Lage, und ich kann die Höhe als Antwort-aber ich will nicht, dies zu tun.
Kann mir jemand empfehlen, wie man meine Position, die die Höhe von ios. Gibt es eine Möglichkeit, oder nicht? Wenn ja, als wir Sie bitten, mich in die richtige Richtung.
Vielen Dank im Voraus.
Edit1
Ich verwendet CLLocationManager
für die Aktualisierung der Lage-und wenn ich meinen Ort ich brauche die Höhe.
Edit2
Laut @fishinear Antwort, ich habe versucht folgenden code:
- (void)viewDidLoad
{
[super viewDidLoad];
manager = [[CLLocationManager alloc] init];
[manager setDesiredAccuracy:kCLLocationAccuracyBestForNavigation];
[manager setDistanceFilter:kCLDistanceFilterNone];
[manager setDelegate:self];
[manager startUpdatingLocation];
//Do any additional setup after loading the view, typically from a nib.
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
if ([newLocation verticalAccuracy] >= 0) {
NSLog(@"Altitude = %lf",newLocation.altitude);
}
NSLog(@"Vertical Accuracy : %lf",newLocation.verticalAccuracy);
}
verticalAccuracy
ist immer -1
. Es ist nicht zu ändern, selbst nach dem ausführen der app, um die letzten 30 Minuten. Ich bin runnin ios 4.3.2 auf meinem 3GS. Ich bin innen, so dass ich denke, es ist nicht Zugriff auf GPS, mit diesem code auch.
InformationsquelleAutor Kapil Choubisa | 2012-05-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen Android - Get Höhe Von Längen-und Breitengrad? gibt es eine Android-Lösung, aber es ist leicht anpassbar an iOS.
Antwort-ist die Verwendung der USGS Höhe Query Web Service
Aus der top-Antwort, im Grunde senden Sie einfach eine HTML-Anfrage an:
Dann kann man analysieren, aus der Antwort-text aus zwischen den
<double>...</double>
tagsEdit:
Es sieht aus wie Sie könnte versuchen erhalten Höhe außerhalb der Vereinigten Staaten.
Google Maps API bietet eine Elevation service und Dokumentation an https://developers.google.com/maps/documentation/javascript/elevation
22.998851594142938
&72.5317382812553173828125
beziehungsweise, und die Antwort ist<double>-1.79769313486231E+308</double>
. Was ich verstehe, mit diesem? Wie man die Höhe?danke. Ihr bearbeitet die Antwort hat geholfen 🙂 developers.google.com/maps/documentation/javascript/elevation dies ist der, den ich suchte.
InformationsquelleAutor nvuono
Zur Beantwortung deiner ursprünglichen Frage:
GPS wird immer verwendet werden, wenn Sie desiredAccuracy am Besten oder BestForNavigation, und distanceFilter zu kCLDistanceFilterNone bei der Konfiguration des CLLocationManager. Sie werden dann erhalten auch die Höhenwerte in der CLLocation Veranstaltung.
Allerdings dauert es eine kurze Weile, bevor das GPS hat als "gesperrt", um genügend Sateliten zu können, melden die Höhe. Während dieser Zeit wird es Bericht CLLocation Veranstaltungen ohne Höhenwerte. Daher sollten Sie ignorieren die ersten paar Ereignisse, bis die verticalAccuracy-Wert ist gut genug für Sie. Überprüfen Sie auch, ob der timestamp, weil manchmal der erste CLLocation Veranstaltung ist eine alte.
Überprüfen Sie die verticalAccuracy-Feld in CLLocation. Zeigt, dass die Genauigkeit der Höhe, und ist negativ, wenn die Höhe nicht bestimmt war.
Überprüfen Sie meine
edit2
in Frage. Implementiert habe ich Ihre Anregung aber es hat nicht funktioniert.Haben Sie überprüft, dass die Ortungsdienste sind eingeschaltet ("on" für diese app?
Sie sagen, dass Sie drinnen sind. Wenn drinnen, ist das GPS möglicherweise Probleme haben, "sehen" genug Satelliten zur Bestimmung einer Höhe. Versuchen Sie es im freien erst, wenn er dort arbeitet, dann ist das die Ursache.
InformationsquelleAutor fishinear