Utilizar ferramentas e bibliotecas do MapLibre com o Amazon Location - Amazon Location Service

Utilizar ferramentas e bibliotecas do MapLibre com o Amazon Location

Uma das ferramentas importantes para criar aplicativos interativos com o Amazon Location é o MapLibre. O MapLibre é, primeiramente, um mecanismo de renderização para exibir mapas em um aplicativo web ou móvel. No entanto, ele também inclui suporte para plug-ins e fornece funcionalidade para trabalhar com outros aspectos do Amazon Location. A seguir, descrevemos as ferramentas que você pode usar com base na área de localização com a qual você deseja trabalhar.

nota

Para usar qualquer aspecto do Amazon Location, instale o AWS SDK para a linguagem que você deseja usar.

  • Mapas

    Para exibir mapas em seu aplicativo, você precisa de um mecanismo de renderização de mapas que use os dados fornecidos pela Amazon Location e desenhe na tela. Os mecanismos de renderização de mapas também fornecem funcionalidade para deslocar e ampliar o mapa ou para adicionar marcadores, alfinetes e outras anotações ao mapa.

    O Amazon Location Service recomenda a renderização de mapas usando o mecanismo de renderização do MapLibre. O MapLibre GL JS é um mecanismo para exibir mapas em JavaScript, enquanto o MapLibre Native fornece mapas para iOS ou Android.

    O MapLibre também tem um ecossistema de plug-ins para estender a funcionalidade principal. Para obter mais informações, acesse https://maplibre.org/maplibre-gl-js-docs/plugins/.

  • Pesquisa de lugares

    Para simplificar a criação de uma interface de usuário de pesquisa, você pode usar o geocodificador MapLibre para Web (aplicativos Android podem usar o plug-in Android Places).

    Use a biblioteca de geocodificadores Amazon Location for Maplibre para simplificar o processo de uso do Amazon Location com amazon-location-for-maplibre-gl-geocoder em aplicativos JavaScript.

  • Rotas

    Para exibir rotas no mapa, use os caminhos do MapLibre.

  • Geocercas e rastreadores

    O MapLibre não tem nenhuma renderização ou ferramenta específica para geocercas e rastreamento, mas você pode usar a funcionalidade de renderização e os plug-ins para mostrar as geocercas e os dispositivos rastreados no mapa.

    Os dispositivos que estão sendo rastreados podem usar o MQTT ou enviar atualizações manualmente para o Amazon Location Service. Os eventos de geocercas podem ser respondidos usando AWS Lambda.

Muitas bibliotecas de código aberto estão disponíveis para fornecer funcionalidade adicional para o Amazon Location Service, por exemplo, o Turf, que fornece funcionalidade de análise espacial.

Muitas bibliotecas usam os dados formatados GeoJSON de padrão aberto. O Amazon Location Service fornece uma biblioteca para dar suporte ao uso do GeoJSON em aplicativos JavaScript. Para obter mais informações, consulte a próxima sessão, SDKs e bibliotecas do Amazon Location.

Plug-in Amazon Location MapLibre Geocoder

O plug-in de geocodificador Amazon Location MapLibre foi projetado para facilitar a incorporação da funcionalidade Amazon Location em seus aplicativos JavaScript, ao trabalhar com renderização e geocodificação de mapas usando a biblioteca maplibre-gl-geocoder.

Instalação

Você pode instalar o plug-in de geocodificador Amazon Location MapLibre do NPM para uso com módulos, com este comando:

npm install @aws/amazon-location-for-maplibre-gl-geocoder

Você pode importar para um arquivo HTML para uso diretamente no navegador, com um script:

<script src="https://www.unpkg.com/@aws/amazon-location-for-maplibre-gl-geocoder@1">/script<
Uso com módulo

Esse código configura um mapa JavaScript Maplibre GL com recursos de geocodificação de localização da Amazon. Ele usa a autenticação via banco de identidades do Amazon Cognito para acessar os recursos de localização da Amazon. O mapa é renderizado com um estilo e coordenadas centrais especificados e permite pesquisar lugares no mapa.

// Import MapLibre GL JS import maplibregl from "maplibre-gl"; // Import from the AWS JavaScript SDK V3 import { LocationClient } from "@aws-sdk/client-location"; // Import the utility functions import { withIdentityPoolId } from "@aws/amazon-location-utilities-auth-helper"; // Import the AmazonLocationWithMaplibreGeocoder import { buildAmazonLocationMaplibreGeocoder, AmazonLocationMaplibreGeocoder } from "@aws/amazon-location-for-maplibre-gl-geocoder" const identityPoolId = "Identity Pool ID"; const mapName = "Map Name"; const region = "Region"; // region containing the Amazon Location resource const placeIndex = "PlaceIndexName" // Name of your places resource in your AWS Account. // Create an authentication helper instance using credentials from Amazon Cognito const authHelper = await withIdentityPoolId("Identity Pool ID"); const client = new LocationClient({ region: "Region", // Region containing Amazon Location resources ...authHelper.getLocationClientConfig(), // Configures the client to use credentials obtained via Amazon Cognito }); // Render the map const map = new maplibregl.Map({ container: "map", center: [-123.115898, 49.295868], zoom: 10, style: `https://maps.geo.${region}.amazonaws.com/maps/v0/maps/${mapName}/style-descriptor`, ...authHelper.getMapAuthenticationOptions(), }); // Gets an instance of the AmazonLocationMaplibreGeocoder Object. const amazonLocationMaplibreGeocoder = buildAmazonLocationMaplibreGeocoder(client, placeIndex, {enableAll: true}); // Now we can add the Geocoder to the map. map.addControl(amazonLocationMaplibreGeocoder.getPlacesGeocoder());
Uso com um navegador

Este exemplo usa o Amazon Location Client para fazer uma solicitação que se autentica usando o Amazon Cognito.

nota

Alguns desses exemplos usam o Amazon Location Client. O Amazon Location Client é baseado no SDK da AWS para JavaScript V3 e permite fazer chamadas para o Amazon Location por meio de um script referenciado em um arquivo HTML.

Inclua o código a seguir no arquivo:

< Import the Amazon Location With Maplibre Geocoder> <script src="https://www.unpkg.com/@aws/amazon-location-with-maplibre-geocoder@1"></script> <Import the Amazon Location Client> <script src="https://www.unpkg.com/@aws/amazon-location-client@1"></script> <!Import the utility library> <script src="https://www.unpkg.com/@aws/amazon-location-utilities-auth-helper@1"></script>

Inclua o seguinte em um arquivo JavaScript:

const identityPoolId = "Identity Pool ID"; const mapName = "Map Name"; const region = "Region"; // region containing Amazon Location resource // Create an authentication helper instance using credentials from Amazon Cognito const authHelper = await amazonLocationAuthHelper.withIdentityPoolId(identityPoolId); // Render the map const map = new maplibregl.Map({ container: "map", center: [-123.115898, 49.295868], zoom: 10, style: `https://maps.geo.${region}.amazonaws.com/maps/v0/maps/${mapName}/style-descriptor`, ...authHelper.getMapAuthenticationOptions(), }); // Initialize the AmazonLocationMaplibreGeocoder object const amazonLocationMaplibreGeocoderObject = amazonLocationMaplibreGeocoder.buildAmazonLocationMaplibreGeocoder(client, placesName, {enableAll: true}); // Use the AmazonLocationWithMaplibreGeocoder object to add a geocoder to the map. map.addControl(amazonLocationMaplibreGeocoderObject.getPlacesGeocoder());

Abaixo estão listadas as funções e os comandos usados no plug-in de geocodificador Amazon Location MapLibre:

  • buildAmazonLocationMaplibreGeocoder

    Essa classe cria uma instância da AmazonLocationMaplibreGeocder que é o ponto de entrada para todas as outras chamadas:

    const amazonLocationMaplibreGeocoder = buildAmazonLocationMaplibreGeocoder(client, placesIndex, {enableAll: true});
  • getPlacesGeocoder

    Retorna um objeto IControl pronto para uso que pode ser adicionado diretamente a um mapa.

    const geocoder = getPlacesGeocoder(); // Initialize map let map = await initializeMap(); // Add the geocoder to the map. map.addControl(geocoder);