2016-04-18 1 views
1

J'essaie de réaliser une petite application dans le nom de code un pour iOS. Je montre une carte Google dans un dialogue. Je veux montrer mon emplacement réel et réel sur la carte intégrée. Je suis montré sur la carte près de 0N 0E - quelque part dans l'océan. Ici est le code que je suis en utilisant:l'emplacement est faux sur la carte dans iOS

private void putMeOnMap(MapComponent map) { 
    Location loc; 
    try { 
     loc = LocationManager.getLocationManager().getCurrentLocation(); 
     lastLocation = new Coord(loc.getLatitude(), loc.getLongitude()); 
     Image i = Image.createImage(10, 10, 0xff00ff00); //("/red_pin.png"); 
     PointsLayer pl = new PointsLayer(); 
     pl.setPointIcon(i); 
     PointLayer p = new PointLayer(lastLocation, "aktueller Standort", i); 
     p.setDisplayName(true); 
     pl.addPoint(p); 
     pl.addActionListener(new ActionListener() { 

      public void actionPerformed(ActionEvent evt) { 
       PointLayer p = (PointLayer) evt.getSource(); 
       System.out.println("pressed " + p); 

       Dialog.show("Details", "Du bist hier" + "\n" + p.getLatitude() + "|" + p.getLongitude(), "Ok", null); 
      } 
     }); 
     map.addLayer(pl); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 


} 

Merci pour l'aide

Répondre

0

Vous devez explicitement demander et accepter le suivi de localisation lors de l'utilisation dans une application iOS.

Il ressemblera à quelque chose comme ceci:

locationManager = CLLocationManager() 
    locationManager.delegate = self 
    locationManager.locationServicesEnabled 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest 
    locationManager.requestAlwaysAuthorization() 

    ... 

    var shouldIAllow = false 

    switch status { 
    case CLAuthorizationStatus.Restricted: 
     locationStatus = "Restricted Access to location" 
    case CLAuthorizationStatus.Denied: 
     locationStatus = "User denied access to location" 
    case CLAuthorizationStatus.NotDetermined: 
     locationStatus = "Status not determined" 
    default: 
     locationStatus = "Allowed to location Access" 
     shouldIAllow = true 
    } 

    if (shouldIAllow == true) { 
     NSLog("Location to Allowed") 
     // Start location services 
     locationManager.startUpdatingLocation() 
    } else { 
     NSLog("Denied access: \(locationStatus)") 
    } 
+0

Merci pour votre idée, mais j'utilise le code Java pas rapide: j'utilise le nom de code un et développer en Java pour iOS .. –

+0

Bien sûr, mais l'idée est la même. –

0

Je suggère d'utiliser native mapping qui ressemble beaucoup mieux sur l'appareil et met également en évidence votre emplacement en option. Vous devez également utiliser getCurrentLocationSync() plutôt que getCurrentLocation(). Notez que vous devez définir l'indicateur de construction ios.locationUsageDescription comme expliqué here.