

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

# AWS IoT Core 디바이스 위치
<a name="device-location"></a>


|  | 
| --- |
|  AWS IoT Core 디바이스 위치 기능을 사용하기 전에이 기능의 이용 약관을 검토하세요. AWS 는 검색을 실행하는 데 사용되는 위치 데이터 및 기타 정보와 같은 지리적 위치 검색 요청 파라미터를 현재 사용 중인 외부에 있을 수 있는 선택한 타사 데이터 공급자에게 전송할 수 AWS 리전 있습니다. 사용할 서드파티 공급자와 솔버는 수신된 입력 페이로드를 기반으로 선택됩니다. 자세한 내용은 [AWS 서비스 약관](https://aws.amazon.com/service-terms)을 참조하세요. | 

 AWS IoT Core 디바이스 위치를 사용하여 타사 솔버를 사용하여 IoT 디바이스의 위치를 테스트합니다. *솔버*는 측정 데이터를 확인하고 디바이스의 위치를 추정하는 서드 파티 공급업체에서 제공하는 알고리즘입니다. 디바이스의 위치를 식별하면 현장에서 디바이스를 추적하고 디버깅하여 문제를 해결할 수 있습니다.

다양한 소스에서 수집된 측정 데이터가 확인되고 지리적 위치 정보가 [GeoJSON](https://geojson.org/) 페이로드로 보고됩니다. GeoJSON 형식은 지리적 데이터 구조를 인코딩하는 데 사용되는 형식입니다. 페이로드에는 [세계 측지 시스템 좌표계(WGS84)](https://gisgeography.com/wgs84-world-geodetic-system/)를 기반으로 하는 디바이스 위치의 위도 및 경도 좌표가 포함됩니다.

**Topics**
+ [측정 유형 및 솔버](#location-measurement-types)
+ [AWS IoT Core 디바이스 위치 작동 방식](#location-how-works)
+ [AWS IoT Core 디바이스 위치를 사용하는 방법](#location-how-use)
+ [IoT 디바이스의 위치 확인](device-location-resolve-solvers.md)
+ [디바이스 위치 MQTT 주제를 사용하여 AWS IoT Core 디바이스 위치 확인](device-location-reserved-topics.md)
+ [위치 솔버 및 디바이스 페이로드](device-location-solvers-payload.md)

## 측정 유형 및 솔버
<a name="location-measurement-types"></a>

AWS IoT Core Device Location은 타사 공급업체와 협력하여 측정 데이터를 해결하고 예상 디바이스 위치를 제공합니다. 다음 표에는 측정 유형과 서드 파티 위치 솔버, 지원되는 디바이스에 대한 정보가 나와 있습니다. LoRaWAN 디바이스 및 해당 디바이스의 위치 구성에 대한 자세한 내용은 [LoRaWAN 리소스의 위치 구성](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/lorawan-configure-location.html) 섹션을 참조하세요.

**참고**  
일반 IoT 디바이스 및 Sidewalk 디바이스는 디바이스 위치 MQTT 주제를 사용하여 위치 정보를 얻을 수 있습니다. Wi-Fi, 셀룰러 및 IP 주소 측정 유형의 경우 디바이스가 정의된 GeoJSON 형식으로 [예약된 주제에](device-location-reserved-topics.md) 측정 데이터를 게시하는 경우 AWS IoT Core 디바이스 위치는 디바이스의 위치를 확인할 수 있습니다. GNSS 측정 유형의 경우 GNSS 솔버를 사용하여 확인된 위치 정보를 얻기 위해 측정 데이터를 스캔하려면 디바이스에 LR11xx 칩이 있어야 합니다. LoRaWAN 디바이스의 위치 정보를 가져오는 방법에 대한 자세한 내용은 *AWS IoT Wireless 설명서*의 [Configure position for LoRaWAN resources](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/lorawan-configure-location.html)를 참조하세요.


**측정 유형 및 솔버**  

| 측정 유형 | 서드 파티 솔버 | 지원되는 디바이스 | 
| --- | --- | --- | 
| Wi-Fi 액세스 포인트 | Wi-Fi 기반 솔버  | 일반 IoT 디바이스, LoRaWAN 및 Amazon Sidewalk 디바이스 | 
| 셀룰러 라디오 타워: GSM, LTE, CDMA, SCDMA, WCMDA 및 TD-SCDMA 데이터 | 셀룰러 기반 솔버  | 일반 IoT 디바이스, LoRaWAN 및 Amazon Sidewalk 디바이스 | 
| IP 주소 | IP 역방향 조회 솔버 | TCP/IP를 통해 연결하는 모든 IoT 디바이스 | 
| GNSS 스캔 데이터(NAV 메시지) | GNSS 솔버 | 일반 IoT 디바이스, LoRaWAN 및 Amazon Sidewalk 디바이스 | 
| Bluetooth Low Energy(BLE) | BLE 기반 솔버 | Amazon Sidewalk 디바이스 | 

위치 솔버에 대한 자세한 내용과 다양한 측정 유형의 디바이스 페이로드를 보여주는 예는 [위치 솔버 및 디바이스 페이로드](device-location-solvers-payload.md) 섹션을 참조하세요.

## AWS IoT Core 디바이스 위치 작동 방식
<a name="location-how-works"></a>

다음 다이어그램은 AWS IoT Core Device Location이 측정 데이터를 수집하고 디바이스의 위치 정보를 확인하는 방법을 보여줍니다.

![\[AWS IoT Core 디바이스 위치가 원시 측정 데이터를 사용하고 디바이스 위치를 확인하는 방법을 보여주는 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/images/iot-device-location.png)


다음 단계에서는 AWS IoT Core Device Location의 작동 방식을 보여줍니다.

1. 

**측정 데이터 수신**

   먼저 디바이스 위치와 관련된 원시 측정 데이터가 디바이스에서 전송됩니다. 측정 데이터는 JSON 페이로드로 지정됩니다.

1. 

**측정 데이터 처리**

   측정 데이터가 처리되고 AWS IoT Core 디바이스 위치는 사용할 측정 데이터를 선택합니다.이 데이터는 Wi-Fi, 셀룰러, GNSS 스캔 또는 IP 주소 정보일 수 있습니다.

1. 

**솔버 선택**

   측정 데이터를 기반으로 서드 파티 솔버가 선택됩니다. 예를 들어, 측정 데이터에 Wi-Fi 및 IP 주소 정보가 포함된 경우 Wi-Fi 솔버와 IP 역방향 조회 솔버가 선택됩니다.

1. 

**확인된 위치 가져오기**

   API 요청은 위치를 확인하도록 요청하는 솔버 공급자에게 전송됩니다. 그러면 AWS IoT Core 디바이스 위치는 솔버에서 예상 지리적 위치 정보를 가져옵니다.

1. 

**확인된 위치 선택**

   확인된 위치 정보와 정확도를 비교하고 AWS IoT Core 디바이스 위치는 정확도가 가장 높은 지리적 위치 결과를 선택합니다.

1. 

**위치 정보 출력**

   지리적 위치 정보가 GeoJSON 페이로드로 전송됩니다. 페이로드에는 WGS84 지리 좌표, 정확도 정보, 신뢰 수준, 확인된 위치를 가져온 타임스탬프가 포함됩니다.

## AWS IoT Core 디바이스 위치를 사용하는 방법
<a name="location-how-use"></a>

다음 단계에서는 AWS IoT Core 디바이스 위치를 사용하는 방법을 보여줍니다.

1. 

**측정 데이터 제공**

   디바이스 위치와 관련된 원시 측정 데이터를 JSON 페이로드로 지정합니다. 페이로드 측정 데이터를 검색하려면 디바이스 로그로 이동하거나 CloudWatch Logs를 사용하여 페이로드 데이터 정보를 복사합니다. JSON 페이로드에는 하나 이상의 데이터 측정 유형이 포함되어야 합니다. 다양한 솔버의 페이로드 형식을 보여주는 예는 [위치 솔버 및 디바이스 페이로드](device-location-solvers-payload.md) 섹션을 참조하세요.

1. 

**위치 정보 확인**

    AWS IoT 콘솔의 [디바이스 위치](https://console.aws.amazon.com/iot/home#/device-location-test) 페이지 또는 [GetPositionEstimate](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GetPositionEstimate.html) API 작업을 사용하여 페이로드 측정 데이터를 전달하고 디바이스 위치를 확인합니다. 그런 다음 AWS IoT Core 디바이스 위치는 정확도가 가장 높은 솔버를 선택하고 디바이스 위치를 보고합니다. 자세한 내용은 [IoT 디바이스의 위치 확인](device-location-resolve-solvers.md) 단원을 참조하십시오.

1. 

**위치 정보 복사**

    AWS IoT Core 디바이스 위치에서 확인되고 GeoJSON 페이로드로 보고된 지리적 위치 정보를 확인합니다. 애플리케이션 및 기타 AWS 서비스에 사용할 페이로드를 복사할 수 있습니다. 예를 들어 [Location](location-rule-action.md) AWS IoT 규칙 작업을 사용하여 지리적 위치 데이터를 Amazon Location Service로 전송할 수 있습니다.

다음 주제에서는 AWS IoT Core 디바이스 위치를 사용하는 방법과 디바이스 위치 페이로드의 예를 보여줍니다.
+ [IoT 디바이스의 위치 확인](device-location-resolve-solvers.md)
+ [위치 솔버 및 디바이스 페이로드](device-location-solvers-payload.md)

# IoT 디바이스의 위치 확인
<a name="device-location-resolve-solvers"></a>

 AWS IoT Core 디바이스 위치를 사용하여 디바이스에서 측정 데이터를 디코딩하고 타사 솔버를 사용하여 디바이스 위치를 확인합니다. 확인된 위치는 지리 좌표 및 정확도 정보가 포함된 GeoJSON 페이로드로 생성됩니다. AWS IoT 콘솔, AWS IoT 무선 API 또는에서 디바이스의 위치를 확인할 수 있습니다 AWS CLI.

**Topics**
+ [디바이스 위치 확인(콘솔)](#location-resolve-console)
+ [디바이스 위치 확인(API)](#location-resolve-api)
+ [위치를 확인할 때 발생하는 오류 해결](#location-resolve-troubleshoot)

## 디바이스 위치 확인(콘솔)
<a name="location-resolve-console"></a>

디바이스 위치를 확인하려면(콘솔)

1.  AWS IoT 콘솔의 [디바이스 위치](https://console.aws.amazon.com/iot/home#/device-location-test) 페이지로 이동합니다.

1. 디바이스 로그 또는 CloudWatch Logs에서 페이로드 측정 데이터를 가져와서 **페이로드를 통한 위치 해석** 섹션에 입력합니다.

   다음 코드는 샘플 JSON 페이로드를 보여줍니다. 페이로드에는 셀룰러 및 Wi-Fi 측정 데이터가 포함됩니다. 페이로드에 추가 유형의 측정 데이터가 포함된 경우 정확도가 가장 높은 솔버가 사용됩니다. 자세한 정보와 페이로드의 예는 [위치 솔버 및 디바이스 페이로드](device-location-solvers-payload.md) 섹션을 참조하세요.
**참고**  
JSON 페이로드에는 하나 이상의 측정 데이터 유형이 포함되어야 합니다.

   ```
   {
       "Timestamp": 1664313161,
       "Ip":{
           "IpAddress": "54.240.198.35"        
       },
       "WiFiAccessPoints": [{
           "MacAddress": "A0:EC:F9:1E:32:C1",
           "Rss": -77
       }],
       "CellTowers": {
           "Gsm": [{
               "Mcc": 262,
               "Mnc": 1,
               "Lac": 5126,
               "GeranCid": 16504,
               "GsmLocalId": {
                   "Bsic": 6,
                   "Bcch": 82
               },
               "GsmTimingAdvance": 1,
               "RxLevel": -110,
               "GsmNmr": [{
                   "Bsic": 7,
                   "Bcch": 85,
                   "RxLevel": -100,
                   "GlobalIdentity": {
                       "Lac": 1,
                       "GeranCid": 1
                   }
               }]
           }],
           "Wcdma": [{
               "Mcc": 262,
               "Mnc": 7,
               "Lac": 65535,
               "UtranCid": 14674663,
               "WcdmaNmr": [{
                       "Uarfcndl": 10786,
                       "UtranCid": 14674663,
                       "Psc": 149
                   },
                   {
                       "Uarfcndl": 10762,
                       "UtranCid": 14674663,
                       "Psc": 211
                   }
               ]
           }],
           "Lte": [{
               "Mcc": 262,
               "Mnc": 2,
               "EutranCid": 2898945,
               "Rsrp": -50,
               "Rsrq": -5,
               "LteNmr": [{
                       "Earfcn": 6300,
                       "Pci": 237,
                       "Rsrp": -60,
                       "Rsrq": -6,
                       "EutranCid": 2898945
                   },
                   {
                       "Earfcn": 6300,
                       "Pci": 442,
                       "Rsrp": -70,
                       "Rsrq": -7,
                       "EutranCid": 2898945
                   }
               ]
           }]
       }
   }
   ```

1. 위치 정보를 확인하려면 **Resolve**(확인)를 선택합니다.

   위치 정보는 blob 유형이며 지리적 데이터 구조를 인코딩하는 데 사용되는 GeoJSON 형식의 페이로드로 반환됩니다. 페이로드에는 다음이 포함됩니다.
   + 위도 및 경도 정보를 포함하는 WGS84 지리 좌표. 고도 정보도 포함될 수 있습니다.
   + 보고된 위치 정보의 유형(예: **포인트**). 포인트 위치 유형은 [GeoJSON 포인트](https://geojson.org/geojson-spec.html#point)로 인코딩된 WGS84 위도 및 경도로 위치를 나타냅니다.
   + 해석기에서 추정된 위치 정보와 실제 디바이스 위치 간의 차이를 미터로 나타내는 수평 및 수직 정확도 정보.
   + 위치 추정치 응답의 불확실성을 나타내는 신뢰 수준. 기본값은 0.68이며, 이는 실제 디바이스 위치가 추정된 위치의 불확실성 반경 내에 있을 확률이 68%임을 나타냅니다.
   + 디바이스가 위치한 도시, 주, 국가 및 우편번호. 이 정보는 IP 역방향 조회 해석기를 사용하는 경우에만 보고됩니다.
   + 위치가 확인된 날짜와 시간에 해당하는 타임스탬프 정보. Unix 타임스탬프 형식이 사용됩니다.

   다음 코드는 위치를 확인하여 반환된 샘플 GeoJSON 페이로드를 보여줍니다.
**참고**  
 AWS IoT Core Device Location이 위치 확인을 시도할 때 오류를 보고하는 경우 오류를 해결하고 위치를 해결할 수 있습니다. 자세한 내용은 [위치를 확인할 때 발생하는 오류 해결](#location-resolve-troubleshoot) 단원을 참조하십시오.

   ```
   {
       "coordinates": [
           13.376076698303223,
           52.51823043823242
       ],
       "type": "Point",
       "properties": {
           "verticalAccuracy": 45,
           "verticalConfidenceLevel": 0.68,
           "horizontalAccuracy": 303,
           "horizontalConfidenceLevel": 0.68,
           "country": "USA",
           "state": "CA",
           "city": "Sunnyvalue",
           "postalCode": "91234",
           "timestamp": "2022-11-18T12:23:58.189Z"
       }
   }
   ```

1. **리소스 위치** 섹션으로 이동하여 AWS IoT Core 디바이스 위치에서 보고하는 지리적 위치 정보를 확인합니다. 다른 애플리케이션 및에 사용할 AWS 서비스페이로드를 복사할 수 있습니다. 예를 들어, [Location](location-rule-action.md)를 사용하여 지리적 위치 데이터를 Amazon Location Service로 전송할 수 있습니다.

## 디바이스 위치 확인(API)
<a name="location-resolve-api"></a>

 AWS IoT 무선 API를 사용하여 디바이스 위치를 확인하려면 [GetPositionEstimate](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GetPositionEstimate.html) API 작업 또는 [get-position-estimate](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-position-estimate.html) CLI 명령을 사용합니다. 페이로드 측정 데이터를 입력으로 지정하고 API 작업을 실행하여 디바이스 위치를 확인합니다.

**참고**  
`GetPositionEstimate` API 작업은 디바이스 또는 상태 정보를 저장하지 않으며 과거 위치 데이터를 검색하는 데 사용할 수 없습니다. 측정 데이터를 확인하고 추정된 위치를 산출하는 일회성 작업을 수행합니다. 위치 정보를 검색하려면 이 API 작업을 수행할 때마다 페이로드 정보를 지정해야 합니다.

다음 명령은 이 API 작업을 사용하여 위치를 확인하는 방법의 예를 보여줍니다.

**참고**  
`get-position-estimate` CLI 명령을 실행할 때 출력 JSON 파일을 첫 번째 입력으로 지정해야 합니다. 이 JSON 파일은 CLI에서 응답으로 얻은 예상 위치 정보를 GeoJSON 형식으로 저장합니다. 예를 들어 다음 명령은 위치 정보를 *locationout.json* 파일에 저장합니다.

```
aws iotwireless get-position-estimate locationout.json \
    --ip IpAddress=""54.240.198.35"" \ 
    --wi-fi-access-points \ 
        MacAddress="A0:EC:F9:1E:32:C1",Rss=-75 \
        MacAddress="A0:EC:F9:15:72:5E",Rss=-67
```

이 예제에는 측정 유형으로 Wi-Fi 액세스 포인트와 IP 주소가 모두 포함됩니다. AWS IoT Core 디바이스 위치는 Wi-Fi 솔버와 IP 역방향 조회 솔버 중에서 선택하고 정확도가 더 높은 솔버를 선택합니다.

확인돈 위치는 지리적 데이터 구조를 인코딩하는 데 사용되는 GeoJSON 형식의 페이로드로 반환됩니다. 그런 다음 이 정보는 *locationout.json* 파일에 저장됩니다. 페이로드에는 WGS84 위도 및 경도 좌표, 정확도 및 신뢰 수준 정보, 위치 데이터 유형, 위치가 확인된 타임스탬프가 포함됩니다.

```
{
    "coordinates": [
        13.37704086303711,
        52.51865005493164
    ],
    "type": "Point",
    "properties": {
        "verticalAccuracy": 707,
        "verticalConfidenceLevel": 0.68,
        "horizontalAccuracy": 389,
        "horizontalConfidenceLevel": 0.68,
        "country": "USA",
        "state": "CA",
        "city": "Sunnyvalue",
        "postalCode": "91234",
        "timestamp": "2022-11-18T14:03:57.391Z"
    }
}
```

## 위치를 확인할 때 발생하는 오류 해결
<a name="location-resolve-troubleshoot"></a>

위치를 확인하려고 하면 다음 오류 코드 중 하나가 표시될 수 있습니다. AWS IoT Core 디바이스 위치는 `GetPositionEstimate` API 작업을 사용할 때 오류를 생성하거나 AWS IoT 콘솔의 오류에 해당하는 행 번호를 참조할 수 있습니다.
+ 

**400 오류**  
이 오류는 디바이스 페이로드 JSON의 형식을 AWS IoT Core 디바이스 위치에서 확인할 수 없음을 나타냅니다. 다음과 같은 이유로 오류가 발생할 수 있습니다.
  + JSON 측정 데이터의 형식이 잘못되었습니다.
  + 페이로드에 타임스탬프 정보만 포함되어 있습니다.
  + IP 주소와 같은 측정 데이터 파라미터가 유효하지 않습니다.

  이 오류를 해결하려면 JSON 형식이 올바른지, 하나 이상의 측정 유형의 데이터가 입력으로 포함되어 있는지 확인합니다. IP 주소가 잘못된 경우 오류를 해결하기 위해 유효한 IP 주소를 제공하는 방법에 대한 자세한 내용은 [IP 역방향 조회 솔버](device-location-solvers-payload.md#location-solvers-ip) 섹션을 참조하세요.
+ 

**403 오류**  
이 오류는 API 작업을 수행하거나 AWS IoT 콘솔을 사용하여 디바이스 위치를 검색할 수 있는 권한이 없음을 나타냅니다. 이 오류를 해결하려면 이 작업을 수행하는 데 필요한 권한이 있는지 확인합니다. 세션 또는 AWS Management Console 세션 AWS CLI 토큰이 만료된 경우이 오류가 발생할 수 있습니다. 이 오류를 해결하려면를 사용하도록 세션 토큰을 새로 고치거나 AWS CLI에서 로그아웃 AWS Management Console 한 다음 자격 증명을 사용하여 로그인합니다.
+ 

**404 오류**  
이 오류는 AWS IoT Core 디바이스 위치에서 위치 정보를 찾거나 해결하지 못했음을 나타냅니다. 측정 데이터 입력에 데이터가 충분하지 않은 경우 등으로 인해 오류가 발생할 수 있습니다. 예제:
  + MAC 주소 또는 셀룰러 타워 정보가 충분하지 않습니다.
  + 위치 조회 및 검색에 IP 주소를 사용할 수 없습니다.
  + GNSS 페이로드가 충분하지 않습니다.

  이러한 경우 오류를 해결하려면 측정 데이터에 디바이스 위치 확인에 필요한 충분한 정보가 포함되어 있는지 확인합니다.
+ 

**500 오류**  
이 오류는 AWS IoT Core Device Location에서 위치 확인을 시도할 때 내부 서버 예외가 발생했음을 나타냅니다. 이 오류를 해결하려면 세션을 새로 고치고 확인할 측정 데이터를 다시 전송해 봅니다.

# 디바이스 위치 MQTT 주제를 사용하여 AWS IoT Core 디바이스 위치 확인
<a name="device-location-reserved-topics"></a>

예약된 MQTT 주제를 사용하여 디바이스 위치 기능을 통해 AWS IoT Core 디바이스의 최신 위치 정보를 가져올 수 있습니다.

## 디바이스 위치 MQTT 주제의 형식
<a name="device-location-topics-format"></a>

 AWS IoT Core 디바이스 위치에 대한 예약 주제는 다음 접두사를 사용합니다.

`$aws/device_location/{customer_device_id}/`

전체 주제를 만들려면 먼저 디바이스를 식별하는 데 사용하는 고유 ID로 `customer_device_id`를 바꾸세요. 디바이스가 AWS IoT 사물로 등록된 `thingName`경우 for LoRaWAN 및 Sidewalk 디바이스와 `WirelessDeviceId`같은와를 지정하는 것이 좋습니다. 그런 다음, 다음 섹션에 표시된 것과 같이 주제에 `get_position_estimate` 및 `get_position_estimate/accepted` 등의 주제 스텁을 추가합니다.

**참고**  
`{customer_device_id}`에는 문자, 숫자 및 대시만 포함할 수 있습니다. 디바이스 위치 주제를 구독할 때는 더하기 기호(\$1)만 와일드카드 문자로 사용할 수 있습니다. 예를 들어, `{customer_device_id}`에 `+` 와일드카드를 사용하여 디바이스의 위치 정보를 얻을 수 있습니다. `$aws/device_location/+/get_position_estimate/accepted` 주제를 구독하는 경우 성공적으로 해석되면 임의의 디바이스 ID와 일치하는 디바이스의 위치 정보가 포함된 메시지가 게시됩니다.

다음은 AWS IoT Core 디바이스 위치와 상호 작용하는 데 사용되는 예약된 주제입니다.


**디바이스 위치 MQTT 주제**  

| Topic | 허용된 작업 | 설명 | 
| --- | --- | --- | 
|  \$1aws/device\$1location/*customer\$1device\$1id*/get\$1position\$1estimate  | 게시 |  디바이스는이 주제에 게시하여 디바이스 AWS IoT Core 위치에서 스캔한 원시 측정 데이터를 확인할 수 있습니다.  | 
|  \$1aws/device\$1location/*customer\$1device\$1id*/get\$1position\$1estimate/accepted  | Subscribe |  AWS IoT Core Device Location은 디바이스 위치를 성공적으로 확인하면이 주제에 위치 정보를 게시합니다.  | 
|  \$1aws/device\$1location/*customer\$1device\$1id*/get\$1position\$1estimate/rejected  | Subscribe |  AWS IoT Core 디바이스 위치가 디바이스 위치를 확인하지 못하면이 주제에 오류 정보를 게시합니다.  | 

## 디바이스 위치 MQTT 주제 정책
<a name="device-location-topics-policy"></a>

디바이스 위치 주제에서 메시지를 수신하려면 디바이스가 AWS IoT 디바이스 게이트웨이에 연결하고 MQTT 주제를 구독하도록 허용하는 정책을 사용해야 합니다.

다음은 다양한 주제에 대한 메시지를 수신하는 데 필요한 정책의 예입니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/accepted",
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/rejected"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/accepted",
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/rejected"
            ]
        }
    ]
}
```

## 디바이스 위치 주제 및 페이로드
<a name="device-location-topics-payload"></a>

다음은 AWS IoT Core 디바이스 위치 주제, 메시지 페이로드의 형식 및 각 주제에 대한 예제 정책을 보여줍니다.

**Topics**
+ [/get\$1position\$1estimate](#get-position-estimate)
+ [/get\$1position\$1estimate/accepted](#get-position-estimate-accepted)
+ [/get\$1position\$1estimate/rejected](#get-position-estimate-rejected)

### /get\$1position\$1estimate
<a name="get-position-estimate"></a>

이 주제에 메시지를 게시하여 디바이스 위치에서 확인할 AWS IoT Core 디바이스의 원시 측정 데이터를 가져옵니다.

```
$aws/device_location/customer_device_id/get_position_estimate
```

AWS IoT Core Device Location은 [/get\$1position\$1estimate/accepted](#get-position-estimate-accepted) 또는에 게시하여 응답합니다[/get\$1position\$1estimate/rejected](#get-position-estimate-rejected).

**참고**  
이 주제에 게시된 메시지는 유효한 JSON 페이로드여야 합니다. 입력 메시지가 유효한 JSON 형식이 아닌 경우 응답을 받을 수 없습니다. 자세한 내용은 [메시지 페이로드](#get-position-estimate-payload)를 참조하세요.

#### 메시지 페이로드
<a name="get-position-estimate-payload"></a>

메시지 페이로드 형식은 AWS IoT Wireless API 작업 요청 본문인와 유사한 구조를 따릅니다[https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GetPositionEstimate.html](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GetPositionEstimate.html). OTA 업데이트는 다음을 포함합니다.
+ 위치가 해석된 날짜와 시간에 해당하는 선택적 `Timestamp` 문자열. `Timestamp` 문자열의 최소 길이는 1자이고 최대 길이는 10자입니다.
+ 요청을 응답에 매핑하는 데 사용할 수 있는 선택적 `MessageId` 문자열. 이 문자열을 지정하면 `get_position_estimate/accepted` 또는 `get_position_estimate/rejected` 주제에 게시된 메시지에 이 `MessageId`가 포함됩니다. `MessageID` 문자열의 최소 길이는 1자이고 최대 길이는 256자입니다.
+ 다음 측정 유형 중 하나 이상을 포함하는 디바이스의 측정 데이터:
  + [https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_WiFiAccessPoint.html](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_WiFiAccessPoint.html)
  + [https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_CellTowers.html](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_CellTowers.html)
  + [https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_Ip.html](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_Ip.html)
  + [https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_Gnss.html](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_Gnss.html)

다음은 샘플 메시지 페이로드를 보여줍니다.

```
{
    "Timestamp": "1664313161",               
    "MessageId": "ABCD1",                
    "WiFiAccessPoints":  [                           
        {
            "MacAddress": "A0:EC:F9:1E:32:C1",                   
            "Rss": -66 
        }
    ],    
    "Ip":{
        "IpAddress": "54.192.168.0"                         
    },
    "Gnss":{
      "Payload":"8295A614A2029517F4F77C0A7823B161A6FC57E25183D96535E3689783F6CA48",
      "CaptureTime":1354393948
    }
}
```

#### 예제 정책
<a name="get-position-estimate-policy"></a>

다음은 필요한 정책의 예입니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate"
            ]
        }
    ]
}
```

### /get\$1position\$1estimate/accepted
<a name="get-position-estimate-accepted"></a>

AWS IoT Core Device Location은 디바이스에 대해 확인된 위치 정보를 반환할 때이 주제에 대한 응답을 게시합니다. 위치 정보는 [GeoJSON 형식](https://geojson.org/)으로 반환됩니다.

```
$aws/device_location/customer_device_id/get_position_estimate/accepted
```

다음은 메시지 페이로드와 예시 정책을 보여줍니다.

#### 메시지 페이로드
<a name="get-position-estimate-accepted-payload"></a>

다음은 GeoJSON 형식의 메시지 페이로드 예시입니다. 원시 측정 데이터에 `MessageId`를 지정하고 AWS IoT Core 디바이스 위치가 위치 정보를 성공적으로 해결한 경우 메시지 페이로드는 동일한 `MessageId` 정보를 반환합니다.

```
{
    "coordinates": [
        13.37704086303711,
        52.51865005493164
    ],
    "type": "Point",
    "properties": {
        "verticalAccuracy": 707,
        "verticalConfidenceLevel": 0.68,
        "horizontalAccuracy": 389,
        "horizontalConfidenceLevel": 0.68,
        "country": "USA",
        "state": "CA",
        "city": "Sunnyvalue",
        "postalCode": "91234",        
        "timestamp": "2022-11-18T14:03:57.391Z",
        "messageId": "ABCD1"
    }
}
```

#### 예제 정책
<a name="get-position-estimate-accepted-policy"></a>

다음은 필요한 정책의 예입니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/accepted"
            ]
        }
    ]
}
```

### /get\$1position\$1estimate/rejected
<a name="get-position-estimate-rejected"></a>

AWS IoT Core 디바이스 위치가 디바이스 위치를 확인하지 못하면이 주제에 대한 오류 응답을 게시합니다.

```
$aws/device_location/customer_device_id/get_position_estimate/rejected
```

다음은 메시지 페이로드와 예시 정책을 보여줍니다. 이러한 오류에 대한 자세한 내용은 [위치를 확인할 때 발생하는 오류 해결](device-location-resolve-solvers.md#location-resolve-troubleshoot) 섹션을 참조하세요.

#### 메시지 페이로드
<a name="get-position-estimate-rejected-payload"></a>

다음은 AWS IoT Core 디바이스 위치가 위치 정보를 확인하지 못한 이유를 나타내는 오류 코드와 메시지를 제공하는 메시지 페이로드의 예입니다. 원시 측정 데이터를 제공할 `MessageId` 때를 지정했고 AWS IoT Core 디바이스 위치가 위치 정보를 확인하지 못한 경우 메시지 페이로드에 동일한 `MessageId` 정보가 반환됩니다.

```
{
    "errorCode": 500,
    "errorMessage":"Internal server error",
    "messageId": "ABCD1"
}
```

#### 예제 정책
<a name="get-position-estimate-rejected-policy"></a>

다음은 필요한 정책의 예입니다.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:Subscribe"
      ],
      "Resource": [
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/rejected"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "iot:Receive"
      ],
      "Resource": [
        "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/rejected"
      ]
    }
  ]
}
```

# 위치 솔버 및 디바이스 페이로드
<a name="device-location-solvers-payload"></a>

Location 솔버는 IoT 디바이스의 위치를 확인하는 데 사용할 수 있는 알고리즘입니다. AWS IoT Core Device Location은 다음 위치 솔버를 지원합니다. 여기서는 이러한 측정 유형에 대한 JSON 페이로드 형식의 예, 솔버에서 지원하는 디바이스 및 위치 확인 방법을 보여줍니다.

디바이스 위치를 확인하려면 이러한 측정 데이터 유형 중 하나 이상을 지정합니다. 결합된 모든 측정 데이터에 대해 확인된 위치 하나가 반환됩니다.

**Topics**
+ [Wi-Fi 기반 솔버](#location-solvers-wifi)
+ [셀룰러 기반 솔버](#location-solvers-cellular)
+ [IP 역방향 조회 솔버](#location-solvers-ip)
+ [GNSS 솔버](#location-solvers-gnss)
+ [Amazon Sidewalk 지원 디바이스용 BLE 솔버](#location-solvers-ble)

## Wi-Fi 기반 솔버
<a name="location-solvers-wifi"></a>

Wi-Fi 액세스 포인트의 스캔 정보를 사용하여 위치를 확인하려면 Wi-Fi 기반 솔버를 사용합니다. 솔버는 무선랜 기술을 지원하며 TCP/IP, LoRaWAN 무선 디바이스 및 Amazon Sidewalk 지원 디바이스를 통해 연결하는 일반 IoT 디바이스의 디바이스 위치를 계산하는 데 사용할 수 있습니다.

LoRaWAN 디바이스에는 들어오는 Wi-Fi 스캔 정보를 디코딩할 수 있는 LoRa Edge 칩셋이 있어야 합니다. LoRa Edge는 장거리 LoRa 송수신장치, 다중 위성군 GNSS 스캐너 및 패시브 Wi-Fi MAC 스캐너를 통합한 초저전력 플랫폼으로, 지리적 위치 애플리케이션을 대상으로 합니다. 디바이스에서 업링크 메시지를 수신하면 Wi-Fi 스캔 데이터가 AWS IoT Core 디바이스 위치로 전송되고 위치는 Wi-Fi 스캔 결과를 기반으로 추정됩니다. 그런 다음 디코딩된 정보가 Wi-Fi 기반 솔버로 전달되어 위치 정보가 검색됩니다.

Amazon Sidewalk 지원 디바이스의 위치 데이터 해결에 대한 자세한 내용은 [AWS IoT Core for Amazon Sidewalk 개발자 안내서](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/iot-sidewalk.html)를 참조하세요.

### Wi-Fi 기반 솔버 페이로드 예시
<a name="location-solvers-wifi-payload"></a>

다음 코드는 측정 데이터가 포함된 디바이스의 JSON 페이로드에 대한 예를 보여줍니다. AWS IoT Core Device Location은이 데이터를 입력으로 수신하면 솔버 공급자에게 HTTP 요청을 보내 위치 정보를 확인합니다. 정보를 검색하려면 MAC 주소와 수신 신호 강도(RSS) 값을 지정합니다. 이렇게 하려면 이 형식을 사용하여 JSON 페이로드를 제공하거나 [GetPositionEstimate](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GetPositionEstimate.html) API 작업의 [WiFiAccessPoints 객체](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_WiFiAccessPoint.html) 파라미터를 사용합니다.

```
{
    "Timestamp": 1664313161,    // optional
    "WiFiAccessPoints": [ 
        {
            "MacAddress": "A0:EC:F9:1E:32:C1",  // required
            "Rss": -75                          // required
        }
    ]
}
```

## 셀룰러 기반 솔버
<a name="location-solvers-cellular"></a>

 셀룰러 기반 솔버를 사용하면 셀룰러 라디오 타워에서 얻은 측정 데이터를 통해 위치를 확인할 수 있습니다. 이 솔버는 다음 기술을 지원합니다. 이러한 기술 중 일부 또는 전부의 측정 데이터를 포함하더라도 하나의 확인된 위치 정보를 얻을 수 있습니다.
+ GSM
+ CDMA
+ WCDMA
+ TD-SCDMA
+ LTE

### 셀룰러 기반 솔버 페이로드 예시
<a name="location-solvers-cellular-payload"></a>

다음 코드는 셀룰러 측정 데이터가 포함된 디바이스의 JSON 페이로드에 대한 예를 보여줍니다. AWS IoT Core Device Location은이 데이터를 입력으로 수신하면 솔버 공급자에게 HTTP 요청을 보내 위치 정보를 확인합니다. 정보를 검색하려면 콘솔에서 이 형식을 사용하여 JSON 페이로드를 제공하거나 [GetPositionEstimate](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GetPositionEstimate.html) API 작업의 [CellTowers](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GetPositionEstimate.html#iotwireless-GetPositionEstimate-request-CellTowers) 파라미터 값을 지정합니다. 이러한 셀룰러 기술 중 일부 또는 전부를 사용해 파라미터 값을 지정하여 측정 데이터를 제공할 수 있습니다.

#### LTE(Long-Term Evolution)
<a name="location-solvers-cellular-lte"></a>

이 측정 데이터를 사용할 때는 모바일 네트워크의 네트워크 및 국가 코드, 선택적 추가 파라미터(로컬 ID 관련 정보 등)와 같은 정보를 지정해야 합니다. 다음 코드는 페이로드 형식의 예를 보여줍니다. 이러한 파라미터에 대한 자세한 내용은 [LTE 객체](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_LteObj.html)를 참조하세요.

```
{
    "Timestamp": 1664313161,           // optional 
    "CellTowers": {
        "Lte": [
        {
          "Mcc": int,                   // required
          "Mnc": int,                   // required
          "EutranCid": int,             // required. Make sure that you use int for EutranCid.
          "Tac": int,                   // optional
          "LteLocalId": {               // optional
              "Pci": int,               // required 
              "Earfcn": int,            // required 
          },
          "LteTimingAdvance": int,      // optional 
          "Rsrp": int,                  // optional 
          "Rsrq": float,                // optional 
          "NrCapable": boolean,         // optional 
          "LteNmr": [                   // optional
                {
                    "Pci": int,         // required 
                    "Earfcn": int,      // required 
                    "EutranCid": int,   // required
                    "Rsrp": int,        // optional 
                    "Rsrq": float       // optional 
                }
            ]
         }
      ] 
   }
}
```

#### GSM(Global System for Mobile Communications)
<a name="location-solvers-cellular-gsm"></a>

이 측정 데이터를 사용할 때는 모바일 네트워크의 네트워크 및 국가 코드, 기지국 정보, 선택적 추가 파라미터와 같은 정보를 지정해야 합니다. 다음 코드는 페이로드 형식의 예를 보여줍니다. 이러한 파라미터에 대한 자세한 내용은 [GSM 객체](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GsmObj.html)를 참조하세요.

```
{   
    "Timestamp": 1664313161,           // optional
    "CellTowers": {
        "Gsm": [ 
        {
          "Mcc": int,                   // required
          "Mnc": int,                   // required
          "Lac": int,                   // required
          "GeranCid": int,              // required
          "GsmLocalId": {               // optional
              "Bsic": int,              // required 
              "Bcch": int,              // required 
          },
          "GsmTimingAdvance": int,      // optional
          "RxLevel": int,               // optional
          "GsmNmr": [                   // optional
            {
                "Bsic": int,            // required
                "Bcch": int,            // required
                "RxLevel": int,         // optional
                "GlobalIdentity": {
                    "Lac": int,         // required
                    "GeranCid": int     // required
                }
             }
          ]
       }
    ]  
}
```

#### CDMA(Code-Division Multiple Access)
<a name="location-solvers-cellular-cdma"></a>

이 측정 데이터를 사용할 때는 신호 강도 및 식별 정보, 기지국 정보, 선택적 추가 파라미터와 같은 정보를 지정해야 합니다. 다음 코드는 페이로드 형식의 예를 보여줍니다. 이러한 파라미터에 대한 자세한 내용은 [CDMA 객체](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_CdmaObj.html)를 참조하세요.

```
{
    "Timestamp": 1664313161,               // optional
    "CellTowers": {
        "Cdma": [ 
        {
            "SystemId": int,                // required 
            "NetworkId": int,               // required 
            "BaseStationId": int,           // required 
            "RegistrationZone": int,        // optional 
            "CdmaLocalId": {                // optional
              "PnOffset": int,              // required 
              "CdmaChannel": int,           // required 
            },
            "PilotPower": int,              // optional 
            "BaseLat": float,               // optional 
            "BaseLng": float,               // optional 
            "CdmaNmr": [                    // optional 
                {
                    "PnOffset": int,        // required 
                    "CdmaChannel": int,     // required 
                    "PilotPower": int,      // optional 
                    "BaseStationId": int    // optional 
                }
             ]
          }
       ]
    }
}
```

#### WCDMA(Wideband Code-Division Multiple Access)
<a name="location-solvers-cellular-wcdma"></a>

이 측정 데이터를 사용할 때는 네트워크 및 국가 코드, 신호 강도 및 식별 정보, 기지국 정보, 선택적 추가 파라미터와 같은 정보를 지정해야 합니다. 다음 코드는 페이로드 형식의 예를 보여줍니다. 이러한 파라미터에 대한 자세한 내용은 [CDMA 객체](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_CdmaObj.html)를 참조하세요.

```
{
    "Timestamp": 1664313161,           // optional
    "CellTowers": {
        "Wcdma": [ 
        {
          "Mcc": int,                   // required
          "Mnc": int,                   // required 
          "UtranCid": int,              // required 
          "Lac": int,                   // optional 
          "WcdmaLocalId": {             // optional
              "Uarfcndl": int,          // required
              "Psc": int,               // required 
          },
          "Rscp": int,                  // optional
          "Pathloss": int,              // optional 
          "WcdmaNmr": [                 // optional 
                {
                  "Uarfcndl": int,      // required 
                  "Psc": int,           // required 
                  "UtranCid": int,      // required
                  "Rscp": int,          // optional 
                  "Pathloss": int,      // optional 
                }
             ]
          }
       ]
    }
}
```

#### TD-SCDMA(Time Division Synchronous Code-Division Multiple Access)
<a name="location-solvers-cellular-tdscdma"></a>

이 측정 데이터를 사용할 때는 네트워크 및 국가 코드, 신호 강도 및 식별 정보, 기지국 정보, 선택적 추가 파라미터와 같은 정보를 지정해야 합니다. 다음 코드는 페이로드 형식의 예를 보여줍니다. 이러한 파라미터에 대한 자세한 내용은 [CDMA 객체](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_CdmaObj.html)를 참조하세요.

```
{
    "Timestamp": 1664313161,           // optional
    "CellTowers": {
        "Tdscdma": [ 
        {
          "Mcc": int,                   // required
          "Mnc": int,                   // required
          "UtranCid": int,              // required
          "Lac": int,                   // optional
          "TdscdmaLocalId": {           // optional
              "Uarfcn": int,            // required 
              "CellParams": int,        // required 
          },
          "TdscdmaTimingAdvance": int,  // optional
          "Rscp": int,                  // optional
          "Pathloss": int,              // optional
          "TdscdmaNmr": [               // optional 
                {
                  "Uarfcn": int,        // required 
                  "CellParams": int,    // required 
                  "UtranCid": int,      // optional
                  "Rscp": int,          // optional
                  "Pathloss": int,      // optional 
                }
             ]
         }
      ]
   }
}
```

## IP 역방향 조회 솔버
<a name="location-solvers-ip"></a>

IP 역방향 조회 솔버를 통해 IP 주소를 입력으로 사용하여 위치를 확인할 수 있습니다. 솔버는 프로비저닝된 디바이스에서 위치 정보를 가져올 수 있습니다 AWS IoT. IPv4 또는 IPv6 표준 패턴이나 IPv6 16진수 압축 패턴의 형식을 사용하여 IP 주소 정보를 지정합니다. 그런 다음 디바이스가 위치한 도시 및 국가와 같은 추가 정보를 포함하여 확인된 위치 추정치를 얻습니다.

**참고**  
IP 역방향 조회를 사용할 경우 특정 집 주소 또는 도로명 주소를 식별하거나 찾기 위한 목적으로 이를 사용하지 않는다는 데 동의하는 것으로 간주됩니다.

### IP 역방향 조회 솔버 페이로드 예시
<a name="location-solvers-ip-payload"></a>

다음 코드는 측정 데이터가 포함된 디바이스의 JSON 페이로드에 대한 예를 보여줍니다. AWS IoT Core Device Location은 측정 데이터에서 IP 주소 정보를 수신하면 솔버 공급자의 데이터베이스에서이 정보를 조회한 다음 위치 정보를 확인하는 데 사용됩니다. 정보를 검색하려면 콘솔에서 이 형식을 사용하여 JSON 페이로드를 제공하거나 [GetPositionEstimate](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GetPositionEstimate.html) API 작업의 [Ip](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GetPositionEstimate.html#iotwireless-GetPositionEstimate-request-Ip) 파라미터 값을 지정합니다.

**참고**  
이 해석기를 사용하면 디바이스가 위치한 도시, 주, 국가 및 우편번호가 좌표와 함께 보고됩니다. 예제는 [디바이스 위치 확인(콘솔)](device-location-resolve-solvers.md#location-resolve-console) 섹션을 참조하세요.

```
{
    "Timestamp": 1664313161,
    "Ip":{
        "IpAddress":"54.240.198.35"
      }
}
```

## GNSS 솔버
<a name="location-solvers-gnss"></a>

GNSS 스캔 결과 메시지 또는 NAV 메시지에 포함된 정보를 사용하여 디바이스 위치를 검색하려면 GNSS(Global Navigation Satellite System) 솔버를 사용합니다. 선택적으로 추가 GNSS 지원 정보를 제공하여 솔버가 신호를 검색하는 데 사용해야 하는 변수 수를 줄일 수 있습니다. 위치, 고도, 캡처 시간 및 정확도 정보가 포함된 이 지원 정보를 제공하면 솔버가 시야 내 위성을 쉽게 식별하고 디바이스 위치를 계산할 수 있습니다.

이 솔버는 LoRaWAN 디바이스 및 Amazon Sidewalk 지원 디바이스뿐만 아니라 프로비저닝된 AWS IoT 디바이스로 프로비저닝된 다른 디바이스에도 사용할 수 있습니다 AWS IoT. 일반 IoT 디바이스의 경우, 디바이스가 GNSS를 이용한 위치 추정을 지원하면 해당 디바이스에서 GNSS 스캔 정보가 수신될 때 송수신장치가 위치 정보를 확인합니다. LoRaWAN 디바이스의 경우 디바이스에 LoRa Edge 칩셋이 있어야 합니다. 디바이스에서 업링크 메시지를 수신하면 GNSS 스캔 데이터가 AWS IoT for LoRaWAN 또는 for Amazon Sidewalk AWS IoT 로 전송되고 위치는 트랜시버의 스캔 결과를 기반으로 추정됩니다.

### GNSS 솔버 페이로드 예시
<a name="location-solvers-gnss-payload"></a>

다음 코드는 측정 데이터가 포함된 디바이스의 JSON 페이로드에 대한 예를 보여줍니다. AWS IoT Core Device Location은 측정 데이터에 페이로드가 포함된 GNSS 스캔 정보를 수신하면 트랜시버와 포함된 추가 지원 정보를 사용하여 신호를 검색하고 위치 정보를 확인합니다. 정보를 검색하려면 콘솔에서 이 형식을 사용하여 JSON 페이로드를 제공하거나 [GetPositionEstimate](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GetPositionEstimate.html) API 작업의 [Gnss](https://docs.aws.amazon.com/iot-wireless/latest/apireference/API_GetPositionEstimate.html#iotwireless-GetPositionEstimate-request-Gnss) 파라미터 값을 지정합니다.

**참고**  
 AWS IoT Core 디바이스 위치가 디바이스 위치를 확인하려면 먼저 페이로드에서 대상 바이트를 제거해야 합니다.

```
{   
    "Timestamp": 1664313161,                  // optional
    "Gnss": { 
        "AssistAltitude": number,             // optional
        "AssistPosition": [ number ],         // optional
        "CaptureTime": number,                // optional
        "CaptureTimeAccuracy": number,        // optional
        "Payload": "string",                  // required
        "Use2DSolver": boolean                // optional
   }
}
```

## Amazon Sidewalk 지원 디바이스용 BLE 솔버
<a name="location-solvers-ble"></a>

**참고**  
Bluetooth Low Energy 기반 위치의 경우 Amazon Sidewalk에 연결되어 있고 커뮤니티 조사 결과 기능이 활성화된 근처 Sidewalk 게이트웨이의 대략적인 위치를 기반으로 위치 좌표를 AWS IoT 반환합니다. 게이트웨이 위치 데이터는 AWS 콘텐츠이며 Amazon Sidewalk에 연결된 디바이스를 찾는 데 도움을 주기 위한 목적으로만 제공되며 해당 용도로만 데이터를 사용해야 합니다. 일반적으로 제공되는 인터페이스 및 기능을 통해서만 위치 데이터를 사용하고 액세스해야 하며, 당사가 제공하는 게이트웨이 위치 데이터를 재식별, 리버스 엔지니어링 또는 다시 매핑하려고 시도해서는 안 됩니다.

를 통해 연결하는 Amazon Sidewalk 엔드 디바이스는 Amazon Sidewalk 엔드 디바이스에서 게시한 BLE, Wi-Fi 또는 GNSS 업링크 메시지를 사용하여 위치 데이터를 확인할 AWS IoT Core for Amazon Sidewalk 수 있습니다. 자세한 내용은 [AWS IoT Core for Amazon Sidewalk 개발자 안내서](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/sidewalk-getting-started.html)를 참조하세요.