Guide de développement
Local Navigation
- Présentation des services géodépendants
- Recherche d'une position
- Activation et interrogation des services de localisation sur le terminal
- Récupération d'une position avec le GPS
- Spécification du mode GPS
- Spécification du mode GPS à l'aide de JSR 179
- Spécification du mode GPS à l'aide d'extensions BlackBerry JSR 179
- Récupération d'informations de positionnement à l'aide du mode GPS assisté
-
Récupération d'un fournisseur de positionnement
- Récupérer un fournisseur de positionnement à l'aide de la classe LocationProvider
- Contrôle de la localisation à l'aide de la classe BlackBerryLocationProvider
- Contrôler la localisation à l'aide de la classe BlackBerryLocationProvider
- Échantillon de code : utilisation de la classe BlackBerryLocationProvider pour contrôler la localisation
- Récupérer un fournisseur de positionnement à l'aide de la classe BlackBerryLocationProvider
-
Récupération de la position d'un terminal BlackBerry
- Récupérer la position d'un terminal BlackBerry
- Échantillon de code : récupération de la position GPS d'un terminal BlackBerry
- Récupérer la position d'un terminal BlackBerry en spécifiant des demandes de position continues
- Échantillon de code : récupération de la position GPS d'un terminal BlackBerry à l'aide de demandes de position continues
- Récupération d'informations de positionnement à l'aide de la classe Location
- Récupérer des informations de positionnement à l'aide de la classe Location
- Échantillon de code : utilisation de la classe Location pour récupérer des informations de positionnement GPS
- Récupération d'informations de positionnement à l'aide de la classe BlackBerryLocation
- Récupérer des informations de satellite à l'aide de la classe BlackBerryLocation
- Échantillon de code : utilisation de la classe BlackBerryLocation pour récupérer des informations de satellite
- Modifier les critères pour recevoir des informations de positionnement
- Échantillon de code : modification des critères de récupération des informations de positionnement
- Traitement des erreurs
- Récupérer une position GPS à l'aide d'une page Web
- Récupération d'une position par géolocalisation
- Récupération de la position GPS optimale par GPS et géolocalisation
- Demande de mise à jour simultanée via GPS et la géolocalisation
- Géocodage et géocodage inversé
- Réception d'alertes de proximité par geofencing
- Identification de l'itinéraire ou de l'orientation
- Obtention du temps de trajet, de la distance et de l'heure de départ estimés
- Visualisation d'une position à l'aide de cartes
- Personnalisation de l'aspect d'une carte
- Intégration à BlackBerry Maps
- Pour plus d'informations
- Glossaire
- Envoi de commentaires
- Informations juridiques
Documentation produit
>
Documentation pour les développeurs
>
Guides de développement et référence API pour Java
>
Guide de développement
Location-Based Services - BlackBerry Java SDK - 7.0
Récupérer plusieurs positions GPS optimales
Les étapes suivantes indiquent comment créer une application d'interface utilisateur assurant la mise à jour continue de l'emplacement géographique en récupérant les positions GPS dès qu'elles sont disponibles ou dans le délai imparti spécifié. Si l'obtention de la position GPS est indisponible, une position de géolocalisation est renvoyée à la place.
Avant de commencer : vérifiez que le terminal BlackBerry ou que BlackBerry Smartphone Simulator prend en charge le GPS.
- Importez les classes et les interfaces requises.
import net.rim.device.api.gps.*; import net.rim.device.api.system.Application; import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; import javax.microedition.location.*;
- Créez le cadre d'application en développant la classe UiApplication. Créez une variable de type nombre entier et attribuez-lui la valeur 1 qui spécifie l'intervalle de mise à jour des coordonnées de position. Créez une variable de type EditField pour stocker les mises à jour de position qui s'affichent à l'écran. Dans main(), créez une instance de la nouvelle classe et appelez enterEventDispatcher() pour activer l'application et recevoir des événements. Dans le constructeur d'applications, créez une instance de la classe MultipleFixScreen, comme décrit à l'étape 7. Appelez setTitle() pour indiquer le titre de l'écran. Créez une instance de la classe EditField et ajoutez le champ à l'écran. Appelez startLocationUpdate(), comme décrit à l'étape 4, pour démarrer la récupération des mises à jour de position. Appelez pushScreen() pour afficher l'écran personnalisé de l'application.
public class MultipleFixDemo extends UiApplication { private static int _interval = 1; private EditField _status; public static void main(String[] args) { new MultipleFixDemo().enterEventDispatcher(); } public MultipleFixDemo() { MultipleFixScreen screen = new MultipleFixScreen(); screen.setTitle("Multiple Fix Demo"); _status = new EditField(Field.NON_FOCUSABLE); screen.add(_status); startLocationUpdate(); pushScreen(screen); } } - Créez une méthode updateLocationScreen qui appelle invokeLater() pour ajouter cette section de code à la file d'attente des événements de l'application. Créez une instance de la classe Runnable et transmettez-la comme paramètre à invokeLater(). Remplacez run() dans la définition de Runnable. Appelez setText() pour afficher les résultats à l'écran.
private void updateLocationScreen(final String msg) { invokeLater(new Runnable() { public void run() { _status.setText(msg); } }); } - Créez le cadre de la méthode startLocationUpdate. Créez un bloc try/catch pour indiquer les critères de récupération d'une position. Créez une instance de la classe BlackBerryCriteria en appelant BlackBerryCriteria(). Le mode d'emplacement par défaut est utilisé car aucun argument n'est transmis à BlackBerryCriteria(). Appelez enableGeolocationWithGPS() pour indiquer la récupération d'une position GPS si elle est disponible, ou la récupération d'une position de géolocalisation si l'obtention de la position GPS est indisponible. Dans le bloc catch, repérez une exception UnsupportedOperationException, qui indique que le mode de positionnement n'est pas pris en charge.
private void startLocationUpdate() { try { BlackBerryCriteria myCriteria = new BlackBerryCriteria(); myCriteria.enableGeolocationWithGPS(); catch (UnsupportedOperationException ue) { System.err.println("Require mode is unavailable"); System.err.println(ue); System.exit(0); } return; } - Dans le premier bloc try, créez un second bloc try/catch pour obtenir un fournisseur de positionnement. Appelez LocationProvider.getInstance() avec l'objet BlackBerryCriteria pour obtenir un fournisseur de positionnement. Créez une instance de Runnable et transmettez-la comme paramètre à invokeLater(). Remplacez run() dans la définition de Runnable et affichez un message qui indique que le fournisseur de positionnement n'a pas pu être récupéré. Appelez setLocationListener() en transmettant la valeur d'intervalle, la valeur de délai et l'âge maximal comme paramètres pour l'enregistrement d'écouteur lorsqu'un fournisseur de positionnement est disponible. Dans le bloc catch, repérez une exception LocationException, qui indique que le fournisseur de positionnement n'est pas pris en charge.
try { BlackBerryLocationProvider myProvider = (BlackBerryLocationProvider) LocationProvider.getInstance(myCriteria); if ( myProvider == null ) { Runnable showUnsupportedDialog = new Runnable() { public void run() { Dialog.alert("Location service unsupported, exiting..."); System.exit( 1 ); } }; invokeLater( showUnsupportedDialog ); } else { myProvider.setLocationListener(new LocationListenerImpl(), _interval, 1, 1); } } catch (LocationException le) { System.err.println("Failed to retrieve a location provider"); System.err.println(le); System.exit(0); } - Créez une seconde classe déployant LocationListener. Déployez locationUpdated() pour fournir les mises à jour de position. Créez une instruction if pour vérifier la validité de la position. Si la position est valide, récupérez les coordonnées pour la longitude, la latitude et l'altitude en appelant getLongitude(), getLatitude() et getAltitude() respectivement. Créez une instance de la classe StringBuffer et ajoutez les coordonnées obtenues au tampon. Appelez updateLocationScreen() pour afficher les coordonnées obtenues à l'écran.
private class LocationListenerImpl implements LocationListener { public void locationUpdated(LocationProvider provider, Location location) { if(location.isValid()) { double longitude = location.getQualifiedCoordinates() .getLongitude(); double latitude = location.getQualifiedCoordinates() .getLatitude(); float altitude = location.getQualifiedCoordinates() .getAltitude(); StringBuffer sb = new StringBuffer(); sb.append("Longitude: "); sb.append(longitude); sb.append("\n"); sb.append("Latitude: "); sb.append(latitude); sb.append("\n"); sb.append("Altitude: "); sb.append(altitude); sb.append(" m"); MultipleFixDemo.this.updateLocationScreen(sb.toString()); } } public void providerStateChanged(LocationProvider provider, int newState) { // Not implemented } } - Créez le cadre de l'écran personnalisé en développant la classe MainScreen. Dans le constructeur d'écran, appelez super() pour créer un menu par défaut. Créez une instance de RichTextField pour afficher un message d'instruction. Appelez add() pour ajouter RichTextField à l'écran.
private final static class MultipleFixScreen extends MainScreen { MultipleFixScreen() { super(DEFAULT_CLOSE | DEFAULT_MENU); RichTextField instructions = new RichTextField( "Waiting for location update...",Field.NON_FOCUSABLE); this.add(instructions); } }
Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.