

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tutorial de inicialização
<a name="location-indexing-tutorial"></a>

Este tutorial demonstra como usar a [indexação de frotas](iot-indexing.md) para [indexar seus dados de localização](location-indexing-geoquery.md). Para simplificar, você cria um objeto para representar seu dispositivo e armazena os dados de localização em uma sombra nomeada, atualiza a configuração de indexação do objeto para indexação de localização e executa exemplos de consultas geográficas para pesquisar dispositivos dentro de um limite radial.

Este tutorial leva cerca de 15 minutos para ser concluído.

**Topics**
+ [Pré-requisitos](#location-indexing-tutorial-prerequisites)
+ [Criar objeto e sombra](#location-indexing-create-resources)
+ [Atualizar a configuração da indexação de objeto](#location-indexing-update-configuration)
+ [Executar consulta geográfica](#location-indexing-run-geoquery)

## Pré-requisitos
<a name="location-indexing-tutorial-prerequisites"></a>
+ Instale a versão mais recente da [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html).
+ Familiarize-se com [Indexação de localização e consultas geográficas](https://docs.aws.amazon.com/iot/latest/developerguide/location-indexing-geoquery.html), [Gerenciar indexação de objeto](https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html) e [Sintaxe de consulta](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html).

## Criar objeto e sombra
<a name="location-indexing-create-resources"></a>

Você cria um objeto para representar seu dispositivo e uma sombra nomeada para armazenar seus dados de localização (coordenadas 47,61564,-122,33584).

1. Execute o comando apresentado a seguir para criar o que representa a bicicleta com o nome Bike-1. *Para obter mais informações sobre como criar algo usando AWS CLI, consulte [create-thing](https://docs.aws.amazon.com//cli/latest/reference/iot/create-thing.html) from Reference. *AWS CLI**

   ```
   aws iot create-thing --thing-name "Bike-1" \
   --attribute-payload '{"attributes": {"model":"OEM-2302-12", "battery":"35", "acqDate":"06/09/23"}}'
   ```

   A saída desse comando pode ser semelhante à seguinte:

   ```
   {
       "thingName": "Bike-1",
       "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/Bike-1",
       "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df"
   }
   ```

1. Execute o comando a seguir para criar uma sombra nomeada para armazenar os dados de localização da Bike-1 (coordenadas 47.61564, -122.33584). Para obter mais informações sobre como criar uma sombra nomeada usando AWS CLI, consulte [update-thing-shadow](https://docs.aws.amazon.com//cli/latest/reference/iot-data/update-thing-shadow.html)em *AWS CLI**Referência*.

   ```
   aws iot-data update-thing-shadow \
   --thing-name Bike-1 \
   --shadow-name Bike1-shadow \
   --cli-binary-format raw-in-base64-out \
   --payload '{"state":{"reported":{"coordinates":{"lat": 47.6153, "lon": -122.3333}}}}' \
   "output.txt" \
   ```

   Esse comando não retorna nenhuma saída. Para ver a sombra nomeada que você criou, você pode executar o comando [list-named-shadows-for-thing](https://docs.aws.amazon.com//cli/latest/reference/iot-data/list-named-shadows-for-thing.html) CLI.

   ```
   aws iot-data list-named-shadows-for-thing --thing-name Bike-1
   ```

   A saída desse comando pode ser semelhante à seguinte:

   ```
   {
       "results": [
           "Bike1-shadow"
       ],
       "timestamp": 1699574309
   }
   ```

## Atualizar a configuração da indexação de objeto
<a name="location-indexing-update-configuration"></a>

Para indexar dados de localização, atualize sua configuração de indexação para incluir os dados de localização. Como seus dados de localização estão armazenados em uma sombra nomeada neste tutorial, defina `thingIndexingMode` como `REGISTRY` (com um requisito mínimo), defina `namedShadowIndexingMode` como `ON` e adicione seus dados de localização à configuração. Neste exemplo, você deve adicionar o nome da sombra nomeada e o caminho dos dados de localização da sombra para `filter`.

1. Execute o comando para atualizar sua configuração de indexação para indexação de localização.

   ```
   aws iot update-indexing-configuration --cli-input-json '{
   "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY",
   "thingConnectivityIndexingMode": "OFF",
   "deviceDefenderIndexingMode": "OFF",
   "namedShadowIndexingMode": "ON",
   "filter": {
       "namedShadowNames": ["Bike1-shadow"],
       "geoLocations":[{
           "name":"shadow.name.Bike1-shadow.reported.coordinates"
       }]
   },
   "customFields": [
   { "name":"attributes.battery",
   "type":"Number"}] } }'
   ```

   O comando não produz saída. Talvez seja necessário aguardar um instante até a atualização ser concluída. Para verificar o status, execute o comando da CLI [describe-index](https://docs.aws.amazon.com//cli/latest/reference/iot/describe-index.html). Se você vê `indexStatus` mostrar: `ACTIVE`, sua atualização de indexação de objeto está concluída.

1. Execute o comando para verificar a configuração de indexação. Esta etapa é opcional.

   ```
   aws iot get-indexing-configuration
   ```

   A saída poderá ser parecida com o seguinte:

   ```
   {
       "thingIndexingConfiguration": {
           "thingIndexingMode": "REGISTRY",
           "thingConnectivityIndexingMode": "OFF",
           "deviceDefenderIndexingMode": "OFF",
           "namedShadowIndexingMode": "ON",
           "managedFields": [
               {
                   "name": "shadow.name.*.hasDelta",
                   "type": "Boolean"
               },
               {
                   "name": "registry.version",
                   "type": "Number"
               },
               {
                   "name": "registry.thingTypeName",
                   "type": "String"
               },
               {
                   "name": "registry.thingGroupNames",
                   "type": "String"
               },
               {
                   "name": "shadow.name.*.version",
                   "type": "Number"
               },
               {
                   "name": "thingName",
                   "type": "String"
               },
               {
                   "name": "thingId",
                   "type": "String"
               }
           ],
           "customFields": [
               {
                   "name": "attributes.battery",
                   "type": "Number"
               }
           ],
           "filter": {
               "namedShadowNames": [
                   "Bike1-shadow"
               ],
               "geoLocations": [
                   {
                       "name": "shadow.name.Bike1-shadow.reported.coordinates",
                       "order": "LatLon"
                   }
               ]
           }
       },
       "thingGroupIndexingConfiguration": {
           "thingGroupIndexingMode": "OFF"
       }
   }
   ```

## Executar consulta geográfica
<a name="location-indexing-run-geoquery"></a>

Agora você atualizou sua configuração de indexação para incluir os dados de localização. Tente criar algumas consultas geográficas e executá-las para ver se você consegue obter os resultados de pesquisa desejados. Uma consulta geográfica deve seguir a [Sintaxe da consulta](query-syntax.md). Você pode encontrar alguns exemplos úteis de geoconsultas em [Exemplo de consultas geográficas](location-indexing-geoquery.md#location-indexing-geoqueries).

No comando de exemplo a seguir, você usa a consulta geográfica `shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km` para pesquisar dispositivos que estão dentro da distância radial de 15,5 km do ponto central com coordenadas (47,6204, -122,3491). 

```
aws iot search-index --query-string "shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"
```

Como você tem um dispositivo localizado nas coordenadas “lat”: 47.6153, “lon”: -122.3333, que fica a uma distância de 15,5 km do ponto central, você deve conseguir ver esse dispositivo (Bike-1) na saída. A saída poderá ser parecida com o seguinte:

```
{
    "things": [
        {
            "thingName": "Bike-1",
            "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df",
            "attributes": {
                "acqDate": "06/09/23",
                "battery": "35",
                "model": "OEM-2302-12"
            },
            "shadow": "{\"reported\":{\"coordinates\":{\"lat\":47.6153,\"lon\":-122.3333}},\"metadata\":{\"reported\":{\"coordinates\":{\"lat\":{\"timestamp\":1699572906},\"lon\":{\"timestamp\":1699572906}}}},\"hasDelta\":false,\"version\":1}"
        }
    ]
}
```

Para obter mais informações, consulte [Indexação de dados de localização](location-indexing-geoquery.md).