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
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
Muitas bibliotecas usam os dados formatados GeoJSON
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);