아마존 로케이션 SDK 및 라이브러리 - Amazon Location Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

아마존 로케이션 SDK 및 라이브러리

Amazon SDK Location은 Amazon Location 애플리케이션을 개발하는 데 유용한 기능을 제공하는 오픈 소스 라이브러리 세트입니다. 다음과 같은 기능이 포함됩니다.

  • 아마존 로케이션 클라이언트 — 아마존 로케이션 객체 AWS SDKv3는 웹 개발에서 쉽게 사용할 수 있도록 번들 및 패키징됩니다.

  • 인증 — 인증 유틸리티는 Amazon Location Service용 웹 페이지 JavaScript, iOS API 또는 Android 애플리케이션을 구축할 때 Amazon Cognito 또는 키를 사용하여 인증을 간소화합니다.

  • 트래킹 — 모바일 SDKs 트래킹은 iOS와 안드로이드에서 사용할 수 있습니다. SDK따라서 모바일 애플리케이션이 Amazon 위치 추적기와 더 쉽게 상호 작용할 수 있습니다.

  • Amazon 위치 지리 JSON 함수지역 JSON 변환 유틸리티를 사용하면 업계 표준 지리 형식 데이터와 Amazon 위치 JSON 형식 간에 쉽게 변환할 수 있습니다. API

Amazon 위치 사용을 시작하는 방법 SDK

Amazon SDK 로케이션은 애플리케이션에서 Amazon Location Service를 더 간단하게 사용할 수 있는 함수 세트입니다. 이러한 기능을 JavaScript 애플리케이션에 설치하고 가져올 수 있습니다. 다음 섹션에서는 Amazon Location 클라이언트, 인증 및 Geo JSON 도우미 라이브러리에 대해 설명합니다.

Amazon Location 클라이언트

다음과 같이 AWS SDKv3에서는 서비스별로 SDK 구분됩니다. 필요한 부분만 설치할 수 있습니다. 예컨대 Amazon Location 클라이언트와 Amazon Cognito용 자격 증명 공급자를 설치하려면 다음 명령을 사용하세요.

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

JavaScript 웹 프론트엔드 애플리케이션에서 Amazon Location Service를 쉽게 사용할 수 있도록 하기 위해, AWS Amazon Location 라이브러리 및 자격 증명 공급자의 호스팅 번들을 제공합니다. 번들 클라이언트를 사용하려면 다음과 같이 스크립트 태그에 해당 HTML 클라이언트를 추가하십시오.

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

패키지는 최신 상태로 유지되며 사용하기 쉽도록 이전 버전과 호환됩니다. 이 스크립트 태그를 사용하거나 NPM 설치하면 항상 최신 버전을 다운로드할 수 있습니다.

JavaScript 인증 도우미

Amazon 위치 JavaScript 인증 도우미를 사용하면 애플리케이션에서 Amazon Location API 호출을 할 때 더 간단하게 인증할 수 있습니다 JavaScript . 이 인증 도우미는 Amazon Cognito API또는 키를 인증 방법으로 사용할 때 특히 유용합니다. 이 라이브러리는 여기 -helper-js에서 GitHub 사용할 수 있는 오픈 소스 라이브러리입니다. https://github.com/aws-geospatial/ amazon-location-utilities-auth

참고

인증 도우미의 Amazon Cognito 지원은 Amazon Cognito의 페더레이션 자격 증명 기능을 지원하지 않습니다.

설치

웹팩과 같은 빌드 시스템을 사용하는 경우 로컬에 설치하거나 html에 태그가 포함된 미리 빌드된 JavaScript 번들을 포함하는 경우 라이브러리를 사용할 수 있습니다. <script>

  • 다음 명령을 사용하여 라이브러리를 설치합니다. NPM

    npm install @aws/amazon-location-utilities-auth-helper
  • HTML파일에서 다음 명령을 사용하여 스크립트를 로드합니다.

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

가져오기

JavaScript 애플리케이션에서 특정 함수를 사용하려면 해당 함수를 가져와야 합니다. 다음 코드는 기능 withIdentityPoolId을 애플리케이션으로 가져오는 데 사용됩니다.

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

인증 기능

Amazon 위치 인증 도우미에는 AuthHelper 객체를 반환하는 다음 기능이 포함됩니다.

  • async withIdentityPoolId( identityPoolId: string): AuthHelper— 이 함수는 Amazon Cognito에서 작동하도록 초기화된 AuthHelper 객체를 반환합니다.

  • async withAPIKey( API_KEY: string): AuthHelper— 이 함수는 키와 함께 작동하도록 초기화된 AuthHelper 객체를 반환합니다. API

AuthHelper 겍체는 다음과 같은 기능을 제공합니다.

  • AuthHelper.getMapAuthenticationOptions()— AuthHelper 객체의 이 함수는 MapLibre JS의 맵 옵션과 함께 사용할 수 transformRequest 있는 JavaScript 객체를 반환합니다. 자격 증명 풀로 초기화한 경우에만 제공됩니다.

  • AuthHelper.getLocationClientConfig()— AuthHelper 객체의 이 함수는 a를 초기화하는 데 사용할 수 credentials 있는 JavaScript 객체를 반환합니다. LocationClient

  • AuthHelper.getCredentials()— AuthHelper 객체의 이 함수는 Amazon Cognito의 내부 자격 증명을 반환합니다. 자격 증명 풀로 초기화한 경우에만 제공됩니다.

예: Amazon Cognito를 사용하여 MapLibre 맵 객체를 초기화하는 중 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 });

예: API 키로 MapLibre 맵 객체 초기화 (AuthHelper이 경우에는 필요 없음)

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

예: Location 클라이언트를 에서 초기화하십시오. AWS SDKJS의 경우 Amazon Cognito를 사용하고 AuthHelper

이 예제에서는 다음을 사용합니다. AWS SDK 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 });

예: 에서 위치 클라이언트 초기화 AWS SDKJS의 경우 API 키를 사용하고 AuthHelper

이 예제에서는 다음을 사용합니다. AWS SDK 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 });

지리 변환 도우미 JSON

Amazon 위치 지리 JSON 변환 도우미는 Amazon Location Service 데이터 유형을 업계 표준 지리 형식으로 또는 다른 형식으로 변환하는 도구를 제공합니다. JSON 예를 들어 JSON 지리는 지도에 지리 데이터를 MapLibre 렌더링하는 데 사용됩니다. 이 라이브러리는 여기 -js에서 GitHub 사용할 수 있는 오픈 소스 라이브러리입니다. https://github.com/aws-geospatial/ amazon-location-utilities-datatypes

설치

라이브러리는 웹팩과 같은 로컬 설치와 함께 사용하거나 html에 <script> 태그가 포함된 미리 빌드된 JavaScript 번들을 포함하여 사용할 수 있습니다.

  • 를 사용하여 다음 명령을 사용하여 라이브러리를 설치합니다. NPM

    npm install @aws/amazon-location-utilities-datatypes
  • HTML파일에서 다음 명령을 사용하여 스크립트를 로드합니다.

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

가져오기

JavaScript 애플리케이션에서 특정 함수를 사용하려면 해당 함수를 가져와야 합니다. 다음 코드는 기능 placeToFeatureCollection을 애플리케이션으로 가져오는 데 사용됩니다.

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

지리 JSON 변환 함수

Amazon 위치 지리 JSON 변환 도우미에는 다음과 같은 기능이 포함됩니다.

  • placeToFeatureCollection(place: GetPlaceResponse | searchPlaceIndexForPositionResponse | searchPlaceIndexForTextResponse, keepNull: boolean): Feature— 이 함수는 장소 검색 기능의 응답을 1개 이상의 포인트 피처가 있는 JSON FeatureCollection Geo로 변환합니다.

  • devicePositionToFeatureCollection(devicePositions: GetDevicePositionResponse | BatchGetDevicePositionResponse | GetDevicePositionHistoryResponse | ListDevicePositionsResponse, keepNull: boolean)— 이 기능은 트래커 장치 위치 기능의 응답을 1개 이상의 포인트 기능이 있는 JSON FeatureCollection Geo로 변환합니다.

  • routeToFeatureCollection(legs: CalculateRouteResponse): FeatureCollection— 이 함수는 경로 계산 함수의 응답을 단일 기능을 JSON FeatureCollection 갖춘 Geo로 변환합니다. MultiStringLine 경로의 각 구간은 의 LineString 항목으로 표시됩니다. MultiStringLine

  • geofenceToFeatureCollection(geofences: GetGeofenceResponse | PutGeofenceRequest | BatchPutGeofenceRequest | ListGeofencesResponse): FeatureCollection— 이 함수는 지오펜스 함수 요청 또는 응답을 Geowith Polygon 기능으로 변환합니다. JSON FeatureCollection 응답과 요청 모두에서 지오펜스를 변환할 수 있으므로 또는 를 사용하여 지오펜스를 업로드하기 전에 지도에 지오펜스를 표시할 수 있습니다. PutGeofence BatchPutGeofence

    이 기능은 원형 지오펜스를 근사 폴리곤이 있는 피처로 변환하지만, 필요한 경우 원형 지오펜스를 재현할 수 있는 “중심” 및 “반지름” 속성도 있습니다 (다음 기능 참조).

  • featureCollectionToGeofences(featureCollection: FeatureCollection): BatchPutGeofenceRequestEntry[]— 이 함수는 Polygon 기능이 JSON FeatureCollection 있는 Geo를 BatchPutGeofenceRequestEntry 객체 배열로 변환하므로 결과를 사용하여 요청을 생성할 수 있습니다. BatchPutGeofence

    의 피처에 “center” 및 “radius” 속성이 있는 경우, 해당 피처는 폴리곤의 지오메트리를 무시하고 원형 지오펜스 요청 항목으로 변환됩니다. FeatureCollection

예: 검색 결과를 포인트 레이어로 변환 MapLibre

이 예제에서는 다음을 사용합니다. AWS SDK 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", }, });

안드로이드 모바일 인증 SDK

이러한 유틸리티를 사용하면 Android 애플리케이션에서 Amazon Location Service를 API 호출할 때 인증할 수 있습니다. 이는 Amazon Cognito 또는 API키를 인증 방법으로 사용할 때 특히 유용합니다.

안드로이드 모바일 SDK 인증은 github: SDK안드로이드용 Amazon Location Service 모바일 인증에서 사용할 수 있습니다. 또한 모바일 SDK 인증과 AWS SDK에서 사용할 수 있습니다. AWS Maven 리포지토리.

설치

모바일 인증을 SDK 사용하려면 Android Studio의 build.gradle 파일에 다음과 같은 가져오기 문을 추가하세요.

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

인증 함수

인증 SDK 도우미에는 다음과 같은 기능이 있습니다.

  • authHelper.authenticateWithApiKey("My-Amazon-Location-API-Key"): LocationCredentialsProvider: 이 함수는 키와 함께 작동하도록 LocationCredentialsProvider 초기화된 값을 반환합니다. API

  • authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id"): LocationCredentialsProvider: 이 함수는 Amazon Cognito 자격 증명 풀과 함께 작동하도록 LocationCredentialsProvider 초기화된 값을 반환합니다.

사용량

를 SDK 코드에 사용하려면 다음 클래스를 가져오십시오.

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

인증 도우미 및 위치 클라이언트 제공자 인스턴스를 만들 때는 두 가지 옵션을 사용할 수 있습니다. Amazon 위치 API 키 또는 Amazon Cognito를 사용하여 인스턴스를 생성할 수 있습니다.

  • Amazon Location API Key를 사용하여 인증 도우미 인스턴스를 생성하려면 다음과 같이 도우미 클래스를 선언하십시오.

    var authHelper = AuthHelper(applicationContext) var locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithApiKey("My-Amazon-Location-API-Key")
  • Amazon Cognito를 사용하여 인증 도우미 인스턴스를 생성하려면 다음과 같이 도우미 클래스를 선언하십시오.

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

위치 자격 증명 공급자를 사용하여 Amazon Location 클라이언트 인스턴스를 생성하고 Amazon 위치 서비스를 호출할 수 있습니다. 다음 예제는 지정된 위도 및 경도 근처의 장소를 검색합니다.

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)

iOS 모바일 인증 SDK

이러한 유틸리티는 iOS 애플리케이션에서 Amazon Location Service를 API 호출할 때 인증하는 데 도움이 됩니다. 이는 Amazon Cognito 또는 API키를 인증 방법으로 사용할 때 특히 유용합니다.

iOS 모바일 SDK 인증은 github: iOS용 Amazon Location Service 모바일 SDK 인증에서 사용할 수 있습니다.

설치

Xcode SDK 프로젝트에 설치:

  1. 파일로 이동한 다음 XCode 프로젝트에 패키지 종속성 추가를 선택합니다.

  2. 검색 창에 패키지URL: https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-ios/를 입력하고 Enter 키를 누릅니다.

  3. amazon-location-mobile-auth-sdk-ios패키지를 선택하고 Add Package (패키지 추가) 를 누릅니다.

  4. AmazonLocationiOSAuthSDK패키지 제품을 선택하고 Add Package (패키지 추가) 를 누릅니다.

인증 기능

인증 SDK 도우미에는 다음과 같은 기능이 있습니다.

  • authHelper.authenticateWithApiKey("My-Amazon-Location-API-Key"): LocationCredentialsProvider: 이 함수는 키와 함께 작동하도록 LocationCredentialsProvider 초기화된 값을 반환합니다. API

  • authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id"): LocationCredentialsProvider: 이 함수는 Amazon Cognito 자격 증명 풀과 함께 작동하도록 LocationCredentialsProvider 초기화된 값을 반환합니다.

사용량

모바일 인증을 SDK 사용하려면 활동에 다음 명령문을 추가하십시오.

import AmazonLocationiOSAuthSDK import AWSLocationXCF

인증 도우미 및 위치 클라이언트 제공자 인스턴스를 만들 때는 두 가지 옵션이 있습니다. Amazon 위치 API 키 또는 Amazon Cognito를 사용하여 인스턴스를 생성할 수 있습니다.

  • Amazon Location API Key를 사용하여 인증 도우미 인스턴스를 생성하려면 다음과 같이 도우미 클래스를 선언하십시오.

    let authHelper = AuthHelper() let locationCredentialsProvider = authHelper.authenticateWithAPIKey(apiKey: "My-Amazon-Location-API-Key", region: "account-region")
  • Amazon Cognito를 사용하여 인증 도우미 인스턴스를 생성하려면 다음과 같이 도우미 클래스를 선언하십시오.

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

위치 자격 증명 공급자를 사용하여 Amazon Location 클라이언트 인스턴스를 생성하고 Amazon 위치 서비스를 호출할 수 있습니다. 다음 예제는 지정된 위도 및 경도 근처의 장소를 검색합니다.

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

Amazon Location 모바일 추적은 쉽게 인증하고, 디바이스 위치를 캡처하고, Amazon 위치 추적기로 위치 업데이트를 전송하는 데 도움이 되는 유틸리티를 SDK 제공합니다. 구성 가능한 업데이트 간격으로 위치 업데이트의 로컬 필터링을 SDK 지원합니다. 이렇게 하면 데이터 비용이 절감되고 Android 애플리케이션의 간헐적 연결이 최적화됩니다.

안드로이드 SDK 트래킹은 SDK안드로이드용 아마존 로케이션 모바일 트래킹에서 GitHub 사용할 수 있습니다. 또한 모바일 SDK 인증과 모바일 인증 모두 AWS SDK에서 사용할 수 있습니다. AWS Maven 리포지토리. Android SDK 트래킹은 일반 사용자와 함께 작동하도록 설계되었습니다. AWS SDK.

이 섹션에서는 Amazon Location 모바일 추적 Android에 대한 다음 주제를 다룹니다SDK.

설치

를 설치하려면 SDK Android 스튜디오에 있는 build.gradle 파일의 종속성 섹션에 다음 줄을 추가하세요.

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

사용량

이 절차는 를 사용하여 객체를 인증하고 생성하는 SDK 방법을 보여줍니다. LocationTracker

참고

이 절차에서는 섹션에 언급된 라이브러리를 가져온 것으로 가정합니다. 설치

  1. 코드에서 다음 클래스를 가져오세요.

    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. LocationTracker객체를 만들려면 LocationCredentialsProvider 파라미터가 필요하므로 AuthHelper 다음으로 를 생성합니다.

    // Create an authentication helper using credentials from Cognito val authHelper = AuthHelper(applicationContext) val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
  3. 이제 LocationCredentialsProviderLocationTrackerConfig 를 사용하여 LocationTracker 객체를 생성합니다.

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

필터

Amazon 위치 모바일 추적 SDK Android에는 세 가지 내장 위치 필터가 있습니다.

  • TimeLocationFilter: 정의된 시간 간격을 기준으로 업로드할 현재 위치를 필터링합니다.

  • DistanceLocationFilter: 지정된 거리 임계값을 기준으로 위치 업데이트를 필터링합니다.

  • AccuracyLocationFilter: 마지막 업데이트 이후 이동한 거리를 현재 위치의 정확도와 비교하여 위치 업데이트를 필터링합니다.

이 예제에서는 생성 LocationTracker 시 필터를 추가합니다.

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

이 예제는 다음을 사용하여 LocationTracker 런타임에 필터를 활성화 및 비활성화합니다.

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

Android 모바일 SDK 추적 함수

SDKAndroid용 Amazon 위치 모바일 추적에는 다음과 같은 기능이 포함됩니다.

  • 클래스: LocationTracker

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

    객체를 생성하는 이니셜라이저 함수입니다. LocationTracker 의 인스턴스가 LocationCredentialsProvider trackerName 필요하고 선택적으로 의 인스턴스가 필요합니다. LocationTrackingConfig 구성이 제공되지 않으면 기본값으로 초기화됩니다.

  • 클래스: LocationTracker

    start(locationTrackingCallback: LocationTrackingCallback)

    사용자 위치에 액세스하여 Amazon 위치 추적기로 전송하는 프로세스를 시작합니다.

  • 클래스: LocationTracker

    isTrackingInForeground()

    위치 추적이 현재 진행 중인지 확인합니다.

  • 클래스: LocationTracker

    stop()

    사용자 위치 추적 프로세스를 중지합니다.

  • 클래스: LocationTracker

    startTracking()

    사용자 위치에 액세스하여 위치를 다음 주소로 보내는 프로세스를 시작합니다. AWS 트래커.

  • 클래스: LocationTracker

    startBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)

    사용자 위치에 액세스하여 위치를 다음 주소로 보내는 프로세스를 시작합니다. AWS 애플리케이션이 백그라운드에 있는 동안 추적합니다. BackgroundTrackingMode 에는 다음과 같은 옵션이 있습니다.

    • ACTIVE_TRACKING: 이 옵션은 사용자의 위치 업데이트를 능동적으로 추적합니다.

    • BATTERY_SAVER_TRACKING: 이 옵션은 15분마다 사용자의 위치 업데이트를 추적합니다.

  • 수업: LocationTracker

    stopBackgroundService()

    사용자 위치에 액세스하여 위치를 다음 주소로 보내는 프로세스를 중지합니다. AWS 애플리케이션이 백그라운드에 있는 동안 추적합니다.

  • 클래스: LocationTracker

    getTrackerDeviceLocation()

    Amazon 위치 서비스에서 디바이스 위치를 검색합니다.

  • 클래스: LocationTracker

    getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)

    통합 위치 제공자 클라이언트에서 현재 장치 위치를 검색하여 Amazon Location Tracker에 업로드합니다.

  • 클래스: LocationTracker

    uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)

    구성된 위치 필터를 기반으로 필터링한 후 디바이스 위치를 Amazon Location 서비스에 업로드합니다.

  • 클래스: LocationTracker

    enableFilter(filter: LocationFilter)

    특정 위치 필터를 활성화합니다.

  • 클래스: LocationTracker

    checkFilterIsExistsAndUpdateValue(filter: LocationFilter)

    특정 위치 필터를 비활성화합니다.

  • 클래스: 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())

    이렇게 하면 사용자 정의 매개변수 LocationTrackerConfig 값으로 가 초기화됩니다. 매개변수 값이 제공되지 않으면 기본값으로 설정됩니다.

  • 클래스: LocationFilter

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

    LocationFilter는 사용자가 사용자 지정 필터 구현을 위해 구현할 수 있는 프로토콜입니다. 이전 위치와 현재 위치를 비교하고 현재 위치를 업로드해야 하는지 여부를 반환하는 shouldUpload 함수를 구현해야 합니다.

예시

다음 코드 샘플은 모바일 추적 SDK 기능을 보여줍니다.

이 예제에서는 LocationTracker 를 사용하여 백그라운드에서 추적을 시작하고 중지합니다.

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

iOS 모바일 트래킹 SDK

Amazon Location 모바일 추적은 쉽게 인증하고, 디바이스 위치를 캡처하고, Amazon 위치 추적기로 위치 업데이트를 전송하는 데 도움이 되는 유틸리티를 SDK 제공합니다. 구성 가능한 업데이트 간격으로 위치 업데이트의 로컬 필터링을 SDK 지원합니다. 이를 통해 데이터 비용이 절감되고 iOS 애플리케이션의 간헐적 연결이 최적화됩니다.

iOS SDK 추적은 SDKiOS용 Amazon GitHub 위치 모바일 추적에서 사용할 수 있습니다.

이 섹션에서는 Amazon Location 모바일 추적 iOS에 대한 다음 주제를 다룹니다SDK.

설치

SDKiOS용 모바일 추적을 설치하려면 다음 절차를 따르십시오.

  1. Xcode 프로젝트에서 파일로 이동하여 패키지 종속성 추가를 선택합니다.

  2. 검색 창에 https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/를 입력하고 엔터 키를 누릅니다URL.

  3. amazon-location-mobile-tracking-sdk-ios패키지를 선택하고 Add Package (패키지 추가) 를 클릭합니다.

  4. AmazonLocationiOSTrackingSDK패키지 제품을 선택하고 Add Package (패키지 추가) 를 클릭합니다.

사용량

다음 절차는 Cognito의 자격 증명을 사용하여 인증 도우미를 만드는 방법을 보여줍니다.

  1. 라이브러리를 설치한 후에는 설명 중 하나 또는 둘 모두를 파일에 추가해야 합니다. info.plist

    Privacy - Location When In Use Usage Description Privacy - Location Always and When In Use Usage Description
  2. 다음으로, AuthHelper 클래스에서 파일을 가져오세요.

    import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK
  3. 그런 다음 AuthHelper 객체를 만들고 다음과 함께 사용합니다. AWS SDKAmazon 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)

필터

Amazon 위치 모바일 추적 SDK iOS에는 세 개의 내장 위치 필터가 있습니다.

  • TimeLocationFilter: 정의된 시간 간격을 기준으로 업로드할 현재 위치를 필터링합니다.

  • DistanceLocationFilter: 지정된 거리 임계값을 기준으로 위치 업데이트를 필터링합니다.

  • AccuracyLocationFilter: 마지막 업데이트 이후 이동한 거리를 현재 위치의 정확도와 비교하여 위치 업데이트를 필터링합니다.

이 예제에서는 생성 LocationTracker 시 필터를 추가합니다.

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

이 예제는 다음을 사용하여 LocationTracker 런타임에 필터를 활성화 및 비활성화합니다.

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

iOS 모바일 SDK 추적 기능

SDKiOS용 Amazon 위치 모바일 추적에는 다음 기능이 포함됩니다.

  • 클래스: LocationTracker

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

    객체를 생성하는 이니셜라이저 함수입니다. LocationTracker 의 인스턴스가 LocationCredentialsProvider trackerName 필요하고 선택적으로 의 인스턴스가 필요합니다. LocationTrackingConfig 구성이 제공되지 않으면 기본값으로 초기화됩니다.

  • 클래스: LocationTracker

    setTrackerConfig(config: LocationTrackerConfig)

    이렇게 하면 위치 추적기 초기화 후 언제든지 Tracker 구성이 적용되도록 설정됩니다.

  • 클래스: LocationTracker

    getTrackerConfig()

    그러면 앱에서 사용하거나 수정할 위치 추적 구성을 가져옵니다.

    반환값: LocationTrackerConfig

  • 클래스: LocationTracker

    getDeviceId()

    위치 추적기에서 생성된 기기 ID를 가져옵니다.

    반환값: String?

  • 클래스: LocationTracker

    startTracking()

    사용자 위치에 액세스하여 위치를 다음 주소로 보내는 프로세스를 시작합니다. AWS 트래커.

  • 클래스: LocationTracker

    resumeTracking()

    사용자 위치에 액세스하여 위치로 전송하는 프로세스를 재개합니다. AWS 트래커.

  • 클래스: LocationTracker

    stopTracking()

    사용자 위치 추적 프로세스를 중지합니다.

  • 클래스: LocationTracker

    startBackgroundTracking(mode: BackgroundTrackingMode)

    사용자 위치에 액세스하여 위치를 다음 주소로 보내는 프로세스를 시작합니다. AWS 애플리케이션이 백그라운드에 있는 동안 추적합니다. BackgroundTrackingMode에는 다음과 같은 옵션이 있습니다.

    • Active:이 옵션은 위치 업데이트를 자동으로 일시 중지하지 않습니다.

    • BatterySaving:이 옵션은 위치 업데이트를 자동으로 일시 중지합니다.

    • None:이 옵션은 전체적으로 백그라운드 위치 업데이트를 비활성화합니다.

  • 클래스: LocationTracker

    resumeBackgroundTracking(mode: BackgroundTrackingMode)

    사용자 위치에 액세스하여 위치로 전송하는 프로세스를 재개합니다. AWS 애플리케이션이 백그라운드에 있는 동안 추적합니다.

  • 클래스: LocationTracker

    stopBackgroundTracking()

    사용자 위치에 액세스하여 위치를 다음 주소로 보내는 프로세스를 중지합니다. AWS 애플리케이션이 백그라운드에 있는 동안 추적합니다.

  • 클래스: LocationTracker

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

    시작일과 종료일 및 시간 사이에 사용자 장치의 업로드된 추적 위치를 검색합니다.

    반품: Void

  • 클래스: LocationTrackerConfig

    init()

    그러면 LocationTrackerConfig 기본값으로 가 초기화됩니다.

  • 클래스: 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)

    이렇게 하면 사용자 정의 매개변수 LocationTrackerConfig 값으로 가 초기화됩니다. 매개변수 값을 제공하지 않으면 기본값으로 설정됩니다.

  • 클래스: LocationFilter

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

    LocationFilter는 사용자가 사용자 지정 필터 구현을 위해 구현할 수 있는 프로토콜입니다. 사용자는 이전 위치와 현재 위치를 비교하고 현재 위치를 업로드해야 하는 경우 반환하는 shouldUpload 함수를 구현해야 합니다.

예시

이 섹션에서는 SDK iOS용 Amazon 위치 모바일 추적을 사용하는 예를 자세히 설명합니다.

참고

info.plist파일에 필요한 권한이 설정되어 있는지 확인하십시오. 이 권한은 사용량 섹션에 나열된 권한과 동일합니다.

다음 예제는 장치 위치를 추적하고 추적된 위치를 검색하는 기능을 보여줍니다.

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

위치 추적 시작:

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

위치 추적 재개:

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

위치 추적 중지:

locationTracker.stopTracking()

백그라운드 추적 시작:

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

백그라운드 트래킹 재개:

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

백그라운드 트래킹을 중지하려면:

locationTracker.stopBackgroundTracking()

트래커에서 기기의 추적 위치 검색:

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