SDK et bibliothèques Amazon Location - Amazon Location Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

SDK et bibliothèques Amazon Location

Le SDK Amazon Location est un ensemble de bibliothèques open source qui fournissent des fonctionnalités utiles pour le développement d'applications Amazon Location. Les fonctionnalités suivantes sont incluses :

  • Client Amazon Location : les objets Amazon Location du AWS SDK v3 sont regroupés et empaquetés pour faciliter leur utilisation dans le développement Web.

  • Authentification : l'utilitaire d'authentification simplifie l'authentification (à l'aide d'Amazon Cognito ou de clés API) lors de la création d'une page Web ou d'une application JavaScriptiOS ou Android pour Amazon Location Service.

  • Suivi — Les SDK de suivi mobile sont disponibles pour iOS et Android. Ce SDK permet aux applications mobiles d'interagir plus facilement avec Amazon Location Trackers.

  • Fonctions Amazon Location GeoJSON : les utilitaires de conversion GeoJSON facilitent la conversion entre les données au format GeoJSON standard et les formats Amazon Location API.

Comment commencer à utiliser le SDK Amazon Location

Le SDK Amazon Location est un ensemble de fonctions qui peuvent simplifier l'utilisation d'Amazon Location Service dans une application. Vous pouvez installer et importer ces fonctions dans votre JavaScript application. Les sections suivantes décrivent le client Amazon Location, ainsi que les bibliothèques d'authentification et d'assistance GeoJSON.

Client Amazon Location

Avec le AWS SDK v3, le SDK est séparé par service. Vous pouvez installer uniquement les pièces dont vous avez besoin. Par exemple, pour installer le client Amazon Location et le fournisseur d'informations d'identification pour Amazon Cognito, utilisez les commandes suivantes.

npm install @aws-sdk/client-location npm install @aws-sdk/credential-providers

Afin de faciliter l'utilisation d'Amazon Location Service dans les applications d'interface JavaScript Web, AWS fournit un ensemble hébergé comprenant la bibliothèque Amazon Location et le fournisseur d'informations d'identification. Pour utiliser le client groupé, ajoutez-le à votre code HTML dans une balise de script, comme suit :

<script src="https://unpkg.com/@aws/amazon-location-client@1.x/dist/amazonLocationClient.js"></script>
Note

Le package est maintenu à jour et rétrocompatible pour faciliter son utilisation. L'utilisation de cette balise de script ou de l'installation de NPM permet toujours d'obtenir la dernière version.

JavaScript Aide à l'authentification

L'assistant JavaScript d'authentification Amazon Location simplifie l'authentification lorsque vous effectuez des appels à l'API Amazon Location depuis votre JavaScript application. Cet assistant d'authentification vous aide spécifiquement lorsque vous utilisez Amazon Cognito ou des clés d'API comme méthode d'authentification. Il s'agit d'une bibliothèque open source disponible sur GitHub https://github.com/aws-geospatial/ amazon-location-utilities-auth -helper-js.

Note

La prise en charge d'Amazon Cognito dans l'assistant d'authentification ne prend pas en charge la fonctionnalité d'identités fédérées d'Amazon Cognito.

Montage

Vous pouvez utiliser les bibliothèques avec une installation locale, si vous utilisez un système de compilation tel que Webpack, ou en incluant des JavaScript bundles prédéfinis avec des <script> balises dans votre code HTML.

  • Utilisez la commande suivante pour installer la bibliothèque à l'aide de NPM :

    npm install @aws/amazon-location-utilities-auth-helper
  • Utilisez la commande suivante dans votre fichier HTML pour charger le script :

    <script src="https://unpkg.com/@aws/amazon-location-utilities-auth-helper@1.x/dist/amazonLocationAuthHelper.js"></script>

Importer

Pour utiliser une fonction spécifique dans votre JavaScript application, vous devez importer cette fonction. Le code suivant est utilisé pour importer la fonction withIdentityPoolId dans votre application.

import { withIdentityPoolId } from '@aws/amazon-location-utilities-auth-helper';

Fonctions d'authentification

Les aides à l'authentification Amazon Location incluent les fonctions suivantes qui renvoient un AuthHelper objet :

  • async withIdentityPoolId( identityPoolId: string): AuthHelper— Cette fonction renvoie un AuthHelper objet, initialisé pour fonctionner avec Amazon Cognito

  • async withAPIKey( API_KEY: string): AuthHelper— Cette fonction renvoie un AuthHelper objet, initialisé pour fonctionner avec les clés d'API.

L'AuthHelperobjet fournit les fonctions suivantes :

  • AuthHelper.getMapAuthenticationOptions()— Cette fonction de l' AuthHelper objet renvoie un JavaScript objet avec le transformRequest qui peut être utilisé avec les options cartographiques dans MapLibre JS. Fourni uniquement lors de l'initialisation avec un pool d'identités.

  • AuthHelper.getLocationClientConfig()— Cette fonction de l' AuthHelper objet renvoie un JavaScript objet avec le credentials qui peut être utilisé pour initialiser a. LocationClient

  • AuthHelper.getCredentials()— Cette fonction de l' AuthHelper objet renvoie les informations d'identification internes d'Amazon Cognito. Fourni uniquement lors de l'initialisation avec un pool d'identités.

Exemple : Initialisation d'un objet MapLibre cartographique avec Amazon Cognito, à l'aide d'un AuthHelper

import { withIdentityPoolId } from '@aws/amazon-location-utilities-auth-helper'; const authHelper = await withIdentityPoolId("identity-pool-id"); // use Cognito pool id for credentials const map = new maplibregl.Map({ container: "map", // HTML element ID of map element center: [-123.1187, 49.2819], // initial map center point zoom: 16, // initial map zoom style: https://maps.geo.region.amazonaws.com/maps/v0/maps/mapName/style-descriptor', // Defines the appearance of the map ...authHelper.getMapAuthenticationOptions(), // Provides credential options required for requests to Amazon Location });

Exemple : Initialisation d'un objet MapLibre cartographique avec une clé d'API (AuthHelperinutile dans ce cas)

const map = new maplibregl.Map({ container: "map", // HTML element ID of map element center: [-123.1187, 49.2819], // initial map center point zoom: 16, // initial map zoom style: https://maps.geo.region.amazonaws.com/maps/v0/maps/${mapName}/style-descriptor?key=api-key-id', });

Exemple : initialisez le client Location à partir du AWS SDK pour JS, à l'aide d'Amazon Cognito et AuthHelper

Cet exemple utilise le AWS SDK pour la JavaScript version 3.

import { withIdentityPoolId } from '@aws/amazon-location-utilities-auth-helper'; const authHelper = await withIdentityPoolId("identity-pool-id"); // use Cognito pool id for credentials //initialize the Location client: const client = new LocationClient({ region: "region", ...authHelper.getLocationClientConfig() // sets up the Location client to use the Cognito pool defined above }); //call a search function with the location client: const result = await client.send(new SearchPlaceIndexForPositionCommand({ IndexName: "place-index", // Place index resource to use Position: [-123.1187, 49.2819], // position to search near MaxResults: 10 // number of results to return });

Exemple : initialisez le client Location à partir du AWS SDK pour JS, à l'aide d'une clé d'API et AuthHelper

Cet exemple utilise le AWS SDK pour la JavaScript version 3.

import { withAPIKey } from '@aws/amazon-location-utilities-auth-helper'; const authHelper = await withAPIKey("api-key-id"); // use API Key id for credentials //initialize the Location client: const client = new LocationClient({ region: "region", ...authHelper.getLocationClientConfig() // sets up the Location client to use the API Key defined above }); //call a search function with the location client: const result = await client.send(new SearchPlaceIndexForPositionCommand({ IndexName: "place-index", // Place index resource to use Position: [-123.1187, 49.2819], // position to search near MaxResults: 10 // number of results to return });

Aides à la conversion GeoJSON

Les aides à la conversion Amazon Location GeoJSON fournissent des outils permettant de convertir les types de données Amazon Location Service vers et depuis le format GeoJSON standard. GeoJSON est utilisé, par exemple, pour MapLibre afficher des données géographiques sur la carte. Il s'agit d'une bibliothèque open source disponible sur GitHub https://github.com/aws-geospatial/ amazon-location-utilities-datatypes -js.

Montage

Vous pouvez utiliser les bibliothèques avec une installation locale, comme Webpack, ou en incluant des JavaScript bundles prédéfinis avec des <script> balises dans votre code HTML.

  • Utilisez la commande suivante pour installer la bibliothèque à l'aide de NPM.

    npm install @aws/amazon-location-utilities-datatypes
  • Utilisez la commande suivante dans votre fichier HTML pour charger le script :

    <script src="https://unpkg.com/@aws/amazon-location-utilities-datatypes@1.x/dist/amazonLocationDataConverter.js"></script>

Importer

Pour utiliser une fonction spécifique dans votre JavaScript application, vous devez importer cette fonction. Le code suivant est utilisé pour importer la fonction placeToFeatureCollection dans votre application.

import { placeToFeatureCollection } from '@aws/amazon-location-utilities-datatypes';

Fonctions de conversion GeoJSON

Les aides à la conversion Amazon Location GeoJSON incluent les fonctions suivantes :

  • placeToFeatureCollection(place: GetPlaceResponse | searchPlaceIndexForPositionResponse | searchPlaceIndexForTextResponse, keepNull: boolean): Feature— Cette fonction convertit les réponses des fonctions de recherche de lieux en un fichier GeoJSON FeatureCollection avec une ou plusieurs entités ponctuelles.

  • devicePositionToFeatureCollection(devicePositions: GetDevicePositionResponse | BatchGetDevicePositionResponse | GetDevicePositionHistoryResponse | ListDevicePositionsResponse, keepNull: boolean)— Cette fonction convertit les réponses des fonctions de position du dispositif de suivi en un fichier GeoJSON FeatureCollection avec une ou plusieurs entités ponctuelles.

  • routeToFeatureCollection(legs: CalculateRouteResponse): FeatureCollection— Cette fonction convertit les réponses de la fonction de calcul d'itinéraire en un fichier GeoJSON FeatureCollection avec une seule MultiStringLine entité. Chaque étape de l'itinéraire est représentée par une LineString entrée dans le MultiStringLine.

  • geofenceToFeatureCollection(geofences: GetGeofenceResponse | PutGeofenceRequest | BatchPutGeofenceRequest | ListGeofencesResponse): FeatureCollection— Cette fonction convertit la demande ou la réponse des fonctions de géofence en un fichier FeatureCollection GeoJSON avec des entités polygonales. Il peut convertir les géofences à la fois dans la réponse et dans la demande, ce qui vous permet d'afficher les géofences sur une carte avant de les télécharger avec ou. PutGeofence BatchPutGeofence

    Cette fonction convertira une géofence circulaire en une entité dotée d'un polygone approximatif, mais comportera également des propriétés « centre » et « rayon » permettant de recréer la géofence circulaire, si nécessaire (voir la fonction suivante).

  • featureCollectionToGeofences(featureCollection: FeatureCollection): BatchPutGeofenceRequestEntry[]— Cette fonction convertit un fichier GeoJSON FeatureCollection contenant des entités polygonales en un tableau d' BatchPutGeofenceRequestEntry objets, de sorte que le résultat puisse être utilisé pour créer une demande à. BatchPutGeofence

    Si une entité FeatureCollection présente les propriétés « centre » et « rayon », elle sera convertie en une entrée de demande de géofence circulaire, sans tenir compte de la géométrie du polygone.

Exemple : conversion des résultats de recherche en couche de points dans MapLibre

Cet exemple utilise le AWS SDK pour la JavaScript version 3.

import { placeToFeatureCollection } from '@aws/amazon-location-utility-datatypes'; ... let map; // map here is an initialized MapLibre instance const client = new LocationClient(config); const input = { your_input }; const command = new searchPlaceIndexForTextCommand(input); const response = await client.send(command); // calling utility function to convert the response to GeoJSON const featureCollection = placeToFeatureCollection(response); map.addSource("search-result", featureCollection); map.addLayer({ id: "search-result", type: "circle", source: "search-result", paint: { "circle-radius": 6, "circle-color": "#B42222", }, });

SDK d'authentification mobile Android

Ces utilitaires vous aident à vous authentifier lorsque vous passez des appels à l'API Amazon Location Service depuis vos applications Android. Cela est particulièrement utile lorsque vous utilisez Amazon Cognito ou des clés d'API comme méthode d'authentification.

Le SDK d'authentification mobile Android est disponible sur github : Amazon Location Service Mobile Authentication SDK for Android. En outre, le SDK d'authentification mobile et le AWS SDK sont disponibles dans le référentiel AWS Maven.

Installation

Pour utiliser le SDK d'authentification mobile, ajoutez les instructions d'importation suivantes à votre build.gradle fichier dans Android Studio.

implementation("software.amazon.location:auth:0.0.1") implementation("com.amazonaws:aws-android-sdk-location:2.72.0")

Fonctions d'authentification

Le SDK d'assistance à l'authentification possède les fonctions suivantes :

  • authHelper.authenticateWithApiKey("My-Amazon-Location-API-Key"): LocationCredentialsProvider: Cette fonction renvoie une valeur LocationCredentialsProvider initialisée pour fonctionner avec une clé d'API.

  • authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id"): LocationCredentialsProvider: Cette fonction renvoie une valeur LocationCredentialsProvider initialisée pour fonctionner avec un pool d'identités Amazon Cognito.

Utilisation

Pour utiliser le SDK dans votre code, importez les classes suivantes :

import com.amazonaws.services.geo.AmazonLocationClient import software.amazon.location.auth.AuthHelper import software.amazon.location.auth.LocationCredentialsProvider

Deux options s'offrent à vous lorsque vous créez l'assistant d'authentification et les instances du fournisseur de clients de localisation. Vous pouvez créer une instance à l'aide des clés d'API Amazon Location ou d'Amazon Cognito.

  • Pour créer une instance d'assistance à l'authentification à l'aide d'une clé d'API Amazon Location, déclarez la classe d'assistance comme suit :

    var authHelper = AuthHelper(applicationContext) var locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithApiKey("My-Amazon-Location-API-Key")
  • Pour créer une instance d'assistance à l'authentification à l'aide d'Amazon Cognito, déclarez la classe d'assistance comme suit :

    var authHelper = AuthHelper(applicationContext) var locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")

Vous pouvez créer une instance client Amazon Location à l'aide du fournisseur d'informations de localisation et passer des appels au service Amazon Location. L'exemple suivant recherche des lieux proches d'une latitude et d'une longitude spécifiées.

var locationClient = authHelper.getLocationClient(locationCredentialsProvider.getCredentialsProvider()) var searchPlaceIndexForPositionRequest = SearchPlaceIndexForPositionRequest().withIndexName("My-Place-Index-Name").withPosition(arrayListOf(30.405423, -97.718833)) var nearbyPlaces = locationClient.searchPlaceIndexForPosition(searchPlaceIndexForPositionRequest)

SDK d'authentification mobile iOS

Ces utilitaires vous aident à vous authentifier lorsque vous passez des appels à l'API Amazon Location Service depuis vos applications iOS. Cela est particulièrement utile lorsque vous utilisez Amazon Cognito ou des clés d'API comme méthode d'authentification.

Le SDK d'authentification mobile iOS est disponible sur github : Amazon Location Service Mobile Authentication SDK for iOS.

Installation

Installez le SDK dans un projet Xcode :

  1. Accédez à Fichier, puis sélectionnez Ajouter des dépendances de package dans votre projet XCode.

  2. Tapez l'URL du package : https://github.com/aws-geospatial/ amazon-location-mobile-auth -sdk-ios/ dans la barre de recherche et appuyez sur la touche Entrée.

  3. Sélectionnez le amazon-location-mobile-auth-sdk-ios package et appuyez sur Ajouter un package.

  4. Sélectionnez le produit AmazonLocationiOSAuthSDK du package et appuyez sur Ajouter un package.

Fonctions d'authentification

Le SDK d'assistance à l'authentification possède les fonctions suivantes :

  • authHelper.authenticateWithApiKey("My-Amazon-Location-API-Key"): LocationCredentialsProvider: Cette fonction renvoie une valeur LocationCredentialsProvider initialisée pour fonctionner avec une clé d'API.

  • authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id"): LocationCredentialsProvider: Cette fonction renvoie une valeur LocationCredentialsProvider initialisée pour fonctionner avec un pool d'identités Amazon Cognito.

Utilisation

Pour utiliser le SDK d'authentification mobile, ajoutez les instructions suivantes à votre activité :

import AmazonLocationiOSAuthSDK import AWSLocationXCF

Deux options s'offrent à vous lorsque vous créez l'assistant d'authentification et les instances du fournisseur de clients de localisation. Vous pouvez créer une instance à l'aide des clés d'API Amazon Location ou d'Amazon Cognito.

  • Pour créer une instance d'assistance à l'authentification à l'aide d'une clé d'API Amazon Location, déclarez la classe d'assistance comme suit :

    let authHelper = AuthHelper() let locationCredentialsProvider = authHelper.authenticateWithAPIKey(apiKey: "My-Amazon-Location-API-Key", region: "account-region")
  • Pour créer une instance d'assistance à l'authentification à l'aide d'Amazon Cognito, déclarez la classe d'assistance comme suit :

    let authHelper = AuthHelper() let locationCredentialsProvider = authHelper.authenticateWithCognitoUserPool(identityPoolId: "My-Amazon-Location-API-Key", region: "account-region")

Vous pouvez créer une instance client Amazon Location à l'aide du fournisseur d'informations de localisation et passer des appels au service Amazon Location. L'exemple suivant recherche des lieux proches d'une latitude et d'une longitude spécifiées.

let locationClient = AWSLocation.default() let searchPlaceIndexForPositionRequest = AWSLocationSearchPlaceIndexForPositionRequest()! searchPlaceIndexForPositionRequest.indexName = "My-Place-Index-Name" searchPlaceIndexForPositionRequest.position = [30.405423, -97.718833] let nearbyPlaces = locationClient.searchPlaceIndex(forPosition: searchPlaceIndexForPositionRequest)

SDK de suivi mobile Android

Le SDK de suivi mobile Amazon Location fournit des utilitaires qui permettent d'authentifier, de capturer les positions des appareils et d'envoyer des mises à jour de position à Amazon Location Trackers en toute simplicité. Le SDK prend en charge le filtrage local des mises à jour de localisation avec des intervalles de mise à jour configurables. Cela permet de réduire les coûts de données et d'optimiser la connectivité intermittente pour vos applications Android.

Le SDK de suivi Android est disponible sur GitHub : Amazon Location Mobile Tracking SDK for Android. En outre, le SDK d'authentification mobile et le AWS SDK sont disponibles dans le référentiel AWS Maven. Le SDK de suivi Android est conçu pour fonctionner avec le AWS SDK général.

Cette section couvre les sujets suivants relatifs au SDK Android de suivi mobile Amazon Location :

Installation

Pour installer le SDK, ajoutez les lignes suivantes à la section des dépendances de votre fichier build.gradle dans Android Studio :

implementation("software.amazon.location:tracking:0.0.1") implementation("software.amazon.location:auth:0.0.1") implementation("com.amazonaws:aws-android-sdk-location:2.72.0")

Utilisation

Cette procédure explique comment utiliser le SDK pour authentifier et créer l'LocationTrackerobjet :

Note

Cette procédure suppose que vous avez importé la bibliothèque mentionnée dans la Installation section.

  1. Importez les classes suivantes dans votre code :

    import software.amazon.location.tracking.LocationTracker import software.amazon.location.tracking.config.LocationTrackerConfig import software.amazon.location.tracking.util.TrackingSdkLogLevel import com.amazonaws.services.geo.AmazonLocationClient import software.amazon.location.auth.AuthHelper import software.amazon.location.auth.LocationCredentialsProvider
  2. Créez ensuite unAuthHelper, puisque le LocationCredentialsProvider paramètre est obligatoire pour créer un LocationTracker objet :

    // Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
  3. Maintenant, utilisez le LocationCredentialsProvider et LocationTrackerConfig pour créer un LocationTracker objet :

    val config = LocationTrackerConfig( trackerName = "MY-TRACKER-NAME", logLevel = TrackingSdkLogLevel.DEBUG, accuracy = Priority.PRIORITY_HIGH_ACCURACY, latency = 1000, frequency = 5000, waitForAccurateLocation = false, minUpdateIntervalMillis = 5000, ) locationTracker = LocationTracker( applicationContext, locationCredentialsProvider, config, )

Filtres

Le SDK Android de suivi mobile Amazon Location intègre trois filtres de localisation.

  • TimeLocationFilter: filtre l'emplacement actuel à télécharger en fonction d'un intervalle de temps défini.

  • DistanceLocationFilter: filtre les mises à jour de localisation en fonction d'un seuil de distance spécifié.

  • AccuracyLocationFilter: filtre les mises à jour de localisation en comparant la distance parcourue depuis la dernière mise à jour avec la précision de la position actuelle.

Cet exemple ajoute des filtres LocationTracker au moment de la création :

val config = LocationTrackerConfig( trackerName = "MY-TRACKER-NAME", logLevel = TrackingSdkLogLevel.DEBUG, accuracy = Priority.PRIORITY_HIGH_ACCURACY, latency = 1000, frequency = 5000, waitForAccurateLocation = false, minUpdateIntervalMillis = 5000, locationFilters = mutableListOf(TimeLocationFilter(), DistanceLocationFilter(), AccuracyLocationFilter()) ) locationTracker = LocationTracker( applicationContext, locationCredentialsProvider, config, )

Cet exemple active et désactive le filtre lors de l'exécution avec LocationTracker :

// To enable the filter locationTracker?.enableFilter(TimeLocationFilter()) // To disable the filter locationTracker?.disableFilter(TimeLocationFilter())

Fonctions de suivi du SDK Android Mobile

Le SDK de suivi mobile Amazon Location pour Android inclut les fonctions suivantes :

  • Classe : LocationTracker

    constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,trackerName: String), ou constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)

    Il s'agit d'une fonction d'initialisation permettant de créer un LocationTracker objet. Il nécessite des instances deLocationCredentialsProvider, trackerName et éventuellement une instance deLocationTrackingConfig. Si la configuration n'est pas fournie, elle sera initialisée avec les valeurs par défaut.

  • Classe : LocationTracker

    start(locationTrackingCallback: LocationTrackingCallback)

    Lance le processus d'accès à la position de l'utilisateur et de son envoi à un outil de suivi de localisation Amazon.

  • Classe : LocationTracker

    isTrackingInForeground()

    Vérifie si le suivi de localisation est actuellement en cours.

  • Classe : LocationTracker

    stop()

    Arrête le processus de suivi de la position de l'utilisateur.

  • Classe : LocationTracker

    startTracking()

    Lance le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS tracker.

  • Classe : LocationTracker

    startBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)

    Lance le processus d'accès à la position de l'utilisateur et de son envoi au AWS tracker alors que l'application est en arrière-plan. BackgroundTrackingMode propose les options suivantes :

    • ACTIVE_TRACKING: Cette option suit activement les mises à jour de localisation d'un utilisateur.

    • BATTERY_SAVER_TRACKING: Cette option suit les mises à jour de localisation de l'utilisateur toutes les 15 minutes.

  • Classe : LocationTracker

    stopBackgroundService()

    Arrête le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS tracker alors que l'application est en arrière-plan.

  • Classe : LocationTracker

    getTrackerDeviceLocation()

    Récupère l'emplacement de l'appareil auprès des services de localisation Amazon.

  • Classe : LocationTracker

    getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)

    Récupère la position actuelle de l'appareil auprès du client du fournisseur de localisation fusionné et la télécharge sur Amazon Location Tracker.

  • Classe : LocationTracker

    uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)

    Télécharge la position de l'appareil vers les services de localisation Amazon après avoir filtré en fonction des filtres de localisation configurés.

  • Classe : LocationTracker

    enableFilter(filter: LocationFilter)

    Active un filtre de localisation spécifique.

  • Classe : LocationTracker

    checkFilterIsExistsAndUpdateValue(filter: LocationFilter)

    Désactivez un filtre de localisation particulier.

  • Classe : LocationTrackerConfig

    LocationTrackerConfig( // Required var trackerName: String, // Optional var locationFilters: MutableList = mutableListOf( TimeLocationFilter(), DistanceLocationFilter(), ), var logLevel: TrackingSdkLogLevel = TrackingSdkLogLevel.DEBUG, var accuracy: Int = Priority.PRIORITY_HIGH_ACCURACY, var latency: Long = 1000, var frequency: Long = 1500, var waitForAccurateLocation: Boolean = false, var minUpdateIntervalMillis: Long = 1000, var persistentNotificationConfig: NotificationConfig = NotificationConfig())

    Cela initialise le LocationTrackerConfig avec des valeurs de paramètres définies par l'utilisateur. Si aucune valeur de paramètre n'est fournie, elle sera définie sur une valeur par défaut.

  • Classe : LocationFilter

    shouldUpload(currentLocation: LocationEntry, previousLocation: LocationEntry?): Boolean

    LocationFilterIl s'agit d'un protocole que les utilisateurs peuvent implémenter pour leur mise en œuvre de filtres personnalisés. Vous devez implémenter la shouldUpload fonction pour comparer l'emplacement précédent et actuel et indiquer si l'emplacement actuel doit être téléchargé.

Exemples

L'exemple de code suivant illustre les fonctionnalités du SDK de suivi mobile.

Cet exemple utilise le LocationTracker pour démarrer et arrêter le suivi en arrière-plan :

// For starting the location tracking locationTracker?.startBackground( BackgroundTrackingMode.ACTIVE_TRACKING, object : ServiceCallback { override fun serviceStopped() { if (selectedTrackingMode == BackgroundTrackingMode.ACTIVE_TRACKING) { isLocationTrackingBackgroundActive = false } else { isLocationTrackingBatteryOptimizeActive = false } } }, ) // For stopping the location tracking locationTracker?.stopBackgroundService()

SDK de suivi mobile pour iOS

Le SDK de suivi mobile Amazon Location fournit des utilitaires qui permettent d'authentifier, de capturer les positions des appareils et d'envoyer des mises à jour de position à Amazon Location Trackers en toute simplicité. Le SDK prend en charge le filtrage local des mises à jour de localisation avec des intervalles de mise à jour configurables. Cela permet de réduire les coûts de données et d'optimiser la connectivité intermittente pour vos applications iOS.

Le SDK de suivi iOS est disponible sur GitHub : Amazon Location Mobile Tracking SDK for iOS.

Cette section aborde les sujets suivants relatifs au SDK iOS de suivi mobile Amazon Location :

Installation

Pour installer le SDK de suivi mobile pour iOS, procédez comme suit :

  1. Dans votre projet Xcode, accédez à Fichier et sélectionnez Ajouter des dépendances de package.

  2. Tapez l'URL suivante : https://github.com/aws-geospatial/ amazon-location-mobile-tracking -sdk-ios/ dans la barre de recherche et appuyez sur la touche Entrée.

  3. Sélectionnez le amazon-location-mobile-tracking-sdk-ios package et cliquez sur Ajouter un package.

  4. Sélectionnez le produit AmazonLocationiOSTrackingSDK du package et cliquez sur Ajouter un package.

Utilisation

La procédure suivante explique comment créer un assistant d'authentification à l'aide des informations d'identification de Cognito.

  1. Après avoir installé la bibliothèque, vous devez ajouter l'une des descriptions ou les deux dans votre info.plist fichier :

    Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
  2. Importez ensuite le AuthHelper dans votre classe :

    import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK
  3. Vous allez ensuite créer un AuthHelper objet et l'utiliser avec le AWS SDK, en créant un assistant d'authentification à l'aide des informations d'identification d'Amazon Cognito.

    let authHelper = AuthHelper() let locationCredentialsProvider = authHelper.authenticateWithCognitoUserPool(identityPoolId: "My-Cognito-Identity-Pool-Id", region: "My-region") //example: us-east-1 let locationTracker = LocationTracker(provider: locationCredentialsProvider, trackerName: "My-tracker-name") // Optionally you can set ClientConfig with your own values in either initialize or in a separate function // let trackerConfig = LocationTrackerConfig(locationFilters: [TimeLocationFilter(), DistanceLocationFilter()], trackingDistanceInterval: 30, trackingTimeInterval: 30, logLevel: .debug) // locationTracker = LocationTracker(provider: credentialsProvider, trackerName: "My-tracker-name",config: trackerConfig) // locationTracker.setConfig(config: trackerConfig)

Filtres

Le SDK iOS de suivi mobile Amazon Location intègre trois filtres de localisation.

  • TimeLocationFilter: filtre l'emplacement actuel à télécharger en fonction d'un intervalle de temps défini.

  • DistanceLocationFilter: filtre les mises à jour de localisation en fonction d'un seuil de distance spécifié.

  • AccuracyLocationFilter: filtre les mises à jour de localisation en comparant la distance parcourue depuis la dernière mise à jour avec la précision de la position actuelle.

Cet exemple ajoute des filtres LocationTracker au moment de la création :

val config = LocationTrackerConfig( trackerName = "MY-TRACKER-NAME", logLevel = TrackingSdkLogLevel.DEBUG, accuracy = Priority.PRIORITY_HIGH_ACCURACY, latency = 1000, frequency = 5000, waitForAccurateLocation = false, minUpdateIntervalMillis = 5000, locationFilters = mutableListOf(TimeLocationFilter(), DistanceLocationFilter(), AccuracyLocationFilter()) ) locationTracker = LocationTracker( applicationContext, locationCredentialsProvider, config, )

Cet exemple active et désactive le filtre lors de l'exécution avec LocationTracker :

// To enable the filter locationTracker?.enableFilter(TimeLocationFilter()) // To disable the filter locationTracker?.disableFilter(TimeLocationFilter())

Fonctions de suivi du SDK iOS Mobile

Le SDK de suivi mobile Amazon Location pour iOS inclut les fonctions suivantes :

  • Classe : LocationTracker

    init(provider: LocationCredentialsProvider, trackerName: String, config: LocationTrackerConfig? = nil)

    Il s'agit d'une fonction d'initialisation permettant de créer un LocationTracker objet. Il nécessite des instances deLocationCredentialsProvider, trackerName et éventuellement une instance deLocationTrackingConfig. Si la configuration n'est pas fournie, elle sera initialisée avec les valeurs par défaut.

  • Classe : LocationTracker

    setTrackerConfig(config: LocationTrackerConfig)

    Cela permet à la configuration de Tracker de prendre effet à tout moment après l'initialisation du suivi de localisation

  • Classe : LocationTracker

    getTrackerConfig()

    Cela permet d'obtenir la configuration de suivi de localisation à utiliser ou à modifier dans votre application.

    Retours : LocationTrackerConfig

  • Classe : LocationTracker

    getDeviceId()

    Obtient l'identifiant de l'appareil généré par le traqueur de localisation.

    Retours : String?

  • Classe : LocationTracker

    startTracking()

    Lance le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS tracker.

  • Classe : LocationTracker

    resumeTracking()

    Reprend le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS traceur.

  • Classe : LocationTracker

    stopTracking()

    Arrête le processus de suivi de la position de l'utilisateur.

  • Classe : LocationTracker

    startBackgroundTracking(mode: BackgroundTrackingMode)

    Lance le processus d'accès à la position de l'utilisateur et de son envoi au AWS tracker alors que l'application est en arrière-plan. BackgroundTrackingModepropose les options suivantes :

    • Active:Cette option n'interrompt pas automatiquement les mises à jour de localisation.

    • BatterySaving:Cette option suspend automatiquement les mises à jour de localisation

    • None:Cette option désactive globalement les mises à jour de localisation en arrière-plan

  • Classe : LocationTracker

    resumeBackgroundTracking(mode: BackgroundTrackingMode)

    Reprend le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS tracker alors que l'application est en arrière-plan.

  • Classe : LocationTracker

    stopBackgroundTracking()

    Arrête le processus d'accès à la position de l'utilisateur et d'envoi de celle-ci au AWS tracker alors que l'application est en arrière-plan.

  • Classe : LocationTracker

    getTrackerDeviceLocation(nextToken: String?, startTime: Date? = nil, endTime: Date? = nil, completion: @escaping (Result<GetLocationResponse, Error>)

    Récupère les emplacements de suivi téléchargés pour l'appareil de l'utilisateur entre la date et l'heure de début et de fin.

    Retours : Void

  • Classe : LocationTrackerConfig

    init()

    Cela initialise le LocationTrackerConfig avec les valeurs par défaut.

  • Classe : LocationTrackerConfig

    init(locationFilters: [LocationFilter]? = nil, trackingDistanceInterval: Double? = nil, trackingTimeInterval: Double? = nil, trackingAccuracyLevel: Double? = nil, uploadFrequency: Double? = nil, desiredAccuracy: CLLocationAccuracy? = nil, activityType: CLActivityType? = nil, logLevel: LogLevel? = nil)

    Cela initialise le LocationTrackerConfig avec des valeurs de paramètres définies par l'utilisateur. Si aucune valeur de paramètre n'est fournie, elle sera définie sur une valeur par défaut.

  • Classe : LocationFilter

    shouldUpload(currentLocation: LocationEntity, previousLocation: LocationEntity?, trackerConfig: LocationTrackerConfig)

    LocationFilterIl s'agit d'un protocole que les utilisateurs peuvent implémenter pour leur mise en œuvre de filtres personnalisés. Un utilisateur devra implémenter une shouldUpload fonction pour comparer l'emplacement précédent et actuel et revenir si l'emplacement actuel doit être téléchargé.

Exemples

Cette section présente des exemples d'utilisation du SDK de suivi mobile Amazon Location pour iOS.

Note

Assurez-vous que les autorisations nécessaires sont définies dans le info.plist fichier. Il s'agit des mêmes autorisations que celles répertoriées dans la Utilisation section.

L'exemple suivant illustre les fonctionnalités permettant de suivre la position des appareils et de récupérer les positions suivies :

Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description

Commencez à suivre la position :

do { try locationTracker.startTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }

Reprenez le suivi de la localisation :

do { try locationTracker.resumeTracking() } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }

Arrêtez de suivre la position :

locationTracker.stopTracking()

Démarrez le suivi en arrière-plan :

do { locationTracker.startBackgroundTracking(mode: .Active) // .Active, .BatterySaving, .None } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }

Suivi des antécédents du CV :

do { locationTracker.resumeBackgroundTracking(mode: .Active) } catch TrackingLocationError.permissionDenied { // Handle permissionDenied by showing the alert message or opening the app settings }

Pour arrêter le suivi en arrière-plan :

locationTracker.stopBackgroundTracking()

Récupérez les positions suivies de l'appareil à partir du tracker :

func getTrackingPoints(nextToken: String? = nil) { let startTime: Date = Date().addingTimeInterval(-86400) // Yesterday's day date and time let endTime: Date = Date() locationTracker.getTrackerDeviceLocation(nextToken: nextToken, startTime: startTime, endTime: endTime, completion: { [weak self] result in switch result { case .success(let response): let positions = response.devicePositions // You can draw positions on map or use it further as per your requirement // If nextToken is available, recursively call to get more data if let nextToken = response.nextToken { self?.getTrackingPoints(nextToken: nextToken) } case .failure(let error): print(error) } }) }