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á.
Criar uma aplicação do iOS
Siga estes procedimentos para criar uma aplicação para iOS usando o Amazon Location Service.
Clone os arquivos do projeto no GitHub.
Você pode gerar recursos do Amazon Location Service quando sua conta da AWS estiver pronta. Esses recursos serão essenciais para a execução dos trechos de código fornecidos.
nota
Se você ainda não criou uma conta da AWS, crie uma conta da AWS
Para começar, você precisará criar um ID de banco de identidades do Amazon Cognito, use o seguinte procedimento:
-
No console da AWS, navegue até o serviço Amazon Cognito e selecione Bancos de identidades no menu do lado esquerdo e, em seguida, selecione Criar banco de identidades.
-
Verifique se a opção Acesso de convidado está marcada e pressione Avançar para continuar.
-
Escolha um perfil do IAM existente ou crie um novo.
-
Insira o nome do banco de identidades e certifique-se de que o banco de identidades tenha acesso aos recursos de
(geo)do Amazon Location para o mapa e o rastreador que você criará no próximo procedimento.
Em seguida, você precisa criar e estilizar um mapa no console do Amazon Location da AWS, usando o seguinte procedimento:
-
Navegue até a seção Mapas
do console do Amazon Location e selecione Criar mapa para visualizar os estilos de mapa disponíveis. -
Dê um nome e uma descrição ao novo recurso de mapa. Registre o nome que você atribuir ao recurso de mapa, conforme ele será usado posteriormente no tutorial.
-
Ao escolher um estilo de mapa, considere o provedor de dados do mapa. Consulte a seção 82 dos Termos de serviço da AWS
para obter mais detalhes. -
Aceite os Termos e condições do Amazon Location
e selecione Criar mapa. Após criar o mapa, você pode interagir com o mapa ampliando, reduzindo o zoom ou fazendo uma panorâmica em qualquer direção.
Para criar um rastreador usando o console do Amazon Location
-
Abra o console do Amazon Location Service
. -
No painel de navegação à esquerda, selecione Rastreadores.
-
Selecione Criar rastreador.
-
Preencha os campos obrigatórios:
-
Em Filtragem de posições, escolha a opção que melhor se adequa à forma como você pretende usar seu recurso de rastreador. Se você não definir a Filtragem de posições, a configuração padrão será TimeBased. Para obter mais informações, consulte Rastreadores neste guia e PositionFiltering na Referência de APIs para Rastreadores do Amazon Location Service.
-
Escolha Criar rastreador para finalizar.
Quando for criar uma coleção de geocercas, você pode usar o console, a API ou a CLI. Os procedimentos a seguir demonstram esse processo.
Para criar uma coleção de geocercas usando o console Amazon Location:
-
Abra o console do Amazon Location Service em https://console.aws.amazon.com/location/.
-
No painel de navegação à esquerda, selecione Coleções de geocercas.
-
Selecione Criar coleção de geocercas.
-
Forneça um nome e uma descrição para a coleção.
-
De acordo com a regra do EventBridge com o CloudWatch como alvo, você pode criar uma regra opcional do EventBridge para começar a reagir aos eventos das geocercas. Isso permite que o Amazon Location publique eventos no Amazon CloudWatch Logs.
-
Selecione Criar coleção de geocercas.
Criar uma coleção de geocercas usando as APIs do Amazon Location:
Use a operação CreateGeofenceCollection das APIs de geocercas do Amazon Location. O exemplo a seguir usa uma solicitação de API para criar uma coleção de geocercas chamada .GOECOLLECTION_NAME
POST /geofencing/v0/collections Content-type: application/json { "CollectionName": "GOECOLLECTION_NAME", "Description": "Geofence collection 1 for shopping center", "Tags": { "Tag1" : "Value1" } }
Crie uma coleção de geocercas usando comandos da AWS CLI:
Use o comando create-geofence-collection. O exemplo a seguir usa uma AWS CLI para criar uma coleção de geocercas chamada .GOECOLLECTION_NAME
aws location \ create-geofence-collection \ --collection-name "GOECOLLECTION_NAME" \ --description "Shopping center geofence collection" \ --tags Tag1=Value1
Para vincular um rastreador a uma coleção de cercas geográficas, você pode usar o console, a API ou a CLI. Os procedimentos a seguir demonstram esse processo.
Vincular um recurso de rastreador a uma coleção de geocercas usando o console do Amazon Location Service:
-
Abra o console do Amazon Location.
-
No painel de navegação à esquerda, selecione Rastreadores.
-
Em Rastreadores de dispositivos, selecione o link do nome do rastreador de destino.
-
Em Coleções de geocercas vinculadas, selecione Vincular coleção de geocercas.
-
Na janela Coleção de geocercas vinculadas, selecione uma coleção de geocercas no menu suspenso.
-
Escolha Vincular.
-
Depois de vincular o recurso de rastreador, ele receberá um status de Ativo.
Vincular um recurso de rastreador a uma coleção de geocercas usando as APIs do Amazon Location:
Use a operação AsssociateTrackerConsumer das APIs de Rastreadores do Amazon Location. O exemplo a seguir usa uma solicitação de API que associa o ExampleTracker a uma coleção de geocercas usando seu nome do recurso da Amazon (ARN).
POST /tracking/v0/trackers/ExampleTracker/consumers Content-type: application/json { "ConsumerArn": "arn:aws:geo:us-west-2:123456789012:geofence-collection/GOECOLLECTION_NAME" }
Vincule um recurso de rastreador a uma coleção de geocercas usando comandos da AWS CLI:
Use o comando associate-tracker-consumer . O exemplo a seguir usa uma AWS CLI para criar uma coleção de geocercas chamada .GOECOLLECTION_NAME
aws location \ associate-tracker-consumer \ --consumer-arn "arn:aws:geo:us-west-2:123456789012:geofence-collection/GOECOLLECTION_NAME" \ --tracker-name "ExampleTracker"
Crie uma função do Lambda:
Para criar uma conexão entre AWS IoT Core e o Amazon Location Service, você precisa de uma função AWS Lambda para processar as mensagens encaminhadas pelos eventos EventBridge CloudWatch. Essa função extrairá todos os dados posicionais, os formatará para o Amazon Location Service e os enviará por meio da API do rastreador do Amazon Location. Você pode criar essa função por meio do console AWS Lambda ou usar o AWS Command Line Interface (AWS CLI) ou as APIs do AWS Lambda. Para criar uma função do Lambda que publique atualizações de posição no Amazon Location usando o console:
-
Abra o console AWS Lambda em https://console.aws.amazon.com/lambda/.
-
No painel de navegação à esquerda, selecione Funções.
-
Selecione Criar função e confirme se Autor do zero está selecionado.
-
Preencha as seguintes caixas:
-
um nome de Função
-
para a opção Runtime, selecione Node.js 16.x.
-
-
Escolha a opção Criar função.
-
Selecione a guia Código para abrir o editor.
-
Substitua o código do espaço reservado em index.js pelo seguinte:
const AWS = require('aws-sdk') const iot = new AWS.Iot(); exports.handler = function(event) { console.log("event===>>>", JSON.stringify(event)); var param = { endpointType: "iot:Data-ATS" }; iot.describeEndpoint(param, function(err, data) { if (err) { console.log("error===>>>", err, err.stack); // an error occurred } else { var endp = data['endpointAddress']; const iotdata = new AWS.IotData({endpoint: endp}); const trackerEvent = event["detail"]["EventType"]; const src = event["source"]; const time = event["time"]; const gfId = event["detail"]["GeofenceId"]; const resources = event["resources"][0]; const splitResources = resources.split("."); const geofenceCollection = splitResources[splitResources.length - 1]; const coordinates = event["detail"]["Position"]; const deviceId = event["detail"]["DeviceId"]; console.log("deviceId===>>>", deviceId); const msg = { "trackerEventType" : trackerEvent, "source" : src, "eventTime" : time, "geofenceId" : gfId, "coordinates": coordinates, "geofenceCollection": geofenceCollection }; const params = { topic: `${deviceId}/tracker`, payload: JSON.stringify(msg), qos: 0 }; iotdata.publish(params, function(err, data) { if (err) { console.log("error===>>>", err, err.stack); // an error occurred } else { console.log("Ladmbda triggered===>>>", trackerEvent); // successful response } }); } }); } -
Selecione Implantar para salvar a função atualizada.
-
Escolha a guia Configuração.
-
Na seção Acionadores, escolha Adicionar acionador.
-
Selecione EventBridge (CloudWatch Events) no campo Fonte.
-
Selecione a opção de rádio `Regras existentes`.
-
Por exemplo, insira o nome “AmazonLocationMonitor-GEOFENCECECOLLECTION_NAME`.
-
Clique no botão Adicionar.
-
Isso também anexará `Resource-based policy statements` (declarações de políticas baseadas em recursos) na guia de permissões
Cliente de teste MQTT
-
Abra https://console.aws.amazon.com/iot/
. -
No painel de navegação, escolha Cliente de teste MQTT.
-
Você verá uma seção intitulada Cliente de teste MQTT, na qual você pode configurar sua conexão MQTT.
-
Depois de definir as configurações necessárias, clique no botão Connect para estabelecer uma conexão com o broker MQTT usando os parâmetros fornecidos.
-
Anote o valor do Endpoint.
Uma vez conectado, você pode assinar os tópicos do MQTT ou publicar mensagens nos tópicos usando os respectivos campos de entrada fornecidos na interface do cliente de teste do MQTT. Em seguida, você anexará a Política do MQTT:
-
No menu do lado esquerdo, em Gerenciar, expanda a opção Segurança e clique em Políticas.
-
Clique no botão Criar política.
-
Insira um nome de política.
-
Em Documento de política, selecione a guia JSON.
-
Copie e cole a política mostrada abaixo, mas certifique-se de atualizar todos os elementos com seu
eREGION:ACCOUNT_ID{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive" ], "Resource": [ "arn:aws:iot:REGION:ACCOUNT_ID:client/${cognito-identity.amazonaws.com:sub}", "arn:aws:iot:REGION:ACCOUNT_ID:topic/${cognito-identity.amazonaws.com:sub}", "arn:aws:iot:REGION:ACCOUNT_ID:topicfilter/${cognito-identity.amazonaws.com:sub}/", "arn:aws:iot:REGION:ACCOUNT_ID:topic/${cognito-identity.amazonaws.com:sub}/tracker" ], "Effect": "Allow" } ] } -
Selecione o botão Criar para finalizar.
Para configurar o código de exemplo, você deve ter as seguintes ferramentas instaladas:
-
Git
-
Xcode 15.3 ou posterior
-
Simulador iOS 16 ou posterior
Use este procedimento para configurar o código da aplicação de exemplo:
-
Abra o arquivo de projeto
AWSLocationSampleApp.xcodeproj. -
Aguarde o término do processo de resolução do pacote.
-
Opcional: no menu de navegação do projeto, renomeie
ConfigTemplate.xcconfigparaConfig.xcconfige preencha os seguintes valores:IDENTITY_POOL_ID = `YOUR_IDENTITY_POOL_ID` MAP_NAME = `YOUR_MAP_NAME` TRACKER_NAME = `YOUR_TRACKER_NAME` WEBSOCKET_URL = `YOUR_MQTT_TEST_CLIENT_ENDPOINT` GEOFENCE_ARN = `YOUR_GEOFENCE_COLLECTION_NAME`
Depois de configurar o código de amostra, agora você pode executar a aplicação em um simulador iOS ou em um dispositivo físico.
-
Compile e execute o código.
-
A aplicação solicitará permissões de localização e notificação. Você precisa permiti-los.
-
Toque no botão `Configuração do Cognito`.
-
Se não preencheu os valores no arquivo `Config.xcconfig`, você precisa preencher o campo com os valores dos recursos que você criou anteriormente na tela de configuração.
IDENTITY_POOL_ID = `YOUR_IDENTITY_POOL_ID` MAP_NAME = `YOUR_MAP_NAME` TRACKER_NAME = `YOUR_TRACKER_NAME` WEBSOCKET_URL = `YOUR_MQTT_TEST_CLIENT_ENDPOINT` GEOFENCE_ARN = `YOUR_GEOFENCE_COLLECTION_NAME` -
Salvar a configuração
-
Agora você pode ver as opções de filtro para tempo, distância e precisão. Use-os conforme sua necessidade.
-
Vá para a guia `Rastreamento` no aplicativo e você verá o mapa e o botão `Iniciar rastreamento`.
-
Se você instalou A aplicação em um simulador, talvez queira simular mudanças de localização. Isso pode ser feito em Atributos -> opção do menu Localização. Por exemplo, selecione Atributos -> Localização -> Freeway Drive.
-
Toque no botão `Iniciar rastreamento`. Você deve ver os pontos de rastreamento no mapa.
-
A aplicação também está rastreando os locais em segundo plano. Portanto, quando você move a aplicação em segundo plano, ela solicita sua permissão para continuar rastreando no modo de segundo plano.
-
Você pode interromper o rastreamento tocando no botão `Parar rastreamento`.