iPhone aktuális felhasználói hely koordinátái jelennek meg, (0,0)

szavazat
8

Próbálom, hogy a felhasználók aktuális szélességi és hosszúsági ezzel viewDidLoad módszerrel. A kapott térképet helyesen jelzi az aktuális helyét azonban a NSLog következetesen azt mutatják:

2009-09-19 16:45:29.765 Mapper[671:207] user latitude = 0.000000
2009-09-19 16:45:29.772 Mapper[671:207] user longitude = 0.000000

Bárki, aki tudja, mi vagyok hiányzik itt? Előre is köszönöm a segítséget!

- (void)viewDidLoad {
    [super viewDidLoad];
    [mapView setMapType:MKMapTypeStandard];
    [mapView setZoomEnabled:YES];
    [mapView setScrollEnabled:YES];
    [mapView setShowsUserLocation:YES];

    CLLocation *userLoc = mapView.userLocation.location;
    CLLocationCoordinate2D userCoordinate = userLoc.coordinate;

    NSLog(@user latitude = %f,userCoordinate.latitude);
    NSLog(@user longitude = %f,userCoordinate.longitude);
}
A kérdést 19/09/2009 21:50
a forrás felhasználó
Más nyelveken...                            


8 válasz

szavazat
9

A térkép nem próbálja meg a felhasználó tartózkodási helyét, amíg ez valójában jelenik meg, amennyire én tudom. A jó teszt hogy van, amikor nem kapsz a párbeszéd megkérdezi, hogy rendben az alkalmazás számára, hogy a felhasználó tartózkodási helyét? Az én tapasztalatom, hogy mindig jön csak a térkép mutatja a képernyőn.

A legjobb módja annak, hogy megközelíteni ezt a problémát, ha kell egy hely indításkor, hogy végrehajtsa a klasszikus Core Location felvezető kódot, és kap a helyet, hogy kezdetben. Akkor frissítéseket kapni onnan, ha a térkép, és kap további változások onnan (bár, ha szükség van folyamatos frissítéseket akkor jobb csak tartani a szokásos Core Location frissítéseket. Ha belegondolsz, ha van „mutatja felhasználó hely”engedélyezve van a térkép további használatát Core Location által az alkalmazás lényegében mentes, mivel a GPS lesz rúgva az egész idő alatt egyébként.

Válaszolt 20/09/2009 03:05
a forrás felhasználó

szavazat
4

Ha meg kell kérni a felhasználó koordinátorai viewDidLoad () metódus, akkor mindig ad 0,0 eredményt, hiszen még nem inicializált.

Meg kell venni egy pillantást a „Hol vagyok” minta kód formájában Apple site. Ez magyarázza, amire szüksége van. Be kell használni CLLocationManager osztályban. Akkor is szükség lesz az eljárás

*-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation*

Ezt a módszert fogják hívni minden alkalommal automatikusan, amikor a felhasználó tartózkodási helyét frissítik. Ha ön használ szimulátor, akkor ez a módszer csak egyszer hívja, és visszatér néhány alapértelmezett koordinátáit.

Remélem ez segít.

Válaszolt 21/09/2009 06:36
a forrás felhasználó

szavazat
2

A dokumentum CLLocation , ha a vízszintes vagy függőleges pontosság pontosság negatív, ez azt jelenti, hogy nem találja az értéket. Gyanítom, hogy az, ami itt történik. Tartsuk szem előtt, hogy ha csak nézni egyszer, akkor kapsz egy hozzávetőleges legutóbbi ismert tartózkodási hely előtt egyre jobb a pontosság miatt.

Vízszintes pontosság A koordináta szélességi és hosszúsági azonosítani a kör közepére, és ez az érték jelzi a sugara a körbe. A negatív érték azt jelzi, hogy a koordináta szélességi és hosszúsági érvénytelenek.

Válaszolt 19/09/2009 21:55
a forrás felhasználó

szavazat
1

Ahogy Kendall azt mondta, a MKMapView nincs felhasználói hely, amíg befejezi rakodási és a viewDidLoad módszer általában túl korai ezt kérik. Egy egyszerűbb módja, mint használ CoreLocation hogy végrehajtsa a MKMapViewDelegate módszer -(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation. Ez megadja a felhasználó tartózkodási helyét, amint ez található, anélkül, hogy kezelni tudja a CLLocationManager.

Válaszolt 08/01/2013 18:33
a forrás felhasználó

szavazat
1

Meg kell szereznie a koordinátát CoreLocation helyett MapKit. MapView megjeleníti a felhasználó tartózkodási helyét, miután tényleg kapott aktuális tartózkodási helyét. Mielőtt a hely határozza meg, a szélességi és hosszúsági beállítás értéke egyaránt 0 3

Meg kell teremteni a CLLocationManager példányazonosítója állítsa küldöttet. Értesítést fog kapni, ha a helymeghatározás.

Válaszolt 20/09/2009 06:17
a forrás felhasználó

szavazat
0

Próbáld ki ezt a

CLLocation *userLoc = mapView.userLocation.location;
CLLocationCoordinate2D userCoordinate = userLoc.coordinate;

NSLog(@"user latitude = %f",userCoordinate.latitude);
NSLog(@"user longitude = %f",userCoordinate.longitude);

ViewdidAppear: vagy hívja végre seletor után késedelem

Válaszolt 05/05/2014 12:32
a forrás felhasználó

szavazat
0

Ez a válasz bemutatja, hogyan kell beállítani a térkép egy felhasználó tartózkodási helyét:

HowTo inicializálja MKMapView egy adott felhasználó tartózkodási helyét?

Válaszolt 09/03/2010 16:52
a forrás felhasználó

szavazat
-1

Add, hogy ez a szakasz viewDidLoad

mapView.showsUserLocation = YES;
Válaszolt 02/05/2010 05:56
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more