Ubicazione SDK e librerie Amazon - Servizio di posizione Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ubicazione SDK e librerie Amazon

Amazon Location SDK è un insieme di librerie open source che forniscono funzionalità utili per lo sviluppo di applicazioni Amazon Location. Sono incluse le seguenti funzionalità:

  • Client Amazon Location: gli oggetti Amazon Location in AWS SDKLe versioni v3 sono raggruppate e confezionate per facilitarne l'uso nello sviluppo web.

  • Autenticazione: l'utilità di autenticazione semplifica l'autenticazione (utilizzando Amazon Cognito API o chiavi) durante la creazione di una pagina Web JavaScript, un'applicazione iOS o Android per Amazon Location Service.

  • Tracciamento: il tracciamento SDKs mobile è disponibile per iOS e Android. Ciò SDK semplifica l'interazione delle applicazioni mobili con Amazon Location Tracker.

  • JSONFunzioni Amazon Location Geo: le utilità di JSON conversione Geo semplificano la conversione tra i JSON dati in formato Geo standard del settore e i formati Amazon Location. API

Come iniziare a utilizzare Amazon Location SDK

Amazon Location SDK è un insieme di funzioni che possono semplificare l'utilizzo di Amazon Location Service in un'applicazione. Puoi installare e importare queste funzioni nella tua JavaScript applicazione. Le seguenti sezioni descrivono il client Amazon Location e le librerie di autenticazione e Geo JSON helper.

Client di localizzazione Amazon

Con AWS SDKv3, SDK è separato per servizio. Puoi installare solo le parti di cui hai bisogno. Ad esempio, per installare il client Amazon Location e il provider di credenziali per Amazon Cognito, utilizza i seguenti comandi.

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

Per facilitare l'utilizzo di Amazon Location Service nelle applicazioni JavaScript web frontend, AWS fornisce un pacchetto ospitato della libreria Amazon Location e del fornitore di credenziali. Per utilizzare il client in bundle, aggiungilo al tuo tag HTML in uno script, come segue:

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

Il pacchetto è aggiornato e retrocompatibile per facilitarne l'uso. Utilizzando questo tag di script o NPM installando si otterrà sempre la versione più recente.

JavaScript Aiutante di autenticazione

L'helper di JavaScript autenticazione Amazon Location semplifica l'autenticazione quando effettui API chiamate Amazon Location dalla tua applicazione. JavaScript Questo assistente di autenticazione ti aiuta specificamente a utilizzare Amazon Cognito APIo le chiavi come metodo di autenticazione. Questa è una libreria open source disponibile su GitHub, qui: https://github.com/aws-geospatial/ amazon-location-utilities-auth -helper-js.

Nota

Il supporto di Amazon Cognito nell'helper di autenticazione non supporta la funzionalità di identità federate di Amazon Cognito.

Installazione

Puoi usare le librerie con un'installazione locale, se usi un sistema di compilazione come webpack, o includendo JavaScript pacchetti predefiniti con <script> tag nel tuo html.

  • Usa il seguente comando per installare la libreria, usando: NPM

    npm install @aws/amazon-location-utilities-auth-helper
  • Utilizzate il seguente comando nel HTML file per caricare lo script:

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

Importa

Per utilizzare una funzione specifica nell' JavaScript applicazione, è necessario importare tale funzione. Il codice seguente viene utilizzato per importare la funzione withIdentityPoolId nell'applicazione.

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

Funzioni di autenticazione

Gli helper di autenticazione di Amazon Location includono le seguenti funzioni che restituiscono un AuthHelper oggetto:

  • async withIdentityPoolId( identityPoolId: string): AuthHelper— Questa funzione restituisce un AuthHelper oggetto, inizializzato per funzionare con Amazon Cognito

  • async withAPIKey( API_KEY: string): AuthHelper— Questa funzione restituisce un AuthHelper oggetto, inizializzato per funzionare con Keys. API

L'AuthHelperoggetto fornisce le seguenti funzioni:

  • AuthHelper.getMapAuthenticationOptions()— Questa funzione dell' AuthHelper oggetto restituisce un JavaScript oggetto con le opzioni della mappa transformRequest che può essere utilizzato con le opzioni della mappa in MapLibre JS. Fornito solo se inizializzato con un pool di identità.

  • AuthHelper.getLocationClientConfig()— Questa funzione dell' AuthHelper oggetto restituisce un JavaScript oggetto con il credentials quale è possibile inizializzare un. LocationClient

  • AuthHelper.getCredentials()— Questa funzione dell' AuthHelper oggetto restituisce le credenziali interne di Amazon Cognito. Fornito solo se inizializzato con un pool di identità.

Esempio: inizializzazione di un oggetto MapLibre mappa con Amazon Cognito, utilizzando 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 });

Esempio: inizializzazione dell'oggetto della MapLibre mappa con una API chiave (in questo caso non AuthHelper è necessaria)

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', });

Esempio: inizializza il client Location dal AWS SDKper JS, utilizzando Amazon Cognito e AuthHelper

Questo esempio utilizza AWS SDKper JavaScript v3.

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 });

Esempio: inizializza il client Location dal AWS SDKper JS, utilizzando una API chiave e AuthHelper

Questo esempio utilizza AWS SDKper JavaScript v3.

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 });

Aiutanti per la conversione geografica JSON

Gli helper di JSON conversione di Amazon Location Geo forniscono strumenti per convertire i tipi di dati di Amazon Location Service da e verso il formato Geo standard del settore. JSON Geo JSON viene utilizzato, ad esempio, per visualizzare dati geografici sulla mappa MapLibre . Questa è una libreria open source disponibile su GitHub, qui: https://github.com/aws-geospatial/amazon-location-utilities-datatypes-js.

Installazione

Puoi usare le librerie con un'installazione locale, come webpack, o includendo JavaScript pacchetti predefiniti con <script> tag nel tuo html.

  • Usa il seguente comando per installare la libreria, usando. NPM

    npm install @aws/amazon-location-utilities-datatypes
  • Utilizzate il seguente comando nel HTML file per caricare lo script:

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

Importa

Per utilizzare una funzione specifica nell' JavaScript applicazione, è necessario importare tale funzione. Il codice seguente viene utilizzato per importare la funzione placeToFeatureCollection nell'applicazione.

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

Funzioni di JSON conversione geografica

Gli helper di JSON conversione Amazon Location Geo includono le seguenti funzioni:

  • placeToFeatureCollection(place: GetPlaceResponse | searchPlaceIndexForPositionResponse | searchPlaceIndexForTextResponse, keepNull: boolean): Feature— Questa funzione converte le risposte dalle funzioni di ricerca dei luoghi in un Geo JSON FeatureCollection con 1 o più funzioni Point.

  • devicePositionToFeatureCollection(devicePositions: GetDevicePositionResponse | BatchGetDevicePositionResponse | GetDevicePositionHistoryResponse | ListDevicePositionsResponse, keepNull: boolean)— Questa funzione converte le risposte dalle funzioni di posizione del dispositivo tracker in un Geo JSON FeatureCollection con 1 o più punti.

  • routeToFeatureCollection(legs: CalculateRouteResponse): FeatureCollection— Questa funzione converte le risposte dalla funzione di calcolo del percorso in una Geo con una singola JSON FeatureCollection funzione. MultiStringLine Ogni tappa del percorso è rappresentata da una LineString voce in. MultiStringLine

  • geofenceToFeatureCollection(geofences: GetGeofenceResponse | PutGeofenceRequest | BatchPutGeofenceRequest | ListGeofencesResponse): FeatureCollection— Questa funzione converte la richiesta o la risposta delle funzioni di geofence in una funzione Geo JSON FeatureCollection con funzionalità Polygon. Può convertire i geofence sia nella risposta che nella richiesta, consentendoti di mostrare i geofence su una mappa prima di caricarli con or. PutGeofence BatchPutGeofence

    Questa funzione convertirà un geofence circolare in un elemento con un poligono approssimato, ma avrà anche le proprietà «centro» e «raggio» per ricreare il geofence circolare, se necessario (vedere la funzione successiva).

  • featureCollectionToGeofences(featureCollection: FeatureCollection): BatchPutGeofenceRequestEntry[]— Questa funzione converte un oggetto Geo JSON FeatureCollection con caratteristiche Polygon in una serie di BatchPutGeofenceRequestEntry oggetti, in modo che il risultato possa essere utilizzato per creare una richiesta per. BatchPutGeofence

    Se una Feature in FeatureCollection ha le proprietà «centro» e «raggio», verrà convertita in una voce di richiesta di geofence circolare, ignorando la geometria del poligono.

Esempio: converti i risultati della ricerca in un livello di punti in MapLibre

Questo esempio utilizza AWS SDKper JavaScript v3.

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", }, });

Autenticazione mobile Android SDK

Queste utilità ti aiutano ad autenticarti quando effettui API chiamate Amazon Location Service dalle tue applicazioni Android. Ciò è particolarmente utile quando si utilizza Amazon Cognito o APIle chiavi come metodo di autenticazione.

L'autenticazione mobile Android SDK è disponibile su github: Amazon Location Service Mobile Authentication SDK per Android. Inoltre, sia l'autenticazione SDK mobile che il AWS SDKsono disponibili su AWS repository Maven.

Installazione

Per utilizzare l'autenticazione mobileSDK, aggiungi le seguenti istruzioni di importazione al tuo build.gradle file in Android Studio.

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

Funzioni di autenticazione

L'helper di autenticazione SDK ha le seguenti funzioni:

  • authHelper.authenticateWithApiKey("My-Amazon-Location-API-Key"): LocationCredentialsProvider: Questa funzione restituisce una chiave LocationCredentialsProvider inizializzata per funzionare con una API chiave.

  • authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id"): LocationCredentialsProvider: Questa funzione restituisce un file LocationCredentialsProvider inizializzato per funzionare con un pool di identità di Amazon Cognito.

Utilizzo

Per utilizzarlo SDK nel codice, importa le seguenti classi:

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

Hai due opzioni per creare l'helper di autenticazione e le istanze del provider di client di localizzazione. Puoi creare un'istanza utilizzando APIle chiavi di localizzazione Amazon o Amazon Cognito.

  • Per creare un'istanza helper di autenticazione utilizzando una Amazon Location API Key, dichiara la classe helper come segue:

    var authHelper = AuthHelper(applicationContext) var locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithApiKey("My-Amazon-Location-API-Key")
  • Per creare un'istanza helper di autenticazione utilizzando Amazon Cognito, dichiara la classe helper come segue:

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

Puoi creare un'istanza client Amazon Location utilizzando il provider di credenziali di posizione ed effettuare chiamate al servizio Amazon Location. L'esempio seguente cerca luoghi vicini a una latitudine e una longitudine specificate.

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)

Autenticazione mobile iOS SDK

Queste utilità ti aiutano ad autenticarti quando effettui API chiamate Amazon Location Service dalle tue applicazioni iOS. Ciò è particolarmente utile quando si utilizza Amazon Cognito o APIle chiavi come metodo di autenticazione.

L'autenticazione mobile iOS SDK è disponibile su github: Amazon Location Service Mobile Authentication per SDK iOS.

Installazione

Installala SDK in un progetto Xcode:

  1. Vai su File, quindi seleziona Add Package Dependencies nel tuo XCode progetto.

  2. Digita il pacchettoURL: https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-ios/ nella barra di ricerca e premi il tasto invio.

  3. Seleziona il amazon-location-mobile-auth-sdk-ios pacchetto e premi Aggiungi pacchetto.

  4. Seleziona il prodotto del AmazonLocationiOSAuthSDK pacchetto e premi Aggiungi pacchetto.

Funzioni di autenticazione

L'helper di autenticazione SDK ha le seguenti funzioni:

  • authHelper.authenticateWithApiKey("My-Amazon-Location-API-Key"): LocationCredentialsProvider: Questa funzione restituisce una chiave LocationCredentialsProvider inizializzata per funzionare con una API chiave.

  • authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id"): LocationCredentialsProvider: Questa funzione restituisce un file LocationCredentialsProvider inizializzato per funzionare con un pool di identità di Amazon Cognito.

Utilizzo

Per utilizzare l'autenticazione mobileSDK, aggiungi le seguenti istruzioni alla tua attività:

import AmazonLocationiOSAuthSDK import AWSLocationXCF

Hai due opzioni per creare l'helper di autenticazione e le istanze del provider di client di localizzazione. Puoi creare un'istanza utilizzando APIle chiavi di localizzazione Amazon o Amazon Cognito.

  • Per creare un'istanza helper di autenticazione utilizzando una Amazon Location API Key, dichiara la classe helper come segue:

    let authHelper = AuthHelper() let locationCredentialsProvider = authHelper.authenticateWithAPIKey(apiKey: "My-Amazon-Location-API-Key", region: "account-region")
  • Per creare un'istanza helper di autenticazione utilizzando Amazon Cognito, dichiara la classe helper come segue:

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

Puoi creare un'istanza client Amazon Location utilizzando il provider di credenziali di posizione ed effettuare chiamate al servizio Amazon Location. L'esempio seguente cerca luoghi vicini a una latitudine e una longitudine specificate.

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)

Monitoraggio per dispositivi mobili Android SDK

Il tracciamento mobile di Amazon Location SDK fornisce utilità che aiutano a autenticare, acquisire facilmente le posizioni dei dispositivi e inviare aggiornamenti di posizione ad Amazon Location Tracker. SDKSupporta il filtraggio locale degli aggiornamenti di posizione con intervalli di aggiornamento configurabili. Ciò riduce i costi dei dati e ottimizza la connettività intermittente per le applicazioni Android.

Il tracciamento Android SDK è disponibile su GitHub: Amazon Location Mobile Tracking SDK per Android. Inoltre, sia l'autenticazione mobile SDK che il AWS SDKsono disponibili su AWS repository Maven. Il tracciamento Android SDK è progettato per funzionare con il sistema generale AWS SDK.

Questa sezione tratta i seguenti argomenti per il tracciamento mobile Android di Amazon LocationSDK:

Installazione

Per installareSDK, aggiungi le seguenti righe alla sezione delle dipendenze del tuo file build.gradle in 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")

Utilizzo

Questa procedura mostra come utilizzare il per autenticare e SDK creare l'oggetto: LocationTracker

Nota

Questa procedura presuppone che sia stata importata la libreria menzionata nella Installazione sezione.

  1. Importa le seguenti classi nel tuo codice:

    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. Quindi crea unAuthHelper, poiché il LocationCredentialsProvider parametro è necessario per creare un LocationTracker oggetto:

    // Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
  3. Ora, usate il LocationCredentialsProvider comando and LocationTrackerConfig per creare un LocationTracker oggetto:

    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, )

Filtri

Amazon Location Mobile Tracking Android SDK ha tre filtri di posizione integrati.

  • TimeLocationFilter: filtra la posizione corrente da caricare in base a un intervallo di tempo definito.

  • DistanceLocationFilter: filtra gli aggiornamenti della posizione in base a una soglia di distanza specificata.

  • AccuracyLocationFilter: filtra gli aggiornamenti della posizione confrontando la distanza percorsa dall'ultimo aggiornamento con la precisione della posizione corrente.

Questo esempio aggiunge filtri in LocationTracker al momento della creazione:

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, )

Questo esempio abilita e disabilita il filtro in fase di esecuzione conLocationTracker:

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

Funzioni di SDK tracciamento per dispositivi mobili Android

Il tracciamento mobile Amazon Location SDK per Android include le seguenti funzioni:

  • Classe: LocationTracker

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

    Questa è una funzione di inizializzazione per creare un LocationTracker oggetto. Richiede istanze di trackerName eLocationCredentialsProvider, facoltativamente, un'istanza di. LocationTrackingConfig Se la configurazione non viene fornita, verrà inizializzata con valori predefiniti.

  • Classe: LocationTracker

    start(locationTrackingCallback: LocationTrackingCallback)

    Avvia il processo di accesso alla posizione dell'utente e di invio a un localizzatore di localizzazione Amazon.

  • Classe: LocationTracker

    isTrackingInForeground()

    Verifica se il tracciamento della posizione è attualmente in corso.

  • Classe: LocationTracker

    stop()

    Interrompe il processo di tracciamento della posizione dell'utente.

  • Classe: LocationTracker

    startTracking()

    Avvia il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker.

  • Classe: LocationTracker

    startBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)

    Avvia il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker mentre l'applicazione è in background. BackgroundTrackingMode ha le seguenti opzioni:

    • ACTIVE_TRACKING: questa opzione tiene traccia attivamente degli aggiornamenti sulla posizione di un utente.

    • BATTERY_SAVER_TRACKING: Questa opzione tiene traccia degli aggiornamenti sulla posizione dell'utente ogni 15 minuti.

  • Classe: LocationTracker

    stopBackgroundService()

    Interrompe il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker mentre l'applicazione è in background.

  • Classe: LocationTracker

    getTrackerDeviceLocation()

    Recupera la posizione del dispositivo dai servizi di localizzazione di Amazon.

  • Classe: LocationTracker

    getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)

    Recupera la posizione corrente del dispositivo dal client del fornitore di geolocalizzazione fusa e la carica su Amazon Location tracker.

  • Classe: LocationTracker

    uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)

    Carica la posizione del dispositivo nei servizi di localizzazione Amazon dopo averla filtrata in base ai filtri di posizione configurati.

  • Classe: LocationTracker

    enableFilter(filter: LocationFilter)

    Abilita un particolare filtro di posizione.

  • Classe: LocationTracker

    checkFilterIsExistsAndUpdateValue(filter: LocationFilter)

    Disattiva un filtro di posizione particolare.

  • 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())

    Questo inizializza il LocationTrackerConfig con valori dei parametri definiti dall'utente. Se non viene fornito un valore di parametro, verrà impostato su un valore predefinito.

  • Classe: LocationFilter

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

    LocationFilterÈ un protocollo che gli utenti possono implementare per l'implementazione di filtri personalizzati. È necessario implementare la shouldUpload funzione per confrontare la posizione precedente e quella corrente e restituire se la posizione corrente deve essere caricata.

Esempi

Il seguente esempio di codice mostra la SDK funzionalità di tracciamento mobile.

Questo esempio utilizza LocationTracker per avviare e interrompere il tracciamento in background:

// 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()

Monitoraggio mobile iOS SDK

Il tracciamento mobile di Amazon Location SDK fornisce utilità che aiutano a autenticare, acquisire facilmente le posizioni dei dispositivi e inviare aggiornamenti di posizione ad Amazon Location Tracker. SDKSupporta il filtraggio locale degli aggiornamenti di posizione con intervalli di aggiornamento configurabili. Ciò riduce i costi dei dati e ottimizza la connettività intermittente per le applicazioni iOS.

Il tracciamento iOS SDK è disponibile su GitHub: Amazon Location Mobile Tracking SDK per iOS.

Questa sezione tratta i seguenti argomenti per il tracciamento mobile di Amazon Location iOSSDK:

Installazione

Utilizza la seguente procedura per installare il tracciamento mobile SDK per iOS:

  1. Nel tuo progetto Xcode, vai su File e seleziona Add Package Dependencies.

  2. Digita quanto segueURL: https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/ nella barra di ricerca e premi il tasto invio.

  3. Seleziona il amazon-location-mobile-tracking-sdk-ios pacchetto e fai clic su Aggiungi pacchetto.

  4. Seleziona il prodotto del AmazonLocationiOSTrackingSDK pacchetto e fai clic su Aggiungi pacchetto.

Utilizzo

La procedura seguente mostra come creare un helper di autenticazione utilizzando le credenziali di Cognito.

  1. Dopo aver installato la libreria, devi aggiungere una o entrambe le descrizioni nel file: info.plist

    Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
  2. Quindi, importali AuthHelper nella tua classe:

    import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK
  3. Quindi creerai un AuthHelper oggetto e lo userai con AWS SDK, creando un helper di autenticazione utilizzando le credenziali di 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)

Filtri

Il tracciamento mobile di Amazon Location iOS SDK ha tre filtri di posizione integrati.

  • TimeLocationFilter: filtra la posizione corrente da caricare in base a un intervallo di tempo definito.

  • DistanceLocationFilter: filtra gli aggiornamenti della posizione in base a una soglia di distanza specificata.

  • AccuracyLocationFilter: filtra gli aggiornamenti della posizione confrontando la distanza percorsa dall'ultimo aggiornamento con la precisione della posizione corrente.

Questo esempio aggiunge filtri in LocationTracker al momento della creazione:

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, )

Questo esempio abilita e disabilita il filtro in fase di esecuzione conLocationTracker:

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

Funzioni di SDK tracciamento mobile iOS

Il tracciamento mobile di Amazon Location SDK per iOS include le seguenti funzioni:

  • Classe: LocationTracker

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

    Questa è una funzione di inizializzazione per creare un LocationTracker oggetto. Richiede istanze di trackerName eLocationCredentialsProvider, facoltativamente, un'istanza di. LocationTrackingConfig Se la configurazione non viene fornita, verrà inizializzata con valori predefiniti.

  • Classe: LocationTracker

    setTrackerConfig(config: LocationTrackerConfig)

    Questo imposta la configurazione di Tracker in modo che abbia effetto in qualsiasi momento dopo l'inizializzazione del localizzatore di posizione

  • Classe: LocationTracker

    getTrackerConfig()

    In questo modo viene ottenuta la configurazione di tracciamento della posizione da utilizzare o modificare nell'app.

    Restituisce: LocationTrackerConfig

  • Classe: LocationTracker

    getDeviceId()

    Ottiene l'ID del dispositivo generato dal localizzatore di posizione.

    Restituisce: String?

  • Classe: LocationTracker

    startTracking()

    Avvia il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker.

  • Classe: LocationTracker

    resumeTracking()

    Riprende il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker.

  • Classe: LocationTracker

    stopTracking()

    Interrompe il processo di tracciamento della posizione dell'utente.

  • Classe: LocationTracker

    startBackgroundTracking(mode: BackgroundTrackingMode)

    Avvia il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker mentre l'applicazione è in background. BackgroundTrackingModeha le seguenti opzioni:

    • Active:Questa opzione non sospende automaticamente gli aggiornamenti della posizione.

    • BatterySaving:Questa opzione sospende automaticamente gli aggiornamenti della posizione

    • None:Questa opzione disabilita nel complesso gli aggiornamenti della posizione in background

  • Classe: LocationTracker

    resumeBackgroundTracking(mode: BackgroundTrackingMode)

    Riprende il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker mentre l'applicazione è in background.

  • Classe: LocationTracker

    stopBackgroundTracking()

    Interrompe il processo di accesso alla posizione dell'utente e di invio della stessa al AWS tracker mentre l'applicazione è in background.

  • Classe: LocationTracker

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

    Recupera le posizioni di tracciamento caricate per il dispositivo dell'utente tra la data e l'ora di inizio e fine.

    Restituisce: Void

  • Classe: LocationTrackerConfig

    init()

    Questo inizializza LocationTrackerConfig con valori predefiniti.

  • 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)

    Questo inizializza il LocationTrackerConfig con valori dei parametri definiti dall'utente. Se non viene fornito un valore di parametro, verrà impostato su un valore predefinito.

  • Classe: LocationFilter

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

    LocationFilterÈ un protocollo che gli utenti possono implementare per l'implementazione di filtri personalizzati. Un utente dovrebbe implementare una shouldUpload funzione per confrontare la posizione precedente e corrente e restituire se la posizione corrente deve essere caricata.

Esempi

Questa sezione descrive alcuni esempi di utilizzo di Amazon Location Mobile Tracking SDK per iOS.

Nota

Assicurati che le autorizzazioni necessarie siano impostate nel info.plist file. Queste sono le stesse autorizzazioni elencate nella Utilizzo sezione.

L'esempio seguente illustra la funzionalità per il tracciamento della posizione del dispositivo e il recupero delle posizioni tracciate:

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

Inizia a tracciare la posizione:

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

Riprendi a tracciare la posizione:

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

Smetti di tracciare la posizione:

locationTracker.stopTracking()

Inizia il tracciamento in background:

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

Riprendi il tracciamento in background:

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

Per interrompere il tracciamento in background:

locationTracker.stopBackgroundTracking()

Recupera le posizioni tracciate del dispositivo dal 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) } }) }