

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á.

# Indexação de dados de localização
<a name="location-indexing-geoquery"></a>

Você pode usar a [indexação de frotas da AWS IoT](https://docs.aws.amazon.com//iot/latest/developerguide/iot-indexing.html) para indexar os últimos dados de localização enviados dos seus dispositivos e pesquisar dispositivos usando consultas geográficas. Esse atributo resolve casos de uso de monitoramento e gerenciamento de dispositivos, como rastreamento de localização e pesquisa de proximidade. A indexação de localização funciona de maneira semelhante a outros recursos de indexação de frotas e com configurações adicionais para especificar na [indexação de objetos](managing-fleet-index.md). 

Os casos de uso comuns incluem: pesquisar e agregar dispositivos localizados dentro dos limites geográficos desejados, obter informações específicas da localização usando termos de consulta relacionados aos metadados e ao estado do dispositivo de fontes de dados indexadas, fornecer uma visão granular, como a filtragem de resultados para uma área geográfica específica, reduzir os atrasos de renderização nos mapas de monitoramento da frota e rastrear a localização do último dispositivo relatado, identificar dispositivos que estão fora dos limites desejados e gerar alarmes usando [métricas de frota.](iot-fleet-metrics.md) Para começar com indexação de localização e geoconsultas, consulte [Tutorial de inicialização](location-indexing-tutorial.md).

## Formatos de dados compatíveis
<a name="location-indexing-format"></a>

AWS IoT a indexação de frotas suporta os seguintes formatos de dados de localização:

1. 

**Representação de texto bem conhecida de sistemas de referência de coordenadas**

   Uma string que segue o formato [Informações geográficas: representação de texto bem conhecida de sistemas de referência de coordenadas](https://docs.ogc.org/is/12-063r5/12-063r5.html). Um exemplo pode ser `"POINT(long lat)"`.

1. 

**Uma string que representa as coordenadas**

   Uma string com o formato `"latitude, longitude"` ou `"longitude, latitude"`. Se você usar `"longitude, latitude"`, também deverá especificar `order` em `geoLocations`. Um exemplo pode ser `"41.12,-71.34"`.

1. 

**Um objeto com chaves lat(latitude), lon(longitude)**

   Esse formato se aplica à sombra clássica e à sombra nomeada. Chaves compatíveis: `lat`, `latitude`, `lon`, `long`, `longitude`. Um exemplo pode ser `{"lat": 41.12, "lon": -71.34}`.

1. 

**Uma matriz que representa as coordenadas**

   Uma matriz com o formato `[lat,lon]` ou`[lon,lat]`. Se você usar o formato `[lon,lat]`, que é o mesmo das coordenadas em [GeoJSON](https://geojson.org/) (aplicável à sombra clássica e à sombra nomeada), você também deve especificar `order` em `geoLocations`.

   Um exemplo pode ser:

   ```
   {
     "location": {
       "coordinates": [
         **Longitude**,
         **Latitude**
       ],
       "type": "Point",
       "properties": {
         "country": "United States",
         "city": "New York",
         "postalCode": "*****",
         "horizontalAccuracy": 20,
         "horizontalConfidenceLevel": 0.67,
         "state": "New York",
         "timestamp": "2023-01-04T20:59:13.024Z"
       }
     }
   }
   ```

## Como indexar dados de localização
<a name="location-indexing-steps"></a>

As etapas a seguir mostram como atualizar a configuração de indexação dos dados de localização e usar consultas geográficas para pesquisar dispositivos.

1. 

**Saiba onde seus dados de localização estão armazenados**

   Atualmente, a indexação de frotas oferece suporte à indexação de dados de localização armazenados em sombras clássicas ou sombras nomeadas.

1. 

**Usar formatos de dados de localização compatíveis**

   Verifique se o formato dos dados de localização segue um dos [formatos de dados compatíveis](#location-indexing-format).

1. 

**Atualizar configuração de indexação**

   Se necessário, habilite a configuração de indexação de itens (registro). Você também deve ativar a indexação na sombra clássica ou na sombra nomeada que contenha seus dados de localização. Ao atualizar sua indexação de itens, você deve incluir seus dados de localização na configuração de indexação.

1. 

**Criar e executar consultas geográficas**

   Dependendo dos seus casos de uso, crie geoconsultas e execute-as para pesquisar dispositivos. A consulta geográfica que você compõe deve seguir a [Sintaxe da consulta](https://docs.aws.amazon.com//iot/latest/developerguide/query-syntax.html). É possível encontrar alguns exemplos em [Exemplo de consultas geográficas](#location-indexing-geoqueries).

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

Para indexar dados de localização, atualize a configuração de indexação e inclua seus dados de localização. Dependendo de onde seus dados de localização estão, siga as etapas para atualizar sua configuração de indexação:

### Dados de localização armazenados em sombras clássicas
<a name="location-indexing-shadow-configuration"></a>

Se seus dados de localização estiverem armazenados em uma sombra clássica, você deverá definir `thingIndexingMode` como `REGISTRY_AND_SHADOW` e especificar seus dados de localização nos campos `geoLocations` (`name` e `order`) em [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html).

No exemplo de configuração de indexação a seguir, você especifica o caminho dos dados de localização `shadow.reported.coordinates` como `name` e `LonLat` como `order`.

```
{
	"thingIndexingMode": "REGISTRY_AND_SHADOW",
	"filter": {
		"geoLocations": [
			{
				"name": "shadow.reported.coordinates",
				"order": "LonLat"
			}
		]
	}
}
```
+ `thingIndexingMode`

  O modo de indexação controla se o Registro ou a sombra é indexado. Quando `thingIndexingMode` é definido como `OFF`, a indexação de itens é desativada. 

  Para indexar dados de localização armazenados em uma sombra clássica, você deve definir `thingIndexingMode` como `REGISTRY_AND_SHADOW`. Para obter mais informações, consulte [Modos de indexação de objetos](managing-index.md#index-mode).
+ `filter`

  O filtro de indexação fornece seleções adicionais para sombras nomeadas e dados de localização geográfica. Para obter mais informações, consulte [Filtro de indexação](managing-index.md#thing-indexing-filter).
+ `geoLocations`

  A lista de destinos de localização geográfica que você seleciona para indexar. O número máximo padrão de destinos de localização geográfica para indexação é `1`. Para aumentar o limite, consulte [Cotas de AWS IoT Device Management](https://docs.aws.amazon.com//general/latest/gr/iot_device_management.html#fleet-indexing-limits).
+ `name`

  O nome do campo de destino de localização geográfica. Um exemplo de valor de `name` pode ser o caminho dos dados de localização de sua sombra: `shadow.reported.coordinates`.
+ `order`

  A ordem do campo de destino de localização geográfica. Valores válidos: `LatLon` e `LonLat`. `LatLon` significa latitude e longitude. `LonLat` significa longitude e latitude. Esse campo é opcional. O valor padrão é `LatLon`.

### Dados de localização armazenados em sombras nomeadas
<a name="location-indexing-named-shadow-configuration"></a>

Se seus dados de localização estiverem armazenados em uma sombra nomeada, defina `namedShadowIndexingMode` como `ON`, adicione seus nomes de sombra nomeados ao campo `namedShadowNames` em [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html) e especifique seu caminho de dados de localização no campo `geoLocations` em [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html).

No exemplo de configuração de indexação a seguir, você especifica o caminho dos dados de localização `shadow.name.namedShadow1.reported.coordinates` como `name` e `LonLat` como `order`.

```
{
	"thingIndexingMode": "REGISTRY",
	"namedShadowIndexingMode": "ON",
	"filter": {
		"namedShadowNames": [
			"namedShadow1"
		],
		"geoLocations": [
			{
				"name": "shadow.name.namedShadow1.reported.coordinates",
				"order": "LonLat"
			}
		]
	}
}
```
+ `thingIndexingMode`

  O modo de indexação controla se o Registro ou a sombra é indexado. Quando `thingIndexingMode` é definido como `OFF`, a indexação de itens é desativada. 

  Para indexar dados de localização armazenados em uma sombra nomeada, você deve definir `thingIndexingMode` como `REGISTRY` (ou `REGISTRY_AND_SHADOW`). Para obter mais informações, consulte [Modos de indexação de objetos](managing-index.md#index-mode).
+ `filter`

  O filtro de indexação fornece seleções adicionais para sombras nomeadas e dados de localização geográfica. Para obter mais informações, consulte [Filtro de indexação](managing-index.md#thing-indexing-filter).
+ `geoLocations`

  A lista de destinos de localização geográfica que você seleciona para indexar. O número máximo padrão de destinos de localização geográfica para indexação é `1`. Para aumentar o limite, consulte [Cotas de AWS IoT Device Management](https://docs.aws.amazon.com//general/latest/gr/iot_device_management.html#fleet-indexing-limits).
+ `name`

  O nome do campo de destino de localização geográfica. Um exemplo de valor de `name` pode ser o caminho dos dados de localização de sua sombra: `shadow.name.namedShadow1.reported.coordinates`.
+ `order`

  A ordem do campo de destino de localização geográfica. Valores válidos: `LatLon` e `LonLat`. `LatLon` significa latitude e longitude. `LonLat` significa longitude e latitude. Esse campo é opcional. O valor padrão é `LatLon`.

## Exemplo de consultas geográficas
<a name="location-indexing-geoqueries"></a>

Depois de concluir a configuração de indexação dos dados de localização, execute consultas geográficas para pesquisar dispositivos. Você também pode combinar suas consultas geográficas com outras cadeias de caracteres de consulta. Para obter mais informações, consulte [Sintaxe de consulta](query-syntax.md) e [Exemplo de consultas de objetos](example-queries.md).

**Consulta de exemplo 1**

Este exemplo pressupõe que os dados de localização estão armazenados em uma sombra nomeada `gps-tracker`. A saída desse comando é a lista de 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.gps-tracker.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"
```

**Consulta de exemplo 2**

Este exemplo pressupõe que os dados de localização estão armazenados em uma sombra clássica. A saída desse comando é a lista de 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.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"
```

**Consulta de exemplo 3**

Este exemplo pressupõe que os dados de localização estão armazenados em uma sombra clássica. A saída desse comando é a lista de dispositivos que não estão conectados e estão fora da distância radial de 15,5 km do ponto central com coordenadas (47,6204,-122,3491).

```
aws iot search-index --query-string \
"connectivity.connected:false AND (NOT shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km)"
```