Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di MapLibre GL JS con Amazon Location Service
Usa MapLibre GL JS
MapLibre GL JS è una JavaScript libreria open source compatibile con gli stili e i riquadri forniti da Amazon Location Service Maps. API Puoi integrare MapLibre GL JS in un' JavaScript applicazione HTML o in un'applicazione di base per incorporare mappe lato client personalizzabili e reattive.
Questo tutorial descrive come integrare MapLibre GL JS con Amazon Location all'interno di un' JavaScript applicazione HTML di base. Le stesse librerie e tecniche presentate in questo tutorial si applicano anche ai framework, come React
L'applicazione di esempio per questo tutorial è disponibile come parte dell'archivio di esempi di Amazon Location Service su GitHub
Creazione dell'applicazione: Scaffolding
Questo tutorial crea un'applicazione web che utilizza JavaScript per creare una mappa su una HTML pagina.
Inizia creando una HTML pagina (index.html
) che includa il contenitore della mappa:
-
Inserisci un
div
elemento con unid
ofmap
per applicare le dimensioni della mappa alla visualizzazione della mappa. Le dimensioni vengono ereditate dalla finestra.
<html> <head> <style> body { margin: 0; } #map { height: 100vh; /* 100% of viewport height */ } </style> </head> <body> <!-- map container --> <div id="map" /> </body> </html>
Creazione dell'applicazione: aggiunta di dipendenze
Aggiungi le dipendenze seguenti all'applicazione:
-
MapLibre GL JS (v3.x) e relativi associati. CSS
-
La sede di AmazonJavaScript Aiutante di autenticazione.
<!-- CSS dependencies --> <link href="https://unpkg.com/maplibre-gl@3.x/dist/maplibre-gl.css" rel="stylesheet" /> <!-- JavaScript dependencies --> <script src="https://unpkg.com/maplibre-gl@3.x/dist/maplibre-gl.js"></script> <script src="https://unpkg.com/@aws/amazon-location-authentication-helper.js"></script> <script> // application-specific code </script>
Questo crea una pagina vuota con il contenitore della mappa.
Creazione dell'applicazione: configurazione
Per configurare l'applicazione utilizzando JavaScript:
-
Inserisci i nomi e gli identificatori delle tue risorse.
// Cognito Identity Pool ID const identityPoolId = "
us-east-1:54f2ba88-9390-498d-aaa5-0d97fb7ca3bd
"; // Amazon Location Service Map name const mapName = "ExampleMap
"; -
Crea un'istanza di un provider di credenziali utilizzando il pool di identità non autenticato che hai creato in Uso delle mappe - Passaggio 2, Configurazione dell'autenticazione. Lo inseriremo in una funzione chiamata
initializeMap
, che conterrà anche altro codice di inizializzazione della mappa, aggiunto nel passaggio successivo// extract the Region from the Identity Pool ID; this will be used for both Amazon Cognito and Amazon Location AWS.config.region = identityPoolId.split(":")[0]; async function initializeMap() { // Create an authentication helper instance using credentials from Cognito const authHelper = await amazonLocationAuthHelper.withIdentityPoolId(identityPoolId); // ... more here, later }
Creazione dell'applicazione: inizializzazione della mappa
Affinché la mappa venga visualizzata dopo il caricamento della pagina, è necessario inizializzare la mappa. È possibile modificare la posizione iniziale della mappa, aggiungere controlli aggiuntivi e sovrapporre i dati.
async function initializeMap() { // Create an authentication helper instance using credentials from Cognito const authHelper = await amazonLocationAuthHelper.withIdentityPoolId(identityPoolId); // Initialize the map const map = new maplibregl.Map({ container: "map", center: [-123.1187, 49.2819], // initial map centerpoint zoom: 10, // initial map zoom style: 'https://maps.geo.${region}.amazonaws.com/maps/v0/maps/${mapName}/style-descriptor', ...authHelper.getMapAuthenticationOptions(), // authentication, using cognito }); map.addControl(new maplibregl.NavigationControl(), "top-left"); } initializeMap();
Nota
È necessario fornire un marchio denominativo o un'attribuzione di testo per ogni fornitore di dati che si utilizza, nell'applicazione o nella documentazione. Le stringhe di attribuzione sono incluse nella risposta del descrittore di stile sotto i tastisources.esri.attribution
, sources.here.attribution
e. sources.grabmaptiles.attribution
MapLibre GL JS fornirà automaticamente l'attribuzione. Quando utilizzi le risorse di Amazon Location con fornitori di dati, assicurati di leggere i termini e le condizioni del servizio
Esecuzione dell'applicazione
È possibile eseguire questa applicazione di esempio utilizzandola in un server Web locale o aprendola in un browser.
Per utilizzare un server web locale, puoi usare npx, perché è installato come parte di Node.js. È possibile utilizzare npx serve
dall'interno della stessa directory diindex.html
. Questo serve all'applicazione sulocalhost:5000
.
Nota
Se la policy che hai creato per il tuo ruolo non autenticato in Amazon Cognito include referer
una condizione, potresti essere bloccato dal test. localhost:
URLs In questo caso, puoi eseguire il test con un server Web che fornisce una funzionalità inclusa nella tua URL politica.
Dopo aver completato il tutorial, l'applicazione finale è simile all'esempio seguente.
<!-- index.html --> <html> <head> <link href="https://unpkg.com/maplibre-gl@3.x/dist/maplibre-gl.css" rel="stylesheet" /> <style> body { margin: 0; } #map { height: 100vh; } </style> </head> <body> <!-- map container --> <div id="map" /> <!-- JavaScript dependencies --> <script src="https://unpkg.com/maplibre-gl@3.x/dist/maplibre-gl.js"></script> <script src="https://unpkg.com/@aws/amazon-location-authentication-helper.js"></script> <script> // configuration const identityPoolId = "us-east-1:54f2ba88-9390-498d-aaa5-0d97fb7ca3bd"; // Cognito Identity Pool ID const mapName = "ExampleMap"; // Amazon Location Service Map Name // extract the region from the Identity Pool ID const region = identityPoolId.split(":")[0]; async function initializeMap() { // Create an authentication helper instance using credentials from Cognito const authHelper = await amazonLocationAuthHelper.withIdentityPoolId(identityPoolId); // Initialize 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(), }); map.addControl(new maplibregl.NavigationControl(), "top-left"); } initializeMap(); </script> </body> </html>
L'esecuzione di questa applicazione consente di visualizzare una mappa a schermo intero utilizzando lo stile di mappa scelto. Questo esempio è disponibile nell'archivio degli esempi di Amazon Location Service su GitHub